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