TianoCore EDK2  trunk
UefiSpec.h
Go to the documentation of this file.
1 
19 #ifndef __UEFI_SPEC_H__
20 #define __UEFI_SPEC_H__
21 
22 #include <Uefi/UefiMultiPhase.h>
23 
24 #include <Protocol/DevicePath.h>
25 #include <Protocol/SimpleTextIn.h>
27 #include <Protocol/SimpleTextOut.h>
28 
32 typedef enum {
51 
52 //
53 // Bit definitions for EFI_TIME.Daylight
54 //
55 #define EFI_TIME_ADJUST_DAYLIGHT 0x01
56 #define EFI_TIME_IN_DAYLIGHT 0x02
57 
61 #define EFI_UNSPECIFIED_TIMEZONE 0x07FF
62 
63 //
64 // Memory cacheability attributes
65 //
66 #define EFI_MEMORY_UC 0x0000000000000001ULL
67 #define EFI_MEMORY_WC 0x0000000000000002ULL
68 #define EFI_MEMORY_WT 0x0000000000000004ULL
69 #define EFI_MEMORY_WB 0x0000000000000008ULL
70 #define EFI_MEMORY_UCE 0x0000000000000010ULL
71 //
72 // Physical memory protection attributes
73 //
74 // Note: UEFI spec 2.5 and following: use EFI_MEMORY_RO as write-protected physical memory
75 // protection attribute. Also, EFI_MEMORY_WP means cacheability attribute.
76 //
77 #define EFI_MEMORY_WP 0x0000000000001000ULL
78 #define EFI_MEMORY_RP 0x0000000000002000ULL
79 #define EFI_MEMORY_XP 0x0000000000004000ULL
80 #define EFI_MEMORY_RO 0x0000000000020000ULL
81 //
82 // Physical memory persistence attribute.
83 // The memory region supports byte-addressable non-volatility.
84 //
85 #define EFI_MEMORY_NV 0x0000000000008000ULL
86 //
87 // The memory region provides higher reliability relative to other memory in the system.
88 // If all memory has the same reliability, then this bit is not used.
89 //
90 #define EFI_MEMORY_MORE_RELIABLE 0x0000000000010000ULL
91 //
92 // Runtime memory attribute
93 //
94 #define EFI_MEMORY_RUNTIME 0x8000000000000000ULL
95 
99 #define EFI_MEMORY_DESCRIPTOR_VERSION 1
100 
104 typedef struct {
110  UINT32 Type;
116  EFI_PHYSICAL_ADDRESS PhysicalStart;
122  EFI_VIRTUAL_ADDRESS VirtualStart;
129  UINT64 NumberOfPages;
135  UINT64 Attribute;
137 
162 typedef
165  IN EFI_ALLOCATE_TYPE Type,
166  IN EFI_MEMORY_TYPE MemoryType,
167  IN UINTN Pages,
168  IN OUT EFI_PHYSICAL_ADDRESS *Memory
169  );
170 
183 typedef
185 (EFIAPI *EFI_FREE_PAGES)(
186  IN EFI_PHYSICAL_ADDRESS Memory,
187  IN UINTN Pages
188  );
189 
215 typedef
218  IN OUT UINTN *MemoryMapSize,
219  IN OUT EFI_MEMORY_DESCRIPTOR *MemoryMap,
220  OUT UINTN *MapKey,
221  OUT UINTN *DescriptorSize,
222  OUT UINT32 *DescriptorVersion
223  );
224 
244 typedef
247  IN EFI_MEMORY_TYPE PoolType,
248  IN UINTN Size,
249  OUT VOID **Buffer
250  );
251 
261 typedef
263 (EFIAPI *EFI_FREE_POOL)(
264  IN VOID *Buffer
265  );
266 
286 typedef
289  IN UINTN MemoryMapSize,
290  IN UINTN DescriptorSize,
291  IN UINT32 DescriptorVersion,
292  IN EFI_MEMORY_DESCRIPTOR *VirtualMap
293  );
294 
320 typedef
323  IN EFI_HANDLE ControllerHandle,
324  IN EFI_HANDLE *DriverImageHandle, OPTIONAL
325  IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath, OPTIONAL
326  IN BOOLEAN Recursive
327  );
328 
353 typedef
356  IN EFI_HANDLE ControllerHandle,
357  IN EFI_HANDLE DriverImageHandle, OPTIONAL
358  IN EFI_HANDLE ChildHandle OPTIONAL
359  );
360 
361 
362 
363 //
364 // ConvertPointer DebugDisposition type.
365 //
366 #define EFI_OPTIONAL_PTR 0x00000001
367 
383 typedef
386  IN UINTN DebugDisposition,
387  IN OUT VOID **Address
388  );
389 
390 
391 //
392 // These types can be ORed together as needed - for example,
393 // EVT_TIMER might be Ored with EVT_NOTIFY_WAIT or
394 // EVT_NOTIFY_SIGNAL.
395 //
396 #define EVT_TIMER 0x80000000
397 #define EVT_RUNTIME 0x40000000
398 #define EVT_NOTIFY_WAIT 0x00000100
399 #define EVT_NOTIFY_SIGNAL 0x00000200
400 
401 #define EVT_SIGNAL_EXIT_BOOT_SERVICES 0x00000201
402 #define EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE 0x60000202
403 
404 //
405 // The event's NotifyContext pointer points to a runtime memory
406 // address.
407 // The event is deprecated in UEFI2.0 and later specifications.
408 //
409 #define EVT_RUNTIME_CONTEXT 0x20000000
410 
411 
420 typedef
421 VOID
423  IN EFI_EVENT Event,
424  IN VOID *Context
425  );
426 
443 typedef
446  IN UINT32 Type,
447  IN EFI_TPL NotifyTpl,
448  IN EFI_EVENT_NOTIFY NotifyFunction,
449  IN VOID *NotifyContext,
450  OUT EFI_EVENT *Event
451  );
452 
472 typedef
475  IN UINT32 Type,
476  IN EFI_TPL NotifyTpl,
477  IN EFI_EVENT_NOTIFY NotifyFunction OPTIONAL,
478  IN CONST VOID *NotifyContext OPTIONAL,
479  IN CONST EFI_GUID *EventGroup OPTIONAL,
480  OUT EFI_EVENT *Event
481  );
482 
486 typedef enum {
500 
517 typedef
519 (EFIAPI *EFI_SET_TIMER)(
520  IN EFI_EVENT Event,
521  IN EFI_TIMER_DELAY Type,
522  IN UINT64 TriggerTime
523  );
524 
533 typedef
536  IN EFI_EVENT Event
537  );
538 
553 typedef
556  IN UINTN NumberOfEvents,
557  IN EFI_EVENT *Event,
558  OUT UINTN *Index
559  );
560 
569 typedef
571 (EFIAPI *EFI_CLOSE_EVENT)(
572  IN EFI_EVENT Event
573  );
574 
585 typedef
587 (EFIAPI *EFI_CHECK_EVENT)(
588  IN EFI_EVENT Event
589  );
590 
591 
592 //
593 // Task priority level
594 //
595 #define TPL_APPLICATION 4
596 #define TPL_CALLBACK 8
597 #define TPL_NOTIFY 16
598 #define TPL_HIGH_LEVEL 31
599 
600 
609 typedef
610 EFI_TPL
611 (EFIAPI *EFI_RAISE_TPL)(
612  IN EFI_TPL NewTpl
613  );
614 
621 typedef
622 VOID
623 (EFIAPI *EFI_RESTORE_TPL)(
624  IN EFI_TPL OldTpl
625  );
626 
651 typedef
654  IN CHAR16 *VariableName,
655  IN EFI_GUID *VendorGuid,
656  OUT UINT32 *Attributes, OPTIONAL
657  IN OUT UINTN *DataSize,
658  OUT VOID *Data OPTIONAL
659  );
660 
687 typedef
690  IN OUT UINTN *VariableNameSize,
691  IN OUT CHAR16 *VariableName,
692  IN OUT EFI_GUID *VendorGuid
693  );
694 
731 typedef
734  IN CHAR16 *VariableName,
735  IN EFI_GUID *VendorGuid,
736  IN UINT32 Attributes,
737  IN UINTN DataSize,
738  IN VOID *Data
739  );
740 
741 
746 typedef struct {
753  UINT32 Resolution;
760  UINT32 Accuracy;
768  BOOLEAN SetsToZero;
770 
784 typedef
786 (EFIAPI *EFI_GET_TIME)(
787  OUT EFI_TIME *Time,
788  OUT EFI_TIME_CAPABILITIES *Capabilities OPTIONAL
789  );
790 
801 typedef
803 (EFIAPI *EFI_SET_TIME)(
804  IN EFI_TIME *Time
805  );
806 
822 typedef
825  OUT BOOLEAN *Enabled,
826  OUT BOOLEAN *Pending,
827  OUT EFI_TIME *Time
828  );
829 
844 typedef
847  IN BOOLEAN Enable,
848  IN EFI_TIME *Time OPTIONAL
849  );
850 
881 typedef
883 (EFIAPI *EFI_IMAGE_LOAD)(
884  IN BOOLEAN BootPolicy,
885  IN EFI_HANDLE ParentImageHandle,
886  IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
887  IN VOID *SourceBuffer OPTIONAL,
888  IN UINTN SourceSize,
889  OUT EFI_HANDLE *ImageHandle
890  );
891 
906 typedef
908 (EFIAPI *EFI_IMAGE_START)(
909  IN EFI_HANDLE ImageHandle,
910  OUT UINTN *ExitDataSize,
911  OUT CHAR16 **ExitData OPTIONAL
912  );
913 
934 typedef
936 (EFIAPI *EFI_EXIT)(
937  IN EFI_HANDLE ImageHandle,
938  IN EFI_STATUS ExitStatus,
939  IN UINTN ExitDataSize,
940  IN CHAR16 *ExitData OPTIONAL
941  );
942 
952 typedef
955  IN EFI_HANDLE ImageHandle
956  );
957 
968 typedef
971  IN EFI_HANDLE ImageHandle,
972  IN UINTN MapKey
973  );
974 
984 typedef
986 (EFIAPI *EFI_STALL)(
987  IN UINTN Microseconds
988  );
989 
1006 typedef
1007 EFI_STATUS
1009  IN UINTN Timeout,
1010  IN UINT64 WatchdogCode,
1011  IN UINTN DataSize,
1012  IN CHAR16 *WatchdogData OPTIONAL
1013  );
1014 
1033 typedef
1034 VOID
1036  IN EFI_RESET_TYPE ResetType,
1037  IN EFI_STATUS ResetStatus,
1038  IN UINTN DataSize,
1039  IN VOID *ResetData OPTIONAL
1040  );
1041 
1052 typedef
1053 EFI_STATUS
1055  OUT UINT64 *Count
1056  );
1057 
1068 typedef
1069 EFI_STATUS
1071  OUT UINT32 *HighCount
1072  );
1073 
1089 typedef
1090 EFI_STATUS
1092  IN VOID *Data,
1093  IN UINTN DataSize,
1094  OUT UINT32 *Crc32
1095  );
1096 
1105 typedef
1106 VOID
1107 (EFIAPI *EFI_COPY_MEM)(
1108  IN VOID *Destination,
1109  IN VOID *Source,
1110  IN UINTN Length
1111  );
1112 
1121 typedef
1122 VOID
1123 (EFIAPI *EFI_SET_MEM)(
1124  IN VOID *Buffer,
1125  IN UINTN Size,
1126  IN UINT8 Value
1127  );
1128 
1132 typedef enum {
1138 
1159 typedef
1160 EFI_STATUS
1162  IN OUT EFI_HANDLE *Handle,
1163  IN EFI_GUID *Protocol,
1164  IN EFI_INTERFACE_TYPE InterfaceType,
1165  IN VOID *Interface
1166  );
1167 
1184 typedef
1185 EFI_STATUS
1187  IN OUT EFI_HANDLE *Handle,
1188  ...
1189  );
1190 
1209 typedef
1210 EFI_STATUS
1212  IN EFI_HANDLE Handle,
1213  IN EFI_GUID *Protocol,
1214  IN VOID *OldInterface,
1215  IN VOID *NewInterface
1216  );
1217 
1235 typedef
1236 EFI_STATUS
1238  IN EFI_HANDLE Handle,
1239  IN EFI_GUID *Protocol,
1240  IN VOID *Interface
1241  );
1242 
1254 typedef
1255 EFI_STATUS
1257  IN EFI_HANDLE Handle,
1258  ...
1259  );
1260 
1276 typedef
1277 EFI_STATUS
1279  IN EFI_HANDLE Handle,
1280  IN EFI_GUID *Protocol,
1281  OUT VOID **Interface
1282  );
1283 
1284 #define EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL 0x00000001
1285 #define EFI_OPEN_PROTOCOL_GET_PROTOCOL 0x00000002
1286 #define EFI_OPEN_PROTOCOL_TEST_PROTOCOL 0x00000004
1287 #define EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER 0x00000008
1288 #define EFI_OPEN_PROTOCOL_BY_DRIVER 0x00000010
1289 #define EFI_OPEN_PROTOCOL_EXCLUSIVE 0x00000020
1290 
1318 typedef
1319 EFI_STATUS
1321  IN EFI_HANDLE Handle,
1322  IN EFI_GUID *Protocol,
1323  OUT VOID **Interface, OPTIONAL
1324  IN EFI_HANDLE AgentHandle,
1325  IN EFI_HANDLE ControllerHandle,
1326  IN UINT32 Attributes
1327  );
1328 
1329 
1351 typedef
1352 EFI_STATUS
1354  IN EFI_HANDLE Handle,
1355  IN EFI_GUID *Protocol,
1356  IN EFI_HANDLE AgentHandle,
1357  IN EFI_HANDLE ControllerHandle
1358  );
1359 
1363 typedef struct {
1364  EFI_HANDLE AgentHandle;
1365  EFI_HANDLE ControllerHandle;
1366  UINT32 Attributes;
1367  UINT32 OpenCount;
1369 
1385 typedef
1386 EFI_STATUS
1388  IN EFI_HANDLE Handle,
1389  IN EFI_GUID *Protocol,
1391  OUT UINTN *EntryCount
1392  );
1393 
1415 typedef
1416 EFI_STATUS
1418  IN EFI_HANDLE Handle,
1419  OUT EFI_GUID ***ProtocolBuffer,
1420  OUT UINTN *ProtocolBufferCount
1421  );
1422 
1438 typedef
1439 EFI_STATUS
1441  IN EFI_GUID *Protocol,
1442  IN EFI_EVENT Event,
1443  OUT VOID **Registration
1444  );
1445 
1449 typedef enum {
1464 
1487 typedef
1488 EFI_STATUS
1490  IN EFI_LOCATE_SEARCH_TYPE SearchType,
1491  IN EFI_GUID *Protocol, OPTIONAL
1492  IN VOID *SearchKey, OPTIONAL
1493  IN OUT UINTN *BufferSize,
1494  OUT EFI_HANDLE *Buffer
1495  );
1496 
1513 typedef
1514 EFI_STATUS
1516  IN EFI_GUID *Protocol,
1517  IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath,
1518  OUT EFI_HANDLE *Device
1519  );
1520 
1534 typedef
1535 EFI_STATUS
1537  IN EFI_GUID *Guid,
1538  IN VOID *Table
1539  );
1540 
1560 typedef
1561 EFI_STATUS
1563  IN EFI_LOCATE_SEARCH_TYPE SearchType,
1564  IN EFI_GUID *Protocol, OPTIONAL
1565  IN VOID *SearchKey, OPTIONAL
1566  IN OUT UINTN *NoHandles,
1567  OUT EFI_HANDLE **Buffer
1568  );
1569 
1587 typedef
1588 EFI_STATUS
1590  IN EFI_GUID *Protocol,
1591  IN VOID *Registration, OPTIONAL
1592  OUT VOID **Interface
1593  );
1594 
1598 typedef struct {
1602  UINT64 Length;
1603  union {
1608  EFI_PHYSICAL_ADDRESS DataBlock;
1615  EFI_PHYSICAL_ADDRESS ContinuationPointer;
1616  } Union;
1618 
1622 typedef struct {
1626  EFI_GUID CapsuleGuid;
1632  UINT32 HeaderSize;
1638  UINT32 Flags;
1642  UINT32 CapsuleImageSize;
1644 
1650 typedef struct {
1658  VOID* CapsulePtr[1];
1660 
1661 #define CAPSULE_FLAGS_PERSIST_ACROSS_RESET 0x00010000
1662 #define CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE 0x00020000
1663 #define CAPSULE_FLAGS_INITIATE_RESET 0x00040000
1664 
1695 typedef
1696 EFI_STATUS
1698  IN EFI_CAPSULE_HEADER **CapsuleHeaderArray,
1699  IN UINTN CapsuleCount,
1700  IN EFI_PHYSICAL_ADDRESS ScatterGatherList OPTIONAL
1701  );
1702 
1726 typedef
1727 EFI_STATUS
1729  IN EFI_CAPSULE_HEADER **CapsuleHeaderArray,
1730  IN UINTN CapsuleCount,
1731  OUT UINT64 *MaximumCapsuleSize,
1732  OUT EFI_RESET_TYPE *ResetType
1733  );
1734 
1757 typedef
1758 EFI_STATUS
1760  IN UINT32 Attributes,
1761  OUT UINT64 *MaximumVariableStorageSize,
1762  OUT UINT64 *RemainingVariableStorageSize,
1763  OUT UINT64 *MaximumVariableSize
1764  );
1765 
1766 //
1767 // Firmware should stop at a firmware user interface on next boot
1768 //
1769 #define EFI_OS_INDICATIONS_BOOT_TO_FW_UI 0x0000000000000001
1770 #define EFI_OS_INDICATIONS_TIMESTAMP_REVOCATION 0x0000000000000002
1771 #define EFI_OS_INDICATIONS_FILE_CAPSULE_DELIVERY_SUPPORTED 0x0000000000000004
1772 #define EFI_OS_INDICATIONS_FMP_CAPSULE_SUPPORTED 0x0000000000000008
1773 #define EFI_OS_INDICATIONS_CAPSULE_RESULT_VAR_SUPPORTED 0x0000000000000010
1774 #define EFI_OS_INDICATIONS_START_PLATFORM_RECOVERY 0x0000000000000040
1775 
1776 //
1777 // EFI Runtime Services Table
1778 //
1779 #define EFI_SYSTEM_TABLE_SIGNATURE SIGNATURE_64 ('I','B','I',' ','S','Y','S','T')
1780 #define EFI_2_60_SYSTEM_TABLE_REVISION ((2 << 16) | (60))
1781 #define EFI_2_50_SYSTEM_TABLE_REVISION ((2 << 16) | (50))
1782 #define EFI_2_40_SYSTEM_TABLE_REVISION ((2 << 16) | (40))
1783 #define EFI_2_31_SYSTEM_TABLE_REVISION ((2 << 16) | (31))
1784 #define EFI_2_30_SYSTEM_TABLE_REVISION ((2 << 16) | (30))
1785 #define EFI_2_20_SYSTEM_TABLE_REVISION ((2 << 16) | (20))
1786 #define EFI_2_10_SYSTEM_TABLE_REVISION ((2 << 16) | (10))
1787 #define EFI_2_00_SYSTEM_TABLE_REVISION ((2 << 16) | (00))
1788 #define EFI_1_10_SYSTEM_TABLE_REVISION ((1 << 16) | (10))
1789 #define EFI_1_02_SYSTEM_TABLE_REVISION ((1 << 16) | (02))
1790 #define EFI_SYSTEM_TABLE_REVISION EFI_2_60_SYSTEM_TABLE_REVISION
1791 #define EFI_SPECIFICATION_VERSION EFI_SYSTEM_TABLE_REVISION
1792 
1793 #define EFI_RUNTIME_SERVICES_SIGNATURE SIGNATURE_64 ('R','U','N','T','S','E','R','V')
1794 #define EFI_RUNTIME_SERVICES_REVISION EFI_SPECIFICATION_VERSION
1795 
1799 typedef struct {
1803  EFI_TABLE_HEADER Hdr;
1804 
1805  //
1806  // Time Services
1807  //
1808  EFI_GET_TIME GetTime;
1809  EFI_SET_TIME SetTime;
1810  EFI_GET_WAKEUP_TIME GetWakeupTime;
1811  EFI_SET_WAKEUP_TIME SetWakeupTime;
1812 
1813  //
1814  // Virtual Memory Services
1815  //
1816  EFI_SET_VIRTUAL_ADDRESS_MAP SetVirtualAddressMap;
1817  EFI_CONVERT_POINTER ConvertPointer;
1818 
1819  //
1820  // Variable Services
1821  //
1822  EFI_GET_VARIABLE GetVariable;
1823  EFI_GET_NEXT_VARIABLE_NAME GetNextVariableName;
1824  EFI_SET_VARIABLE SetVariable;
1825 
1826  //
1827  // Miscellaneous Services
1828  //
1829  EFI_GET_NEXT_HIGH_MONO_COUNT GetNextHighMonotonicCount;
1830  EFI_RESET_SYSTEM ResetSystem;
1831 
1832  //
1833  // UEFI 2.0 Capsule Services
1834  //
1835  EFI_UPDATE_CAPSULE UpdateCapsule;
1836  EFI_QUERY_CAPSULE_CAPABILITIES QueryCapsuleCapabilities;
1837 
1838  //
1839  // Miscellaneous UEFI 2.0 Service
1840  //
1841  EFI_QUERY_VARIABLE_INFO QueryVariableInfo;
1843 
1844 
1845 #define EFI_BOOT_SERVICES_SIGNATURE SIGNATURE_64 ('B','O','O','T','S','E','R','V')
1846 #define EFI_BOOT_SERVICES_REVISION EFI_SPECIFICATION_VERSION
1847 
1851 typedef struct {
1855  EFI_TABLE_HEADER Hdr;
1856 
1857  //
1858  // Task Priority Services
1859  //
1860  EFI_RAISE_TPL RaiseTPL;
1861  EFI_RESTORE_TPL RestoreTPL;
1862 
1863  //
1864  // Memory Services
1865  //
1866  EFI_ALLOCATE_PAGES AllocatePages;
1867  EFI_FREE_PAGES FreePages;
1868  EFI_GET_MEMORY_MAP GetMemoryMap;
1869  EFI_ALLOCATE_POOL AllocatePool;
1870  EFI_FREE_POOL FreePool;
1871 
1872  //
1873  // Event & Timer Services
1874  //
1875  EFI_CREATE_EVENT CreateEvent;
1876  EFI_SET_TIMER SetTimer;
1877  EFI_WAIT_FOR_EVENT WaitForEvent;
1878  EFI_SIGNAL_EVENT SignalEvent;
1879  EFI_CLOSE_EVENT CloseEvent;
1880  EFI_CHECK_EVENT CheckEvent;
1881 
1882  //
1883  // Protocol Handler Services
1884  //
1885  EFI_INSTALL_PROTOCOL_INTERFACE InstallProtocolInterface;
1886  EFI_REINSTALL_PROTOCOL_INTERFACE ReinstallProtocolInterface;
1887  EFI_UNINSTALL_PROTOCOL_INTERFACE UninstallProtocolInterface;
1888  EFI_HANDLE_PROTOCOL HandleProtocol;
1889  VOID *Reserved;
1890  EFI_REGISTER_PROTOCOL_NOTIFY RegisterProtocolNotify;
1891  EFI_LOCATE_HANDLE LocateHandle;
1892  EFI_LOCATE_DEVICE_PATH LocateDevicePath;
1893  EFI_INSTALL_CONFIGURATION_TABLE InstallConfigurationTable;
1894 
1895  //
1896  // Image Services
1897  //
1898  EFI_IMAGE_LOAD LoadImage;
1899  EFI_IMAGE_START StartImage;
1900  EFI_EXIT Exit;
1901  EFI_IMAGE_UNLOAD UnloadImage;
1902  EFI_EXIT_BOOT_SERVICES ExitBootServices;
1903 
1904  //
1905  // Miscellaneous Services
1906  //
1907  EFI_GET_NEXT_MONOTONIC_COUNT GetNextMonotonicCount;
1908  EFI_STALL Stall;
1909  EFI_SET_WATCHDOG_TIMER SetWatchdogTimer;
1910 
1911  //
1912  // DriverSupport Services
1913  //
1914  EFI_CONNECT_CONTROLLER ConnectController;
1915  EFI_DISCONNECT_CONTROLLER DisconnectController;
1916 
1917  //
1918  // Open and Close Protocol Services
1919  //
1920  EFI_OPEN_PROTOCOL OpenProtocol;
1921  EFI_CLOSE_PROTOCOL CloseProtocol;
1922  EFI_OPEN_PROTOCOL_INFORMATION OpenProtocolInformation;
1923 
1924  //
1925  // Library Services
1926  //
1927  EFI_PROTOCOLS_PER_HANDLE ProtocolsPerHandle;
1928  EFI_LOCATE_HANDLE_BUFFER LocateHandleBuffer;
1929  EFI_LOCATE_PROTOCOL LocateProtocol;
1930  EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES InstallMultipleProtocolInterfaces;
1931  EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES UninstallMultipleProtocolInterfaces;
1932 
1933  //
1934  // 32-bit CRC Services
1935  //
1936  EFI_CALCULATE_CRC32 CalculateCrc32;
1937 
1938  //
1939  // Miscellaneous Services
1940  //
1941  EFI_COPY_MEM CopyMem;
1942  EFI_SET_MEM SetMem;
1943  EFI_CREATE_EVENT_EX CreateEventEx;
1945 
1950 typedef struct {
1954  EFI_GUID VendorGuid;
1958  VOID *VendorTable;
1960 
1964 typedef struct {
1983  EFI_HANDLE ConsoleInHandle;
1988  EFI_SIMPLE_TEXT_INPUT_PROTOCOL *ConIn;
1992  EFI_HANDLE ConsoleOutHandle;
1997  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *ConOut;
2007  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *StdErr;
2026 
2038 typedef
2039 EFI_STATUS
2041  IN EFI_HANDLE ImageHandle,
2042  IN EFI_SYSTEM_TABLE *SystemTable
2043  );
2044 
2045 //
2046 // EFI Load Option. This data structure describes format of UEFI boot option variables.
2047 //
2048 // NOTE: EFI Load Option is a byte packed buffer of variable length fields.
2049 // The first two fields have fixed length. They are declared as members of the
2050 // EFI_LOAD_OPTION structure. All the other fields are variable length fields.
2051 // They are listed in the comment block below for reference purposes.
2052 //
2053 #pragma pack(1)
2054 typedef struct _EFI_LOAD_OPTION {
2059  UINT32 Attributes;
2070  // CHAR16 Description[];
2082  // EFI_DEVICE_PATH_PROTOCOL FilePathList[];
2090  // UINT8 OptionalData[];
2091 } EFI_LOAD_OPTION;
2092 #pragma pack()
2093 
2094 //
2095 // EFI Load Options Attributes
2096 //
2097 #define LOAD_OPTION_ACTIVE 0x00000001
2098 #define LOAD_OPTION_FORCE_RECONNECT 0x00000002
2099 #define LOAD_OPTION_HIDDEN 0x00000008
2100 #define LOAD_OPTION_CATEGORY 0x00001F00
2101 
2102 #define LOAD_OPTION_CATEGORY_BOOT 0x00000000
2103 #define LOAD_OPTION_CATEGORY_APP 0x00000100
2104 
2105 #define EFI_BOOT_OPTION_SUPPORT_KEY 0x00000001
2106 #define EFI_BOOT_OPTION_SUPPORT_APP 0x00000002
2107 #define EFI_BOOT_OPTION_SUPPORT_SYSPREP 0x00000010
2108 #define EFI_BOOT_OPTION_SUPPORT_COUNT 0x00000300
2109 
2113 typedef union {
2114  struct {
2118  UINT32 Revision : 8;
2122  UINT32 ShiftPressed : 1;
2126  UINT32 ControlPressed : 1;
2130  UINT32 AltPressed : 1;
2134  UINT32 LogoPressed : 1;
2138  UINT32 MenuPressed : 1;
2142  UINT32 SysReqPressed : 1;
2143  UINT32 Reserved : 16;
2149  UINT32 InputKeyCount : 2;
2150  } Options;
2151  UINT32 PackedValue;
2153 
2157 #pragma pack(1)
2158 typedef struct {
2173  UINT16 BootOption;
2179  //EFI_INPUT_KEY Keys[];
2180 } EFI_KEY_OPTION;
2181 #pragma pack()
2182 
2183 //
2184 // EFI File location to boot from on removable media devices
2185 //
2186 #define EFI_REMOVABLE_MEDIA_FILE_NAME_IA32 L"\\EFI\\BOOT\\BOOTIA32.EFI"
2187 #define EFI_REMOVABLE_MEDIA_FILE_NAME_IA64 L"\\EFI\\BOOT\\BOOTIA64.EFI"
2188 #define EFI_REMOVABLE_MEDIA_FILE_NAME_X64 L"\\EFI\\BOOT\\BOOTX64.EFI"
2189 #define EFI_REMOVABLE_MEDIA_FILE_NAME_ARM L"\\EFI\\BOOT\\BOOTARM.EFI"
2190 #define EFI_REMOVABLE_MEDIA_FILE_NAME_AARCH64 L"\\EFI\\BOOT\\BOOTAA64.EFI"
2191 
2192 #if defined (MDE_CPU_IA32)
2193  #define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_IA32
2194 #elif defined (MDE_CPU_IPF)
2195  #define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_IA64
2196 #elif defined (MDE_CPU_X64)
2197  #define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_X64
2198 #elif defined (MDE_CPU_EBC)
2199 #elif defined (MDE_CPU_ARM)
2200  #define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_ARM
2201 #elif defined (MDE_CPU_AARCH64)
2202  #define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_AARCH64
2203 #else
2204  #error Unknown Processor Type
2205 #endif
2206 
2207 #include <Uefi/UefiPxe.h>
2208 #include <Uefi/UefiGpt.h>
2210 
2211 #endif
EFI_STATUS EFIAPI GetWakeupTime(OUT BOOLEAN *Enabled, OUT BOOLEAN *Pending, OUT EFI_TIME *Time)
Definition: RealTimeClock.c:88
EFI_STATUS(EFIAPI * EFI_CREATE_EVENT_EX)(IN UINT32 Type, IN EFI_TPL NotifyTpl, IN EFI_EVENT_NOTIFY NotifyFunction OPTIONAL, IN CONST VOID *NotifyContext OPTIONAL, IN CONST EFI_GUID *EventGroup OPTIONAL, OUT EFI_EVENT *Event)
Definition: UefiSpec.h:474
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL * StdErr
Definition: UefiSpec.h:2007
EFI_STATUS(EFIAPI * EFI_SIGNAL_EVENT)(IN EFI_EVENT Event)
Definition: UefiSpec.h:535
UINT32 BootOptionCrc
Definition: UefiSpec.h:2168
EFI_STATUS LoadImage(IN EFI_HANDLE ParentImageHandle, IN EFI_DEVICE_PATH_PROTOCOL *FilePath, IN VOID *SourceBuffer, IN UINTN SourceSize, OUT EFI_HANDLE *ImageHandle)
VOID *EFIAPI AllocatePages(IN UINTN Pages)
EFI_STATUS(EFIAPI * EFI_OPEN_PROTOCOL)(IN EFI_HANDLE Handle, IN EFI_GUID *Protocol, OUT VOID **Interface, OPTIONAL IN EFI_HANDLE AgentHandle, IN EFI_HANDLE ControllerHandle, IN UINT32 Attributes)
Definition: UefiSpec.h:1320
EFI_HANDLE ConsoleInHandle
Definition: UefiSpec.h:1983
EFI_STATUS(EFIAPI * EFI_WAIT_FOR_EVENT)(IN UINTN NumberOfEvents, IN EFI_EVENT *Event, OUT UINTN *Index)
Definition: UefiSpec.h:555
UINT32 SysReqPressed
Definition: UefiSpec.h:2142
EFI_CONFIGURATION_TABLE * ConfigurationTable
Definition: UefiSpec.h:2024
EFI_STATUS(EFIAPI * EFI_SET_VARIABLE)(IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN UINT32 Attributes, IN UINTN DataSize, IN VOID *Data)
Definition: UefiSpec.h:733
EFI_STATUS(EFIAPI * EFI_REGISTER_PROTOCOL_NOTIFY)(IN EFI_GUID *Protocol, IN EFI_EVENT Event, OUT VOID **Registration)
Definition: UefiSpec.h:1440
EFI_PHYSICAL_ADDRESS DataBlock
Definition: UefiSpec.h:1608
EFI_TPL(EFIAPI * EFI_RAISE_TPL)(IN EFI_TPL NewTpl)
Definition: UefiSpec.h:611
EFI_STATUS(EFIAPI * EFI_CONNECT_CONTROLLER)(IN EFI_HANDLE ControllerHandle, IN EFI_HANDLE *DriverImageHandle, OPTIONAL IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath, OPTIONAL IN BOOLEAN Recursive)
Definition: UefiSpec.h:322
EFI_STATUS(EFIAPI * EFI_CLOSE_EVENT)(IN EFI_EVENT Event)
Definition: UefiSpec.h:571
EFI_STATUS(EFIAPI * EFI_INSTALL_PROTOCOL_INTERFACE)(IN OUT EFI_HANDLE *Handle, IN EFI_GUID *Protocol, IN EFI_INTERFACE_TYPE InterfaceType, IN VOID *Interface)
Definition: UefiSpec.h:1161
UINT32 FirmwareRevision
Definition: UefiSpec.h:1978
EFI_STATUS(EFIAPI * EFI_ALLOCATE_PAGES)(IN EFI_ALLOCATE_TYPE Type, IN EFI_MEMORY_TYPE MemoryType, IN UINTN Pages, IN OUT EFI_PHYSICAL_ADDRESS *Memory)
Definition: UefiSpec.h:164
EFI_STATUS(EFIAPI * EFI_IMAGE_START)(IN EFI_HANDLE ImageHandle, OUT UINTN *ExitDataSize, OUT CHAR16 **ExitData OPTIONAL)
Definition: UefiSpec.h:908
EFI_ALLOCATE_TYPE
Definition: UefiSpec.h:32
UINT16 FilePathListLength
Definition: UefiSpec.h:2065
EFI_STATUS(EFIAPI * EFI_QUERY_VARIABLE_INFO)(IN UINT32 Attributes, OUT UINT64 *MaximumVariableStorageSize, OUT UINT64 *RemainingVariableStorageSize, OUT UINT64 *MaximumVariableSize)
Definition: UefiSpec.h:1759
EFI_STATUS(EFIAPI * EFI_CHECK_EVENT)(IN EFI_EVENT Event)
Definition: UefiSpec.h:587
VOID *EFIAPI SetMem(OUT VOID *Buffer, IN UINTN Length, IN UINT8 Value)
Definition: SetMemWrapper.c:44
EFI_STATUS(EFIAPI * EFI_LOCATE_HANDLE_BUFFER)(IN EFI_LOCATE_SEARCH_TYPE SearchType, IN EFI_GUID *Protocol, OPTIONAL IN VOID *SearchKey, OPTIONAL IN OUT UINTN *NoHandles, OUT EFI_HANDLE **Buffer)
Definition: UefiSpec.h:1562
EFI_STATUS EFIAPI SetWakeupTime(IN BOOLEAN Enabled, OUT EFI_TIME *Time)
VOID EFIAPI FreePages(IN VOID *Buffer, IN UINTN Pages)
EFI_STATUS(EFIAPI * EFI_LOCATE_HANDLE)(IN EFI_LOCATE_SEARCH_TYPE SearchType, IN EFI_GUID *Protocol, OPTIONAL IN VOID *SearchKey, OPTIONAL IN OUT UINTN *BufferSize, OUT EFI_HANDLE *Buffer)
Definition: UefiSpec.h:1489
EFI_STATUS(EFIAPI * EFI_SET_TIMER)(IN EFI_EVENT Event, IN EFI_TIMER_DELAY Type, IN UINT64 TriggerTime)
Definition: UefiSpec.h:519
EFI_STATUS(EFIAPI * EFI_IMAGE_ENTRY_POINT)(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
Definition: UefiSpec.h:2040
EFI_STATUS(EFIAPI * EFI_SET_WAKEUP_TIME)(IN BOOLEAN Enable, IN EFI_TIME *Time OPTIONAL)
Definition: UefiSpec.h:846
EFI_STATUS EFIAPI SetTime(IN EFI_TIME *Time)
Definition: RealTimeClock.c:66
VOID(EFIAPI * EFI_COPY_MEM)(IN VOID *Destination, IN VOID *Source, IN UINTN Length)
Definition: UefiSpec.h:1107
EFI_STATUS(EFIAPI * EFI_CREATE_EVENT)(IN UINT32 Type, IN EFI_TPL NotifyTpl, IN EFI_EVENT_NOTIFY NotifyFunction, IN VOID *NotifyContext, OUT EFI_EVENT *Event)
Definition: UefiSpec.h:445
EFI_STATUS EFIAPI UpdateCapsule(IN EFI_CAPSULE_HEADER **CapsuleHeaderArray, IN UINTN CapsuleCount, IN EFI_PHYSICAL_ADDRESS ScatterGatherList OPTIONAL)
EFI_SIMPLE_TEXT_INPUT_PROTOCOL * ConIn
Definition: UefiSpec.h:1988
VOID *EFIAPI AllocatePool(IN UINTN AllocationSize)
EFI_STATUS(EFIAPI * EFI_FREE_POOL)(IN VOID *Buffer)
Definition: UefiSpec.h:263
UINT16 BootOption
Definition: UefiSpec.h:2173
EFI_STATUS(EFIAPI * EFI_INSTALL_CONFIGURATION_TABLE)(IN EFI_GUID *Guid, IN VOID *Table)
Definition: UefiSpec.h:1536
EFI_HANDLE StandardErrorHandle
Definition: UefiSpec.h:2002
EFI_STATUS EFIAPI Stall(IN CONST EFI_PEI_SERVICES **PeiServices, IN CONST EFI_PEI_STALL_PPI *This, IN UINTN Microseconds)
Definition: Stall.c:79
EFI_STATUS(EFIAPI * EFI_IMAGE_LOAD)(IN BOOLEAN BootPolicy, IN EFI_HANDLE ParentImageHandle, IN EFI_DEVICE_PATH_PROTOCOL *DevicePath, IN VOID *SourceBuffer OPTIONAL, IN UINTN SourceSize, OUT EFI_HANDLE *ImageHandle)
Definition: UefiSpec.h:883
#define OUT
Definition: Base.h:332
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL * ConOut
Definition: UefiSpec.h:1997
EFI_STATUS(EFIAPI * EFI_HANDLE_PROTOCOL)(IN EFI_HANDLE Handle, IN EFI_GUID *Protocol, OUT VOID **Interface)
Definition: UefiSpec.h:1278
EFI_STATUS(EFIAPI * EFI_QUERY_CAPSULE_CAPABILITIES)(IN EFI_CAPSULE_HEADER **CapsuleHeaderArray, IN UINTN CapsuleCount, OUT UINT64 *MaximumCapsuleSize, OUT EFI_RESET_TYPE *ResetType)
Definition: UefiSpec.h:1728
EFI_STATUS(EFIAPI * EFI_EXIT)(IN EFI_HANDLE ImageHandle, IN EFI_STATUS ExitStatus, IN UINTN ExitDataSize, IN CHAR16 *ExitData OPTIONAL)
Definition: UefiSpec.h:936
EFI_STATUS(EFIAPI * EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES)(IN EFI_HANDLE Handle,...)
Definition: UefiSpec.h:1256
EFI_STATUS EFIAPI GetTime(OUT EFI_TIME *Time, OUT EFI_TIME_CAPABILITIES *Capabilities)
Definition: RealTimeClock.c:44
EFI_TIMER_DELAY
Definition: UefiSpec.h:486
EFI_STATUS(EFIAPI * EFI_CALCULATE_CRC32)(IN VOID *Data, IN UINTN DataSize, OUT UINT32 *Crc32)
Definition: UefiSpec.h:1091
EFI_STATUS(EFIAPI * EFI_GET_NEXT_MONOTONIC_COUNT)(OUT UINT64 *Count)
Definition: UefiSpec.h:1054
EFI_STATUS(EFIAPI * EFI_GET_NEXT_VARIABLE_NAME)(IN OUT UINTN *VariableNameSize, IN OUT CHAR16 *VariableName, IN OUT EFI_GUID *VendorGuid)
Definition: UefiSpec.h:689
EFI_PHYSICAL_ADDRESS ContinuationPointer
Definition: UefiSpec.h:1615
UINT32 ShiftPressed
Definition: UefiSpec.h:2122
UINT32 LogoPressed
Definition: UefiSpec.h:2134
EFI_STATUS LocateProtocol(IN EFI_GUID *ProtocolGuid, OUT VOID **Interface)
Definition: IpSecConfig.c:474
EFI_BOOT_SERVICES * BootServices
Definition: UefiSpec.h:2015
EFI_STATUS(EFIAPI * EFI_EXIT_BOOT_SERVICES)(IN EFI_HANDLE ImageHandle, IN UINTN MapKey)
Definition: UefiSpec.h:970
EFI_STATUS EFIAPI QueryCapsuleCapabilities(IN EFI_CAPSULE_HEADER **CapsuleHeaderArray, IN UINTN CapsuleCount, OUT UINT64 *MaxiumCapsuleSize, OUT EFI_RESET_TYPE *ResetType)
EFI_STATUS(EFIAPI * EFI_LOCATE_PROTOCOL)(IN EFI_GUID *Protocol, IN VOID *Registration, OPTIONAL OUT VOID **Interface)
Definition: UefiSpec.h:1589
UINT32 MenuPressed
Definition: UefiSpec.h:2138
EFI_STATUS(EFIAPI * EFI_SET_WATCHDOG_TIMER)(IN UINTN Timeout, IN UINT64 WatchdogCode, IN UINTN DataSize, IN CHAR16 *WatchdogData OPTIONAL)
Definition: UefiSpec.h:1008
EFI_STATUS(EFIAPI * EFI_OPEN_PROTOCOL_INFORMATION)(IN EFI_HANDLE Handle, IN EFI_GUID *Protocol, OUT EFI_OPEN_PROTOCOL_INFORMATION_ENTRY **EntryBuffer, OUT UINTN *EntryCount)
Definition: UefiSpec.h:1387
EFI_STATUS(EFIAPI * EFI_GET_VARIABLE)(IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, OUT UINT32 *Attributes, OPTIONAL IN OUT UINTN *DataSize, OUT VOID *Data OPTIONAL)
Definition: UefiSpec.h:653
EFI_RUNTIME_SERVICES * RuntimeServices
Definition: UefiSpec.h:2011
EFI_STATUS(EFIAPI * EFI_UPDATE_CAPSULE)(IN EFI_CAPSULE_HEADER **CapsuleHeaderArray, IN UINTN CapsuleCount, IN EFI_PHYSICAL_ADDRESS ScatterGatherList OPTIONAL)
Definition: UefiSpec.h:1697
VOID EFIAPI FreePool(IN VOID *Buffer)
EFI_STATUS(EFIAPI * EFI_DISCONNECT_CONTROLLER)(IN EFI_HANDLE ControllerHandle, IN EFI_HANDLE DriverImageHandle, OPTIONAL IN EFI_HANDLE ChildHandle OPTIONAL)
Definition: UefiSpec.h:355
EFI_STATUS LocateHandle(IN EFI_LOCATE_SEARCH_TYPE SearchType, IN EFI_GUID *Protocol OPTIONAL, IN VOID *SearchKey OPTIONAL, IN OUT UINTN *NoHandles, OUT EFI_HANDLE **Buffer)
Definition: IpSecConfig.c:422
EFI_STATUS(EFIAPI * EFI_PROTOCOLS_PER_HANDLE)(IN EFI_HANDLE Handle, OUT EFI_GUID ***ProtocolBuffer, OUT UINTN *ProtocolBufferCount)
Definition: UefiSpec.h:1417
UINTN NumberOfTableEntries
Definition: UefiSpec.h:2019
#define OPTIONAL
Definition: Base.h:338
EFI_TABLE_HEADER Hdr
Definition: UefiSpec.h:1968
UINT32 ControlPressed
Definition: UefiSpec.h:2126
EFI_STATUS(EFIAPI * EFI_IMAGE_UNLOAD)(IN EFI_HANDLE ImageHandle)
Definition: UefiSpec.h:954
VOID(EFIAPI * EFI_SET_MEM)(IN VOID *Buffer, IN UINTN Size, IN UINT8 Value)
Definition: UefiSpec.h:1123
UINTN EFI_TPL
Definition: UefiBaseType.h:45
EFI_STATUS(EFIAPI * EFI_SET_TIME)(IN EFI_TIME *Time)
Definition: UefiSpec.h:803
EFI_STATUS(EFIAPI * EFI_GET_MEMORY_MAP)(IN OUT UINTN *MemoryMapSize, IN OUT EFI_MEMORY_DESCRIPTOR *MemoryMap, OUT UINTN *MapKey, OUT UINTN *DescriptorSize, OUT UINT32 *DescriptorVersion)
Definition: UefiSpec.h:217
VOID EFIAPI ResetSystem(IN EFI_RESET_TYPE ResetType, IN EFI_STATUS ResetStatus, IN UINTN DataSize, IN VOID *ResetData OPTIONAL)
Definition: ResetSystem.c:216
#define CONST
Definition: Base.h:307
VOID(EFIAPI * EFI_RESET_SYSTEM)(IN EFI_RESET_TYPE ResetType, IN EFI_STATUS ResetStatus, IN UINTN DataSize, IN VOID *ResetData OPTIONAL)
Definition: UefiSpec.h:1035
EFI_STATUS(EFIAPI * EFI_CLOSE_PROTOCOL)(IN EFI_HANDLE Handle, IN EFI_GUID *Protocol, IN EFI_HANDLE AgentHandle, IN EFI_HANDLE ControllerHandle)
Definition: UefiSpec.h:1353
EFI_INTERFACE_TYPE
Definition: UefiSpec.h:1132
EFI_STATUS(EFIAPI * EFI_LOCATE_DEVICE_PATH)(IN EFI_GUID *Protocol, IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath, OUT EFI_HANDLE *Device)
Definition: UefiSpec.h:1515
EFI_LOCATE_SEARCH_TYPE
Definition: UefiSpec.h:1449
#define VOID
Definition: Base.h:317
EFI_STATUS(EFIAPI * EFI_GET_TIME)(OUT EFI_TIME *Time, OUT EFI_TIME_CAPABILITIES *Capabilities OPTIONAL)
Definition: UefiSpec.h:786
EFI_HANDLE ConsoleOutHandle
Definition: UefiSpec.h:1992
#define IN
Definition: Base.h:327
VOID *EFIAPI CopyMem(OUT VOID *DestinationBuffer, IN CONST VOID *SourceBuffer, IN UINTN Length)
UINT32 Attributes
Definition: UefiSpec.h:2059
EFI_STATUS(EFIAPI * EFI_UNINSTALL_PROTOCOL_INTERFACE)(IN EFI_HANDLE Handle, IN EFI_GUID *Protocol, IN VOID *Interface)
Definition: UefiSpec.h:1237
EFI_STATUS(EFIAPI * EFI_FREE_PAGES)(IN EFI_PHYSICAL_ADDRESS Memory, IN UINTN Pages)
Definition: UefiSpec.h:185
EFI_STATUS(EFIAPI * EFI_STALL)(IN UINTN Microseconds)
Definition: UefiSpec.h:986
EFI_STATUS(EFIAPI * EFI_CONVERT_POINTER)(IN UINTN DebugDisposition, IN OUT VOID **Address)
Definition: UefiSpec.h:385
EFI_STATUS(EFIAPI * EFI_ALLOCATE_POOL)(IN EFI_MEMORY_TYPE PoolType, IN UINTN Size, OUT VOID **Buffer)
Definition: UefiSpec.h:246
EFI_STATUS(EFIAPI * EFI_GET_NEXT_HIGH_MONO_COUNT)(OUT UINT32 *HighCount)
Definition: UefiSpec.h:1070
UINT32 CapsuleArrayNumber
Definition: UefiSpec.h:1654
VOID EFIAPI Exit(IN EFI_STATUS Status)
EFI_STATUS(EFIAPI * EFI_REINSTALL_PROTOCOL_INTERFACE)(IN EFI_HANDLE Handle, IN EFI_GUID *Protocol, IN VOID *OldInterface, IN VOID *NewInterface)
Definition: UefiSpec.h:1211
EFI_BOOT_KEY_DATA KeyData
Definition: UefiSpec.h:2162
UINT32 InputKeyCount
Definition: UefiSpec.h:2149
EFI_STATUS(EFIAPI * EFI_SET_VIRTUAL_ADDRESS_MAP)(IN UINTN MemoryMapSize, IN UINTN DescriptorSize, IN UINT32 DescriptorVersion, IN EFI_MEMORY_DESCRIPTOR *VirtualMap)
Definition: UefiSpec.h:288
VOID *EFIAPI GetVariable(IN CONST CHAR16 *Name, IN CONST EFI_GUID *Guid)
Definition: UefiLib.c:1273
VOID(EFIAPI * EFI_RESTORE_TPL)(IN EFI_TPL OldTpl)
Definition: UefiSpec.h:623
EFI_STATUS GetMemoryMap(IN EFI_PEI_SERVICES **PeiServices, IN UINT32 TotalMemorySize, IN OUT PEI_DUAL_CHANNEL_DDR_MEMORY_MAP_RANGE *MemoryMap, IN OUT UINT8 *NumRanges)
Definition: MrcWrapper.c:1087
EFI_STATUS(EFIAPI * EFI_GET_WAKEUP_TIME)(OUT BOOLEAN *Enabled, OUT BOOLEAN *Pending, OUT EFI_TIME *Time)
Definition: UefiSpec.h:824
RETURN_STATUS EFI_STATUS
Definition: UefiBaseType.h:33
CHAR16 * FirmwareVendor
Definition: UefiSpec.h:1973
VOID EFIAPI NotifyFunction(IN EFI_EVENT Event, IN VOID *Context)
Definition: ScsiBus.c:1480
EFI_STATUS(EFIAPI * EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES)(IN OUT EFI_HANDLE *Handle,...)
Definition: UefiSpec.h:1186
VOID(EFIAPI * EFI_EVENT_NOTIFY)(IN EFI_EVENT Event, IN VOID *Context)
Definition: UefiSpec.h:422