ReactOS  0.4.15-dev-1377-ga59cecd
UefiBaseType.h
Go to the documentation of this file.
1 
15 #ifndef __UEFI_BASETYPE_H__
16 #define __UEFI_BASETYPE_H__
17 
18 #include <Base.h>
19 
20 //
21 // Basic data type definitions introduced in UEFI.
22 //
23 
27 typedef GUID EFI_GUID;
35 typedef VOID *EFI_HANDLE;
39 typedef VOID *EFI_EVENT;
43 typedef UINTN EFI_TPL;
47 typedef UINT64 EFI_LBA;
48 
53 
58 
70 typedef struct {
82 } EFI_TIME;
83 
84 
88 typedef struct {
89  UINT8 Addr[4];
91 
95 typedef struct {
96  UINT8 Addr[16];
98 
102 typedef struct {
103  UINT8 Addr[32];
105 
110 typedef union {
111  UINT32 Addr[4];
115 
116 
120 #define EFI_SUCCESS RETURN_SUCCESS
121 #define EFI_LOAD_ERROR RETURN_LOAD_ERROR
122 #define EFI_INVALID_PARAMETER RETURN_INVALID_PARAMETER
123 #define EFI_UNSUPPORTED RETURN_UNSUPPORTED
124 #define EFI_BAD_BUFFER_SIZE RETURN_BAD_BUFFER_SIZE
125 #define EFI_BUFFER_TOO_SMALL RETURN_BUFFER_TOO_SMALL
126 #define EFI_NOT_READY RETURN_NOT_READY
127 #define EFI_DEVICE_ERROR RETURN_DEVICE_ERROR
128 #define EFI_WRITE_PROTECTED RETURN_WRITE_PROTECTED
129 #define EFI_OUT_OF_RESOURCES RETURN_OUT_OF_RESOURCES
130 #define EFI_VOLUME_CORRUPTED RETURN_VOLUME_CORRUPTED
131 #define EFI_VOLUME_FULL RETURN_VOLUME_FULL
132 #define EFI_NO_MEDIA RETURN_NO_MEDIA
133 #define EFI_MEDIA_CHANGED RETURN_MEDIA_CHANGED
134 #define EFI_NOT_FOUND RETURN_NOT_FOUND
135 #define EFI_ACCESS_DENIED RETURN_ACCESS_DENIED
136 #define EFI_NO_RESPONSE RETURN_NO_RESPONSE
137 #define EFI_NO_MAPPING RETURN_NO_MAPPING
138 #define EFI_TIMEOUT RETURN_TIMEOUT
139 #define EFI_NOT_STARTED RETURN_NOT_STARTED
140 #define EFI_ALREADY_STARTED RETURN_ALREADY_STARTED
141 #define EFI_ABORTED RETURN_ABORTED
142 #define EFI_ICMP_ERROR RETURN_ICMP_ERROR
143 #define EFI_TFTP_ERROR RETURN_TFTP_ERROR
144 #define EFI_PROTOCOL_ERROR RETURN_PROTOCOL_ERROR
145 #define EFI_INCOMPATIBLE_VERSION RETURN_INCOMPATIBLE_VERSION
146 #define EFI_SECURITY_VIOLATION RETURN_SECURITY_VIOLATION
147 #define EFI_CRC_ERROR RETURN_CRC_ERROR
148 #define EFI_END_OF_MEDIA RETURN_END_OF_MEDIA
149 #define EFI_END_OF_FILE RETURN_END_OF_FILE
150 #define EFI_INVALID_LANGUAGE RETURN_INVALID_LANGUAGE
151 #define EFI_COMPROMISED_DATA RETURN_COMPROMISED_DATA
152 
153 #define EFI_WARN_UNKNOWN_GLYPH RETURN_WARN_UNKNOWN_GLYPH
154 #define EFI_WARN_DELETE_FAILURE RETURN_WARN_DELETE_FAILURE
155 #define EFI_WARN_WRITE_FAILURE RETURN_WARN_WRITE_FAILURE
156 #define EFI_WARN_BUFFER_TOO_SMALL RETURN_WARN_BUFFER_TOO_SMALL
157 #define EFI_WARN_STALE_DATA RETURN_WARN_STALE_DATA
158 
163 #define EFIERR(_a) ENCODE_ERROR(_a)
164 
165 #define EFI_ERROR(A) RETURN_ERROR(A)
166 
170 #define EFI_NETWORK_UNREACHABLE EFIERR(100)
171 #define EFI_HOST_UNREACHABLE EFIERR(101)
172 #define EFI_PROTOCOL_UNREACHABLE EFIERR(102)
173 #define EFI_PORT_UNREACHABLE EFIERR(103)
174 
179 #define EFI_CONNECTION_FIN EFIERR(104)
180 #define EFI_CONNECTION_RESET EFIERR(105)
181 #define EFI_CONNECTION_REFUSED EFIERR(106)
182 
184 //
185 // The EFI memory allocation functions work in units of EFI_PAGEs that are
186 // 4KB. This should in no way be confused with the page size of the processor.
187 // An EFI_PAGE is just the quanta of memory in EFI.
188 //
189 #define EFI_PAGE_SIZE SIZE_4KB
190 #define EFI_PAGE_MASK 0xFFF
191 #define EFI_PAGE_SHIFT 12
192 
204 #define EFI_SIZE_TO_PAGES(Size) (((Size) >> EFI_PAGE_SHIFT) + (((Size) & EFI_PAGE_MASK) ? 1 : 0))
205 
217 #define EFI_PAGES_TO_SIZE(Pages) ((Pages) << EFI_PAGE_SHIFT)
218 
222 #define EFI_IMAGE_MACHINE_IA32 0x014C
223 
227 #define EFI_IMAGE_MACHINE_IA64 0x0200
228 
232 #define EFI_IMAGE_MACHINE_EBC 0x0EBC
233 
237 #define EFI_IMAGE_MACHINE_X64 0x8664
238 
242 #define EFI_IMAGE_MACHINE_ARMTHUMB_MIXED 0x01C2
243 
244 
245 #if defined (MDE_CPU_IA32)
246 
247 #define EFI_IMAGE_MACHINE_TYPE_SUPPORTED(Machine) \
248  (((Machine) == EFI_IMAGE_MACHINE_IA32) || ((Machine) == EFI_IMAGE_MACHINE_EBC))
249 
250 #define EFI_IMAGE_MACHINE_CROSS_TYPE_SUPPORTED(Machine) ((Machine) == EFI_IMAGE_MACHINE_X64)
251 
252 #elif defined (MDE_CPU_IPF)
253 
254 #define EFI_IMAGE_MACHINE_TYPE_SUPPORTED(Machine) \
255  (((Machine) == EFI_IMAGE_MACHINE_IA64) || ((Machine) == EFI_IMAGE_MACHINE_EBC))
256 
257 #define EFI_IMAGE_MACHINE_CROSS_TYPE_SUPPORTED(Machine) (FALSE)
258 
259 #elif defined (MDE_CPU_X64)
260 
261 #define EFI_IMAGE_MACHINE_TYPE_SUPPORTED(Machine) \
262  (((Machine) == EFI_IMAGE_MACHINE_X64) || ((Machine) == EFI_IMAGE_MACHINE_EBC))
263 
264 #define EFI_IMAGE_MACHINE_CROSS_TYPE_SUPPORTED(Machine) ((Machine) == EFI_IMAGE_MACHINE_IA32)
265 
266 #elif defined (MDE_CPU_ARM)
267 
268 #define EFI_IMAGE_MACHINE_TYPE_SUPPORTED(Machine) \
269  (((Machine) == EFI_IMAGE_MACHINE_ARMTHUMB_MIXED) || ((Machine) == EFI_IMAGE_MACHINE_EBC))
270 
271 #define EFI_IMAGE_MACHINE_CROSS_TYPE_SUPPORTED(Machine) ((Machine) == EFI_IMAGE_MACHINE_ARMTHUMB_MIXED)
272 
273 #elif defined (MDE_CPU_EBC)
274 
279 #define EFI_IMAGE_MACHINE_TYPE_SUPPORTED(Machine) ((Machine) == EFI_IMAGE_MACHINE_EBC)
280 
281 #define EFI_IMAGE_MACHINE_CROSS_TYPE_SUPPORTED(Machine) (FALSE)
282 
283 #else
284 #error Unknown Processor Type
285 #endif
286 
287 #endif
VOID * EFI_EVENT
Definition: UefiBaseType.h:39
UINT32 UINTN
UINT64 EFI_PHYSICAL_ADDRESS
Definition: UefiBaseType.h:52
EFI_IPv4_ADDRESS v4
Definition: UefiBaseType.h:112
unsigned int UINT32
UINT8 Pad2
Definition: UefiBaseType.h:81
UINT8 Day
Definition: UefiBaseType.h:73
UINT8 Minute
Definition: UefiBaseType.h:75
UINT64 EFI_LBA
Definition: UefiBaseType.h:47
UINT8 Pad1
Definition: UefiBaseType.h:77
UINT8 Second
Definition: UefiBaseType.h:76
UINT32 Nanosecond
Definition: UefiBaseType.h:78
UINT8 Hour
Definition: UefiBaseType.h:74
UINT16 Year
Definition: UefiBaseType.h:71
INT16 TimeZone
Definition: UefiBaseType.h:79
EFI_IPv6_ADDRESS v6
Definition: UefiBaseType.h:113
RETURN_STATUS EFI_STATUS
Definition: UefiBaseType.h:31
UINT8 Month
Definition: UefiBaseType.h:72
VOID * EFI_HANDLE
Definition: UefiBaseType.h:35
UINTN EFI_TPL
Definition: UefiBaseType.h:43
GUID EFI_GUID
Definition: UefiBaseType.h:27
unsigned short UINT16
UINTN RETURN_STATUS
Definition: Base.h:716
UINT8 Daylight
Definition: UefiBaseType.h:80
unsigned long long UINT64
unsigned char UINT8
UINT64 EFI_VIRTUAL_ADDRESS
Definition: UefiBaseType.h:57
signed short INT16