1 /**
2  * @file lv_uefi_std_wrapper.h
3  *
4  */
5 
6 #ifndef LV_UEFI_STD_WRAPPER_H
7 #define LV_UEFI_STD_WRAPPER_H
8 
9 #if LV_USE_UEFI
10 
11     #include LV_USE_UEFI_INCLUDE
12 
13     /*************************************
14     * TYPES
15     *************************************/
16     typedef UINT8 uint8_t;
17     typedef UINT16 uint16_t;
18     typedef UINT32 uint32_t;
19     typedef UINT64 uint64_t;
20     typedef INT8 int8_t;
21     typedef INT16 int16_t;
22     typedef INT32 int32_t;
23     typedef INT64 int64_t;
24 
25     typedef uint32_t uint_fast32_t;
26     typedef UINTN uintptr_t;
27     typedef UINTN size_t;
28     typedef INTN intptr_t;
29     typedef INTN intmax_t;
30     typedef INTN ptrdiff_t;
31 
32     typedef UINT8 bool;
33 
34     /*************************************
35     * DEFINES
36     *************************************/
37     #define false 0
38     #define true 1
39 
40     #define PRId8       "d"
41     #define PRId16      "d"
42     #define PRId32      "d"
43     #define PRId64      "d"
44 
45     #define PRIu8       "u"
46     #define PRIu16      "u"
47     #define PRIu32      "u"
48     #define PRIu64      "u"
49 
50     #define PRIx8       "x"
51     #define PRIx16      "x"
52     #define PRIx32      "x"
53     #define PRIx64      "x"
54 
55     #define PRIX8       "X"
56     #define PRIX16      "X"
57     #define PRIX32      "X"
58     #define PRIX64      "X"
59 
60     /*************************************
61     * LIMITS
62     *************************************/
63     #ifndef INT8_MAX
64         #define INT8_MAX    (0x7F)
65     #endif
66 
67     #ifndef UINT8_MAX
68         #define UINT8_MAX   (0xFF)
69     #endif
70 
71     #ifndef INT16_MAX
72         #define INT16_MAX   (0x7FFF)
73     #endif
74 
75     #ifndef UINT16_MAX
76         #define UINT16_MAX  (0xFFFF)
77     #endif
78 
79     #ifndef INT32_MAX
80         #define INT32_MAX   (0x7FFFFFFF)
81     #endif
82 
83     #ifndef UINT32_MAX
84         #define UINT32_MAX  (0xFFFFFFFF)
85     #endif
86 
87     #ifndef INT64_MAX
88         #define INT64_MAX   (0x7FFFFFFFFFFFFFFFULL)
89     #endif
90 
91     #ifndef UINT64_MAX
92         #define UINT64_MAX  (0xFFFFFFFFFFFFFFFFULL)
93     #endif
94 
95     #ifndef INT_MAX
96         #define INT_MAX   (0x7FFFFFFFFFFFFFFFULL)
97     #endif
98 
99     #ifndef UINT_MAX
100         #define UINT_MAX  (0xFFFFFFFFFFFFFFFFULL)
101     #endif
102 
103     ///
104     /// Minimum values for the signed UEFI Data Types
105     ///
106     #ifndef INT8_MIN
107         #define INT8_MIN   ((  -127) - 1)
108     #endif
109 
110     #ifndef INT16_MIN
111         #define INT16_MIN  (( -32767) - 1)
112     #endif
113 
114     #ifndef INT32_MIN
115         #define INT32_MIN  (( -2147483647) - 1)
116     #endif
117 
118     #ifndef INT64_MIN
119         #define INT64_MIN  (( -9223372036854775807LL) - 1)
120     #endif
121 
122     #ifndef SIZE_MAX
123         #define SIZE_MAX (0xFFFFFFFF)
124     #endif
125 
126     #ifndef LONG_MAX
127         #define LONG_MAX (0x7FFFFFFF)
128     #endif
129 
130     #ifndef ULONG_MAX
131         #define ULONG_MAX (0xFFFFFFFF)
132     #endif
133 
134     #ifndef USHRT_MAX
135         #define USHRT_MAX (0xFFFF)
136     #endif
137 
138     #ifndef CHAR_BIT
139         #define CHAR_BIT 8
140     #endif
141 
142     /*************************************
143     * VA_ARG
144     *************************************/
145     #if LV_UEFI_EDK2_HEADERS
146         #define va_list VA_LIST
147         #define va_start(Marker, Parameter) VA_START(Marker, Parameter)
148         #define va_arg(Marker, TYPE)  VA_ARG(Marker, TYPE)
149         #define va_end(Marker)  VA_END(Marker)
150         #define va_copy(Dest, Start)  VA_COPY(Dest, Start)
151     #endif
152 
153 #endif
154 
155 #endif