xref: /openbmc/libcper/edk/BaseTypes.h (revision f8fc7052)
1 /** @file
2   Processor or Compiler specific defines for all supported processors.
3 
4   This file is stand alone self consistent set of definitions.
5 
6   Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
7   SPDX-License-Identifier: BSD-2-Clause-Patent
8 
9 **/
10 
11 #ifndef CPER_BASETYPES_H
12 #define CPER_BASETYPES_H
13 
14 ///
15 /// 8-byte unsigned value
16 ///
17 typedef unsigned long long UINT64;
18 ///
19 /// 8-byte signed value
20 ///
21 typedef long long INT64;
22 ///
23 /// 4-byte unsigned value
24 ///
25 typedef unsigned int UINT32;
26 ///
27 /// 4-byte signed value
28 ///
29 typedef int INT32;
30 ///
31 /// 2-byte unsigned value
32 ///
33 typedef unsigned short UINT16;
34 ///
35 /// 2-byte Character.  Unless otherwise specified all strings are stored in the
36 /// UTF-16 encoding format as defined by Unicode 2.1 and ISO/IEC 10646 standards.
37 ///
38 typedef unsigned short CHAR16;
39 ///
40 /// 2-byte signed value
41 ///
42 typedef short INT16;
43 ///
44 /// Logical Boolean.  1-byte value containing 0 for FALSE or a 1 for TRUE.  Other
45 /// values are undefined.
46 ///
47 typedef unsigned char BOOLEAN;
48 ///
49 /// 1-byte unsigned value
50 ///
51 typedef unsigned char UINT8;
52 ///
53 /// 1-byte Character
54 ///
55 typedef char CHAR8;
56 ///
57 /// 1-byte signed value
58 ///
59 typedef signed char INT8;
60 //
61 // Basical data type definitions introduced in UEFI.
62 //
63 typedef struct {
64 	UINT32 Data1;
65 	UINT16 Data2;
66 	UINT16 Data3;
67 	UINT8 Data4[8];
68 } EFI_GUID;
69 
70 /**
71   Returns a 16-bit signature built from 2 ASCII characters.
72 
73   This macro returns a 16-bit value built from the two ASCII characters specified
74   by A and B.
75 
76   @param  A    The first ASCII character.
77   @param  B    The second ASCII character.
78 
79   @return A 16-bit value built from the two ASCII characters specified by A and B.
80 
81 **/
82 #define SIGNATURE_16(A, B) ((A) | (B << 8))
83 /**
84   Returns a 32-bit signature built from 4 ASCII characters.
85 
86   This macro returns a 32-bit value built from the four ASCII characters specified
87   by A, B, C, and D.
88 
89   @param  A    The first ASCII character.
90   @param  B    The second ASCII character.
91   @param  C    The third ASCII character.
92   @param  D    The fourth ASCII character.
93 
94   @return A 32-bit value built from the two ASCII characters specified by A, B,
95           C and D.
96 
97 **/
98 #define SIGNATURE_32(A, B, C, D)                                               \
99 	(SIGNATURE_16(A, B) | (SIGNATURE_16(C, D) << 16))
100 
101 #endif
102