41#define VERIFY_SIZE_OF(TYPE, Size) extern UINT8 _VerifySizeof##TYPE[(sizeof(TYPE) == (Size)) / (sizeof(TYPE) == (Size))]
64#if defined(_MSC_EXTENSIONS) && !defined (MDE_CPU_EBC)
70#define GLOBAL_REMOVE_IF_UNREFERENCED __declspec(selectany)
77#define GLOBAL_REMOVE_IF_UNREFERENCED
87#define _CONCATENATE(a, b) __CONCATENATE(a, b)
88#define __CONCATENATE(a, b) a ## b
94#define ASM_PFX(name) _CONCATENATE (__USER_LABEL_PREFIX__, name)
102#define ASM_FUNCTION_REMOVE_IF_UNREFERENCED .subsections_via_symbols
104#define ASM_FUNCTION_REMOVE_IF_UNREFERENCED
112#define PACKED __packed
196#define TRUE ((BOOLEAN)(1==1))
202#define FALSE ((BOOLEAN)(0==1))
207#define NULL ((VOID *) 0)
210#define BIT0 0x00000001
211#define BIT1 0x00000002
212#define BIT2 0x00000004
213#define BIT3 0x00000008
214#define BIT4 0x00000010
215#define BIT5 0x00000020
216#define BIT6 0x00000040
217#define BIT7 0x00000080
218#define BIT8 0x00000100
219#define BIT9 0x00000200
220#define BIT10 0x00000400
221#define BIT11 0x00000800
222#define BIT12 0x00001000
223#define BIT13 0x00002000
224#define BIT14 0x00004000
225#define BIT15 0x00008000
226#define BIT16 0x00010000
227#define BIT17 0x00020000
228#define BIT18 0x00040000
229#define BIT19 0x00080000
230#define BIT20 0x00100000
231#define BIT21 0x00200000
232#define BIT22 0x00400000
233#define BIT23 0x00800000
234#define BIT24 0x01000000
235#define BIT25 0x02000000
236#define BIT26 0x04000000
237#define BIT27 0x08000000
238#define BIT28 0x10000000
239#define BIT29 0x20000000
240#define BIT30 0x40000000
241#define BIT31 0x80000000
242#define BIT32 0x0000000100000000ULL
243#define BIT33 0x0000000200000000ULL
244#define BIT34 0x0000000400000000ULL
245#define BIT35 0x0000000800000000ULL
246#define BIT36 0x0000001000000000ULL
247#define BIT37 0x0000002000000000ULL
248#define BIT38 0x0000004000000000ULL
249#define BIT39 0x0000008000000000ULL
250#define BIT40 0x0000010000000000ULL
251#define BIT41 0x0000020000000000ULL
252#define BIT42 0x0000040000000000ULL
253#define BIT43 0x0000080000000000ULL
254#define BIT44 0x0000100000000000ULL
255#define BIT45 0x0000200000000000ULL
256#define BIT46 0x0000400000000000ULL
257#define BIT47 0x0000800000000000ULL
258#define BIT48 0x0001000000000000ULL
259#define BIT49 0x0002000000000000ULL
260#define BIT50 0x0004000000000000ULL
261#define BIT51 0x0008000000000000ULL
262#define BIT52 0x0010000000000000ULL
263#define BIT53 0x0020000000000000ULL
264#define BIT54 0x0040000000000000ULL
265#define BIT55 0x0080000000000000ULL
266#define BIT56 0x0100000000000000ULL
267#define BIT57 0x0200000000000000ULL
268#define BIT58 0x0400000000000000ULL
269#define BIT59 0x0800000000000000ULL
270#define BIT60 0x1000000000000000ULL
271#define BIT61 0x2000000000000000ULL
272#define BIT62 0x4000000000000000ULL
273#define BIT63 0x8000000000000000ULL
275#define SIZE_1KB 0x00000400
276#define SIZE_2KB 0x00000800
277#define SIZE_4KB 0x00001000
278#define SIZE_8KB 0x00002000
279#define SIZE_16KB 0x00004000
280#define SIZE_32KB 0x00008000
281#define SIZE_64KB 0x00010000
282#define SIZE_128KB 0x00020000
283#define SIZE_256KB 0x00040000
284#define SIZE_512KB 0x00080000
285#define SIZE_1MB 0x00100000
286#define SIZE_2MB 0x00200000
287#define SIZE_4MB 0x00400000
288#define SIZE_8MB 0x00800000
289#define SIZE_16MB 0x01000000
290#define SIZE_32MB 0x02000000
291#define SIZE_64MB 0x04000000
292#define SIZE_128MB 0x08000000
293#define SIZE_256MB 0x10000000
294#define SIZE_512MB 0x20000000
295#define SIZE_1GB 0x40000000
296#define SIZE_2GB 0x80000000
297#define SIZE_4GB 0x0000000100000000ULL
298#define SIZE_8GB 0x0000000200000000ULL
299#define SIZE_16GB 0x0000000400000000ULL
300#define SIZE_32GB 0x0000000800000000ULL
301#define SIZE_64GB 0x0000001000000000ULL
302#define SIZE_128GB 0x0000002000000000ULL
303#define SIZE_256GB 0x0000004000000000ULL
304#define SIZE_512GB 0x0000008000000000ULL
305#define SIZE_1TB 0x0000010000000000ULL
306#define SIZE_2TB 0x0000020000000000ULL
307#define SIZE_4TB 0x0000040000000000ULL
308#define SIZE_8TB 0x0000080000000000ULL
309#define SIZE_16TB 0x0000100000000000ULL
310#define SIZE_32TB 0x0000200000000000ULL
311#define SIZE_64TB 0x0000400000000000ULL
312#define SIZE_128TB 0x0000800000000000ULL
313#define SIZE_256TB 0x0001000000000000ULL
314#define SIZE_512TB 0x0002000000000000ULL
315#define SIZE_1PB 0x0004000000000000ULL
316#define SIZE_2PB 0x0008000000000000ULL
317#define SIZE_4PB 0x0010000000000000ULL
318#define SIZE_8PB 0x0020000000000000ULL
319#define SIZE_16PB 0x0040000000000000ULL
320#define SIZE_32PB 0x0080000000000000ULL
321#define SIZE_64PB 0x0100000000000000ULL
322#define SIZE_128PB 0x0200000000000000ULL
323#define SIZE_256PB 0x0400000000000000ULL
324#define SIZE_512PB 0x0800000000000000ULL
325#define SIZE_1EB 0x1000000000000000ULL
326#define SIZE_2EB 0x2000000000000000ULL
327#define SIZE_4EB 0x4000000000000000ULL
328#define SIZE_8EB 0x8000000000000000ULL
330#define BASE_1KB 0x00000400
331#define BASE_2KB 0x00000800
332#define BASE_4KB 0x00001000
333#define BASE_8KB 0x00002000
334#define BASE_16KB 0x00004000
335#define BASE_32KB 0x00008000
336#define BASE_64KB 0x00010000
337#define BASE_128KB 0x00020000
338#define BASE_256KB 0x00040000
339#define BASE_512KB 0x00080000
340#define BASE_1MB 0x00100000
341#define BASE_2MB 0x00200000
342#define BASE_4MB 0x00400000
343#define BASE_8MB 0x00800000
344#define BASE_16MB 0x01000000
345#define BASE_32MB 0x02000000
346#define BASE_64MB 0x04000000
347#define BASE_128MB 0x08000000
348#define BASE_256MB 0x10000000
349#define BASE_512MB 0x20000000
350#define BASE_1GB 0x40000000
351#define BASE_2GB 0x80000000
352#define BASE_4GB 0x0000000100000000ULL
353#define BASE_8GB 0x0000000200000000ULL
354#define BASE_16GB 0x0000000400000000ULL
355#define BASE_32GB 0x0000000800000000ULL
356#define BASE_64GB 0x0000001000000000ULL
357#define BASE_128GB 0x0000002000000000ULL
358#define BASE_256GB 0x0000004000000000ULL
359#define BASE_512GB 0x0000008000000000ULL
360#define BASE_1TB 0x0000010000000000ULL
361#define BASE_2TB 0x0000020000000000ULL
362#define BASE_4TB 0x0000040000000000ULL
363#define BASE_8TB 0x0000080000000000ULL
364#define BASE_16TB 0x0000100000000000ULL
365#define BASE_32TB 0x0000200000000000ULL
366#define BASE_64TB 0x0000400000000000ULL
367#define BASE_128TB 0x0000800000000000ULL
368#define BASE_256TB 0x0001000000000000ULL
369#define BASE_512TB 0x0002000000000000ULL
370#define BASE_1PB 0x0004000000000000ULL
371#define BASE_2PB 0x0008000000000000ULL
372#define BASE_4PB 0x0010000000000000ULL
373#define BASE_8PB 0x0020000000000000ULL
374#define BASE_16PB 0x0040000000000000ULL
375#define BASE_32PB 0x0080000000000000ULL
376#define BASE_64PB 0x0100000000000000ULL
377#define BASE_128PB 0x0200000000000000ULL
378#define BASE_256PB 0x0400000000000000ULL
379#define BASE_512PB 0x0800000000000000ULL
380#define BASE_1EB 0x1000000000000000ULL
381#define BASE_2EB 0x2000000000000000ULL
382#define BASE_4EB 0x4000000000000000ULL
383#define BASE_8EB 0x8000000000000000ULL
433#define _INT_SIZE_OF(n) ((sizeof (n) + sizeof (UINTN) - 1) &~(sizeof (UINTN) - 1))
446#define VA_LIST va_list
448typedef struct __va_list {
void *__ap; }
va_list;
449#define VA_LIST va_list
452#define VA_START(Marker, Parameter) __va_start(Marker, Parameter)
454#define VA_ARG(Marker, TYPE) __va_arg(Marker, TYPE)
456#define VA_END(Marker) ((void)0)
458#define VA_COPY(Dest, Start) __va_copy (Dest, Start)
460#elif defined(__GNUC__) && !defined(NO_BUILTIN_VA_FUNCS)
469typedef __builtin_va_list
VA_LIST;
471#define VA_START(Marker, Parameter) __builtin_va_start (Marker, Parameter)
473#define VA_ARG(Marker, TYPE) ((sizeof (TYPE) < sizeof (UINTN)) ? (TYPE)(__builtin_va_arg (Marker, UINTN)) : (TYPE)(__builtin_va_arg (Marker, TYPE)))
475#define VA_END(Marker) __builtin_va_end (Marker)
477#define VA_COPY(Dest, Start) __builtin_va_copy (Dest, Start)
502#define VA_START(Marker, Parameter) (Marker = (VA_LIST) ((UINTN) & (Parameter) + _INT_SIZE_OF (Parameter)))
520#define VA_ARG(Marker, TYPE) (*(TYPE *) ((Marker += _INT_SIZE_OF (TYPE)) - _INT_SIZE_OF (TYPE)))
532#define VA_END(Marker) (Marker = (VA_LIST) 0)
545#define VA_COPY(Dest, Start) ((void)((Dest) = (Start)))
561#define _BASE_INT_SIZE_OF(TYPE) ((sizeof (TYPE) + sizeof (UINTN) - 1) / sizeof (UINTN))
579#define BASE_ARG(Marker, TYPE) (*(TYPE *) ((Marker += _BASE_INT_SIZE_OF (TYPE)) - _BASE_INT_SIZE_OF (TYPE)))
596#define OFFSET_OF(TYPE, Field) ((UINTN) __builtin_offsetof(TYPE, Field))
601#define OFFSET_OF(TYPE, Field) ((UINTN) &(((TYPE *)0)->Field))
623#define BASE_CR(Record, TYPE, Field) ((TYPE *) ((CHAR8 *) (Record) - (CHAR8 *) &(((TYPE *) 0)->Field)))
637#define ALIGN_VALUE(Value, Alignment) ((Value) + (((Alignment) - (Value)) & ((Alignment) - 1)))
652#define ALIGN_POINTER(Pointer, Alignment) ((VOID *) (ALIGN_VALUE ((UINTN)(Pointer), (Alignment))))
666#define ALIGN_VARIABLE(Value) ALIGN_VALUE ((Value), sizeof (UINTN))
683 (((a) > (b)) ? (a) : (b))
698 (((a) < (b)) ? (a) : (b))
711 (((a) < 0) ? (-(a)) : (a))
727#define ENCODE_ERROR(StatusCode) ((RETURN_STATUS)(MAX_BIT | (StatusCode)))
738#define ENCODE_WARNING(StatusCode) ((RETURN_STATUS)(StatusCode))
751#define RETURN_ERROR(StatusCode) (((INTN)(RETURN_STATUS)(StatusCode)) < 0)
756#define RETURN_SUCCESS 0
761#define RETURN_LOAD_ERROR ENCODE_ERROR (1)
766#define RETURN_INVALID_PARAMETER ENCODE_ERROR (2)
771#define RETURN_UNSUPPORTED ENCODE_ERROR (3)
776#define RETURN_BAD_BUFFER_SIZE ENCODE_ERROR (4)
783#define RETURN_BUFFER_TOO_SMALL ENCODE_ERROR (5)
788#define RETURN_NOT_READY ENCODE_ERROR (6)
794#define RETURN_DEVICE_ERROR ENCODE_ERROR (7)
799#define RETURN_WRITE_PROTECTED ENCODE_ERROR (8)
804#define RETURN_OUT_OF_RESOURCES ENCODE_ERROR (9)
810#define RETURN_VOLUME_CORRUPTED ENCODE_ERROR (10)
815#define RETURN_VOLUME_FULL ENCODE_ERROR (11)
821#define RETURN_NO_MEDIA ENCODE_ERROR (12)
827#define RETURN_MEDIA_CHANGED ENCODE_ERROR (13)
832#define RETURN_NOT_FOUND ENCODE_ERROR (14)
837#define RETURN_ACCESS_DENIED ENCODE_ERROR (15)
842#define RETURN_NO_RESPONSE ENCODE_ERROR (16)
847#define RETURN_NO_MAPPING ENCODE_ERROR (17)
852#define RETURN_TIMEOUT ENCODE_ERROR (18)
857#define RETURN_NOT_STARTED ENCODE_ERROR (19)
862#define RETURN_ALREADY_STARTED ENCODE_ERROR (20)
867#define RETURN_ABORTED ENCODE_ERROR (21)
872#define RETURN_ICMP_ERROR ENCODE_ERROR (22)
877#define RETURN_TFTP_ERROR ENCODE_ERROR (23)
882#define RETURN_PROTOCOL_ERROR ENCODE_ERROR (24)
888#define RETURN_INCOMPATIBLE_VERSION ENCODE_ERROR (25)
893#define RETURN_SECURITY_VIOLATION ENCODE_ERROR (26)
898#define RETURN_CRC_ERROR ENCODE_ERROR (27)
903#define RETURN_END_OF_MEDIA ENCODE_ERROR (28)
908#define RETURN_END_OF_FILE ENCODE_ERROR (31)
913#define RETURN_INVALID_LANGUAGE ENCODE_ERROR (32)
920#define RETURN_COMPROMISED_DATA ENCODE_ERROR (33)
926#define RETURN_WARN_UNKNOWN_GLYPH ENCODE_WARNING (1)
931#define RETURN_WARN_DELETE_FAILURE ENCODE_WARNING (2)
937#define RETURN_WARN_WRITE_FAILURE ENCODE_WARNING (3)
943#define RETURN_WARN_BUFFER_TOO_SMALL ENCODE_WARNING (4)
949#define RETURN_WARN_STALE_DATA ENCODE_WARNING (5)
963#define SIGNATURE_16(A, B) ((A) | (B << 8))
980#define SIGNATURE_32(A, B, C, D) (SIGNATURE_16 (A, B) | (SIGNATURE_16 (C, D) << 16))
1001#define SIGNATURE_64(A, B, C, D, E, F, G, H) \
1002 (SIGNATURE_32(A, B, C, D) | ((UINT64) (SIGNATURE_32(E, F, G, H)) << 32))
#define VERIFY_SIZE_OF(TYPE, Size)
unsigned long long UINT64