xref: /openbmc/libcper/edk/BaseTypes.h (revision efe17e2c)
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)  (SIGNATURE_16 (A, B) | (SIGNATURE_16 (C, D) << 16))
99 
100 #endif