1//
2// CTConfig.h
3// CoreTrust
4//
5// Copyright © 2021 Apple. All rights reserved.
6//
7
8#ifndef _CORETRUST_CONFIG_H_
9#define _CORETRUST_CONFIG_H_
10
11#if EFI
12// This requires $(SDKROOT)/usr/local/efi/include/Platform to be in your header
13// search path.
14#include <Apple/Common/Library/Include/EfiCompatibility.h>
15#else // !EFI
16#include <stddef.h>
17#include <stdint.h>
18#include <stdbool.h>
19#endif // !EFI
20
21/* Bounds attributes */
22#if __has_include(<ptrcheck.h>)
23#include <ptrcheck.h>
24#else
25#define __single
26#define __unsafe_indexable
27#define __counted_by(N)
28#define __sized_by(N)
29#define __ended_by(E)
30#define __ptrcheck_abi_assume_single()
31#define __ptrcheck_abi_assume_unsafe_indexable()
32#define __unsafe_forge_bidi_indexable(T, P, S) ((T)(P))
33#define __unsafe_forge_single(T, P) ((T)(P))
34#endif
35
36#if EFI
37 #if defined(__cplusplus)
38 #define __BEGIN_DECLS extern "C" {
39 #define __END_DECLS }
40 #else
41 #define __BEGIN_DECLS
42 #define __END_DECLS
43 #endif
44#else // !EFI
45#include <sys/cdefs.h>
46#endif // !EFI
47
48__BEGIN_DECLS
49
50#if EFI
51typedef UINT8 CT_uint8_t;
52typedef UINT32 CT_uint32_t;
53typedef INT32 CT_int;
54typedef UINT64 CT_uint64_t;
55typedef size_t CT_size_t;
56typedef BOOLEAN CT_bool;
57#else // !EFI
58typedef uint8_t CT_uint8_t;
59typedef uint32_t CT_uint32_t;
60typedef uint64_t CT_uint64_t;
61typedef size_t CT_size_t;
62typedef int CT_int;
63typedef bool CT_bool;
64#endif // !EFI
65
66__END_DECLS
67
68#endif /* _CORETRUST_CONFIG_H_ */
69