Beyond BIOS: Implementing the Unified Extensible Firmware Interface with Intel's Framework

Table A.1 contains the set of base types that are used in all EFI applications and EFI drivers. Use these base types to build more complex unions and structures. The file EFIBIND.H in the EFI 1.10 Sample Implementation contains the code required to map compiler-specific data types to the EFI data types. If you are using a new compiler, update only this one file; all other EFI related sources should compile unmodified. Table A.2 contains the modifiers you can use in conjunction with the EFI data types.
| Mnemonic | Description |
|---|---|
| BOOLEAN | Logical Boolean. 1 -byte value containing a 0 for FALSE or a 1 for TRUE. Other values are undefined. |
| INTN | Signed value of native width. (4 bytes on IA-32, 8 bytes on ltanium -based operations) |
| UINTN | Unsigned value of native width. (4 bytes on IA-32, 8 bytes on ltanium -based operations) |
| INT8 | 1-byte signed value. |
| UINT8 | 1-byte unsigned value. |
| INT16 | 2-byte signed value. |
| UINT16 | 2-byte unsigned value. |
| INT32 | 4-byte signed value. |
| UINT32 | 4-byte unsigned value. |
| INT64 | 8-byte signed value. |
| UINT64 | 8-byte unsigned value. |
| CHAR8 | 1-byte Character. |
| CHAR16 | 2-byte Character. Unless otherwise specified all strings are stored in the UTF-16 encoding format as defined by Unicode 2.1 and ISO/IEC 10646 standards. |
| VOID | Undeclared type. |
| EFLGUID | 128-bit buffer containing a unique identifier value. Unless otherwise specified, aligned on a 64-bit boundary. |
| EFI_STATUS | Status code. Type INTN. |
| EFI_HANDLE | A collection of related interfaces. Type VOID *. |
| EFI_EVENT | Handle to an event structure. Type VOID *. |