xref: /aosp_15_r20/external/fsverity-utils/common/win32_defs.h (revision b13c0e4024008a1f948ee8189745cb3371f4ac04)
1*b13c0e40SEric Biggers /* SPDX-License-Identifier: MIT */
2*b13c0e40SEric Biggers /*
3*b13c0e40SEric Biggers  * WIN32 compat definitions for libfsverity and the 'fsverity' program
4*b13c0e40SEric Biggers  *
5*b13c0e40SEric Biggers  * Copyright 2020 Microsoft
6*b13c0e40SEric Biggers  *
7*b13c0e40SEric Biggers  * Use of this source code is governed by an MIT-style
8*b13c0e40SEric Biggers  * license that can be found in the LICENSE file or at
9*b13c0e40SEric Biggers  * https://opensource.org/licenses/MIT.
10*b13c0e40SEric Biggers  */
11*b13c0e40SEric Biggers #ifndef COMMON_WIN32_DEFS_H
12*b13c0e40SEric Biggers #define COMMON_WIN32_DEFS_H
13*b13c0e40SEric Biggers 
14*b13c0e40SEric Biggers /* Some minimal definitions to allow the digest/sign commands to run under Windows */
15*b13c0e40SEric Biggers 
16*b13c0e40SEric Biggers /* All file reads we do need this flag on _WIN32 */
17*b13c0e40SEric Biggers #ifndef O_BINARY
18*b13c0e40SEric Biggers #  define O_BINARY 0
19*b13c0e40SEric Biggers #endif
20*b13c0e40SEric Biggers 
21*b13c0e40SEric Biggers #ifdef _WIN32
22*b13c0e40SEric Biggers 
23*b13c0e40SEric Biggers #include <stdint.h>
24*b13c0e40SEric Biggers #include <inttypes.h>
25*b13c0e40SEric Biggers 
26*b13c0e40SEric Biggers #ifndef ENOPKG
27*b13c0e40SEric Biggers #   define ENOPKG 65
28*b13c0e40SEric Biggers #endif
29*b13c0e40SEric Biggers 
30*b13c0e40SEric Biggers #ifndef __cold
31*b13c0e40SEric Biggers #  define __cold
32*b13c0e40SEric Biggers #endif
33*b13c0e40SEric Biggers 
34*b13c0e40SEric Biggers /* For %zu in printf() */
35*b13c0e40SEric Biggers #ifndef __printf
36*b13c0e40SEric Biggers #  define __printf(fmt_idx, vargs_idx) \
37*b13c0e40SEric Biggers        __attribute__((format(gnu_printf, fmt_idx, vargs_idx)))
38*b13c0e40SEric Biggers #endif
39*b13c0e40SEric Biggers 
40*b13c0e40SEric Biggers typedef __signed__ char __s8;
41*b13c0e40SEric Biggers typedef unsigned char __u8;
42*b13c0e40SEric Biggers typedef __signed__ short __s16;
43*b13c0e40SEric Biggers typedef unsigned short __u16;
44*b13c0e40SEric Biggers typedef __signed__ int __s32;
45*b13c0e40SEric Biggers typedef unsigned int __u32;
46*b13c0e40SEric Biggers typedef __signed__ long long  __s64;
47*b13c0e40SEric Biggers typedef unsigned long long  __u64;
48*b13c0e40SEric Biggers typedef __u16 __le16;
49*b13c0e40SEric Biggers typedef __u16 __be16;
50*b13c0e40SEric Biggers typedef __u32 __le32;
51*b13c0e40SEric Biggers typedef __u32 __be32;
52*b13c0e40SEric Biggers typedef __u64 __le64;
53*b13c0e40SEric Biggers typedef __u64 __be64;
54*b13c0e40SEric Biggers 
55*b13c0e40SEric Biggers #endif /* _WIN32 */
56*b13c0e40SEric Biggers 
57*b13c0e40SEric Biggers #endif /* COMMON_WIN32_DEFS_H */
58