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 {
108  UINT32 Type;
113  EFI_PHYSICAL_ADDRESS PhysicalStart;
118  EFI_VIRTUAL_ADDRESS VirtualStart;
122  UINT64 NumberOfPages;
128  UINT64 Attribute;
130 
155 typedef
158  IN EFI_ALLOCATE_TYPE Type,
159  IN EFI_MEMORY_TYPE MemoryType,
160  IN UINTN Pages,
161  IN OUT EFI_PHYSICAL_ADDRESS *Memory
162  );
163 
176 typedef
178 (EFIAPI *EFI_FREE_PAGES)(
179  IN EFI_PHYSICAL_ADDRESS Memory,
180  IN UINTN Pages
181  );
182 
208 typedef
211  IN OUT UINTN *MemoryMapSize,
212  IN OUT EFI_MEMORY_DESCRIPTOR *MemoryMap,
213  OUT UINTN *MapKey,
214  OUT UINTN *DescriptorSize,
215  OUT UINT32 *DescriptorVersion
216  );
217 
237 typedef
240  IN EFI_MEMORY_TYPE PoolType,
241  IN UINTN Size,
242  OUT VOID **Buffer
243  );
244 
254 typedef
256 (EFIAPI *EFI_FREE_POOL)(
257  IN VOID *Buffer
258  );
259 
279 typedef
282  IN UINTN MemoryMapSize,
283  IN UINTN DescriptorSize,
284  IN UINT32 DescriptorVersion,
285  IN EFI_MEMORY_DESCRIPTOR *VirtualMap
286  );
287 
313 typedef
316  IN EFI_HANDLE ControllerHandle,
317  IN EFI_HANDLE *DriverImageHandle, OPTIONAL
318  IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath, OPTIONAL
319  IN BOOLEAN Recursive
320  );
321 
346 typedef
349  IN EFI_HANDLE ControllerHandle,
350  IN EFI_HANDLE DriverImageHandle, OPTIONAL
351  IN EFI_HANDLE ChildHandle OPTIONAL
352  );
353 
354 
355 
356 //
357 // ConvertPointer DebugDisposition type.
358 //
359 #define EFI_OPTIONAL_PTR 0x00000001
360 
376 typedef
379  IN UINTN DebugDisposition,
380  IN OUT VOID **Address
381  );
382 
383 
384 //
385 // These types can be ORed together as needed - for example,
386 // EVT_TIMER might be Ored with EVT_NOTIFY_WAIT or
387 // EVT_NOTIFY_SIGNAL.
388 //
389 #define EVT_TIMER 0x80000000
390 #define EVT_RUNTIME 0x40000000
391 #define EVT_NOTIFY_WAIT 0x00000100
392 #define EVT_NOTIFY_SIGNAL 0x00000200
393 
394 #define EVT_SIGNAL_EXIT_BOOT_SERVICES 0x00000201
395 #define EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE 0x60000202
396 
397 //
398 // The event's NotifyContext pointer points to a runtime memory
399 // address.
400 // The event is deprecated in UEFI2.0 and later specifications.
401 //
402 #define EVT_RUNTIME_CONTEXT 0x20000000
403 
404 
413 typedef
414 VOID
416  IN EFI_EVENT Event,
417  IN VOID *Context
418  );
419 
436 typedef
439  IN UINT32 Type,
440  IN EFI_TPL NotifyTpl,
441  IN EFI_EVENT_NOTIFY NotifyFunction,
442  IN VOID *NotifyContext,
443  OUT EFI_EVENT *Event
444  );
445 
465 typedef
468  IN UINT32 Type,
469  IN EFI_TPL NotifyTpl,
470  IN EFI_EVENT_NOTIFY NotifyFunction OPTIONAL,
471  IN CONST VOID *NotifyContext OPTIONAL,
472  IN CONST EFI_GUID *EventGroup OPTIONAL,
473  OUT EFI_EVENT *Event
474  );
475 
479 typedef enum {
493 
510 typedef
512 (EFIAPI *EFI_SET_TIMER)(
513  IN EFI_EVENT Event,
514  IN EFI_TIMER_DELAY Type,
515  IN UINT64 TriggerTime
516  );
517 
526 typedef
529  IN EFI_EVENT Event
530  );
531 
546 typedef
549  IN UINTN NumberOfEvents,
550  IN EFI_EVENT *Event,
551  OUT UINTN *Index
552  );
553 
562 typedef
564 (EFIAPI *EFI_CLOSE_EVENT)(
565  IN EFI_EVENT Event
566  );
567 
578 typedef
580 (EFIAPI *EFI_CHECK_EVENT)(
581  IN EFI_EVENT Event
582  );
583 
584 
585 //
586 // Task priority level
587 //
588 #define TPL_APPLICATION 4
589 #define TPL_CALLBACK 8
590 #define TPL_NOTIFY 16
591 #define TPL_HIGH_LEVEL 31
592 
593 
602 typedef
603 EFI_TPL
604 (EFIAPI *EFI_RAISE_TPL)(
605  IN EFI_TPL NewTpl
606  );
607 
614 typedef
615 VOID
616 (EFIAPI *EFI_RESTORE_TPL)(
617  IN EFI_TPL OldTpl
618  );
619 
644 typedef
647  IN CHAR16 *VariableName,
648  IN EFI_GUID *VendorGuid,
649  OUT UINT32 *Attributes, OPTIONAL
650  IN OUT UINTN *DataSize,
651  OUT VOID *Data OPTIONAL
652  );
653 
674 typedef
677  IN OUT UINTN *VariableNameSize,
678  IN OUT CHAR16 *VariableName,
679  IN OUT EFI_GUID *VendorGuid
680  );
681 
718 typedef
721  IN CHAR16 *VariableName,
722  IN EFI_GUID *VendorGuid,
723  IN UINT32 Attributes,
724  IN UINTN DataSize,
725  IN VOID *Data
726  );
727 
728 
733 typedef struct {
740  UINT32 Resolution;
747  UINT32 Accuracy;
755  BOOLEAN SetsToZero;
757 
771 typedef
773 (EFIAPI *EFI_GET_TIME)(
774  OUT EFI_TIME *Time,
775  OUT EFI_TIME_CAPABILITIES *Capabilities OPTIONAL
776  );
777 
788 typedef
790 (EFIAPI *EFI_SET_TIME)(
791  IN EFI_TIME *Time
792  );
793 
809 typedef
812  OUT BOOLEAN *Enabled,
813  OUT BOOLEAN *Pending,
814  OUT EFI_TIME *Time
815  );
816 
831 typedef
834  IN BOOLEAN Enable,
835  IN EFI_TIME *Time OPTIONAL
836  );
837 
868 typedef
870 (EFIAPI *EFI_IMAGE_LOAD)(
871  IN BOOLEAN BootPolicy,
872  IN EFI_HANDLE ParentImageHandle,
873  IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
874  IN VOID *SourceBuffer OPTIONAL,
875  IN UINTN SourceSize,
876  OUT EFI_HANDLE *ImageHandle
877  );
878 
893 typedef
895 (EFIAPI *EFI_IMAGE_START)(
896  IN EFI_HANDLE ImageHandle,
897  OUT UINTN *ExitDataSize,
898  OUT CHAR16 **ExitData OPTIONAL
899  );
900 
921 typedef
923 (EFIAPI *EFI_EXIT)(
924  IN EFI_HANDLE ImageHandle,
925  IN EFI_STATUS ExitStatus,
926  IN UINTN ExitDataSize,
927  IN CHAR16 *ExitData OPTIONAL
928  );
929 
939 typedef
942  IN EFI_HANDLE ImageHandle
943  );
944 
955 typedef
958  IN EFI_HANDLE ImageHandle,
959  IN UINTN MapKey
960  );
961 
971 typedef
973 (EFIAPI *EFI_STALL)(
974  IN UINTN Microseconds
975  );
976 
993 typedef
996  IN UINTN Timeout,
997  IN UINT64 WatchdogCode,
998  IN UINTN DataSize,
999  IN CHAR16 *WatchdogData OPTIONAL
1000  );
1001 
1017 typedef
1018 VOID
1020  IN EFI_RESET_TYPE ResetType,
1021  IN EFI_STATUS ResetStatus,
1022  IN UINTN DataSize,
1023  IN VOID *ResetData OPTIONAL
1024  );
1025 
1036 typedef
1037 EFI_STATUS
1039  OUT UINT64 *Count
1040  );
1041 
1052 typedef
1053 EFI_STATUS
1055  OUT UINT32 *HighCount
1056  );
1057 
1073 typedef
1074 EFI_STATUS
1076  IN VOID *Data,
1077  IN UINTN DataSize,
1078  OUT UINT32 *Crc32
1079  );
1080 
1089 typedef
1090 VOID
1091 (EFIAPI *EFI_COPY_MEM)(
1092  IN VOID *Destination,
1093  IN VOID *Source,
1094  IN UINTN Length
1095  );
1096 
1105 typedef
1106 VOID
1107 (EFIAPI *EFI_SET_MEM)(
1108  IN VOID *Buffer,
1109  IN UINTN Size,
1110  IN UINT8 Value
1111  );
1112 
1116 typedef enum {
1122 
1143 typedef
1144 EFI_STATUS
1146  IN OUT EFI_HANDLE *Handle,
1147  IN EFI_GUID *Protocol,
1148  IN EFI_INTERFACE_TYPE InterfaceType,
1149  IN VOID *Interface
1150  );
1151 
1168 typedef
1169 EFI_STATUS
1171  IN OUT EFI_HANDLE *Handle,
1172  ...
1173  );
1174 
1193 typedef
1194 EFI_STATUS
1196  IN EFI_HANDLE Handle,
1197  IN EFI_GUID *Protocol,
1198  IN VOID *OldInterface,
1199  IN VOID *NewInterface
1200  );
1201 
1219 typedef
1220 EFI_STATUS
1222  IN EFI_HANDLE Handle,
1223  IN EFI_GUID *Protocol,
1224  IN VOID *Interface
1225  );
1226 
1238 typedef
1239 EFI_STATUS
1241  IN EFI_HANDLE Handle,
1242  ...
1243  );
1244 
1260 typedef
1261 EFI_STATUS
1263  IN EFI_HANDLE Handle,
1264  IN EFI_GUID *Protocol,
1265  OUT VOID **Interface
1266  );
1267 
1268 #define EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL 0x00000001
1269 #define EFI_OPEN_PROTOCOL_GET_PROTOCOL 0x00000002
1270 #define EFI_OPEN_PROTOCOL_TEST_PROTOCOL 0x00000004
1271 #define EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER 0x00000008
1272 #define EFI_OPEN_PROTOCOL_BY_DRIVER 0x00000010
1273 #define EFI_OPEN_PROTOCOL_EXCLUSIVE 0x00000020
1274 
1302 typedef
1303 EFI_STATUS
1305  IN EFI_HANDLE Handle,
1306  IN EFI_GUID *Protocol,
1307  OUT VOID **Interface, OPTIONAL
1308  IN EFI_HANDLE AgentHandle,
1309  IN EFI_HANDLE ControllerHandle,
1310  IN UINT32 Attributes
1311  );
1312 
1313 
1335 typedef
1336 EFI_STATUS
1338  IN EFI_HANDLE Handle,
1339  IN EFI_GUID *Protocol,
1340  IN EFI_HANDLE AgentHandle,
1341  IN EFI_HANDLE ControllerHandle
1342  );
1343 
1347 typedef struct {
1348  EFI_HANDLE AgentHandle;
1349  EFI_HANDLE ControllerHandle;
1350  UINT32 Attributes;
1351  UINT32 OpenCount;
1353 
1369 typedef
1370 EFI_STATUS
1372  IN EFI_HANDLE Handle,
1373  IN EFI_GUID *Protocol,
1375  OUT UINTN *EntryCount
1376  );
1377 
1399 typedef
1400 EFI_STATUS
1402  IN EFI_HANDLE Handle,
1403  OUT EFI_GUID ***ProtocolBuffer,
1404  OUT UINTN *ProtocolBufferCount
1405  );
1406 
1422 typedef
1423 EFI_STATUS
1425  IN EFI_GUID *Protocol,
1426  IN EFI_EVENT Event,
1427  OUT VOID **Registration
1428  );
1429 
1433 typedef enum {
1448 
1471 typedef
1472 EFI_STATUS
1474  IN EFI_LOCATE_SEARCH_TYPE SearchType,
1475  IN EFI_GUID *Protocol, OPTIONAL
1476  IN VOID *SearchKey, OPTIONAL
1477  IN OUT UINTN *BufferSize,
1478  OUT EFI_HANDLE *Buffer
1479  );
1480 
1497 typedef
1498 EFI_STATUS
1500  IN EFI_GUID *Protocol,
1501  IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath,
1502  OUT EFI_HANDLE *Device
1503  );
1504 
1518 typedef
1519 EFI_STATUS
1521  IN EFI_GUID *Guid,
1522  IN VOID *Table
1523  );
1524 
1544 typedef
1545 EFI_STATUS
1547  IN EFI_LOCATE_SEARCH_TYPE SearchType,
1548  IN EFI_GUID *Protocol, OPTIONAL
1549  IN VOID *SearchKey, OPTIONAL
1550  IN OUT UINTN *NoHandles,
1551  OUT EFI_HANDLE **Buffer
1552  );
1553 
1570 typedef
1571 EFI_STATUS
1573  IN EFI_GUID *Protocol,
1574  IN VOID *Registration, OPTIONAL
1575  OUT VOID **Interface
1576  );
1577 
1581 typedef struct {
1585  UINT64 Length;
1586  union {
1591  EFI_PHYSICAL_ADDRESS DataBlock;
1598  EFI_PHYSICAL_ADDRESS ContinuationPointer;
1599  } Union;
1601 
1605 typedef struct {
1609  EFI_GUID CapsuleGuid;
1615  UINT32 HeaderSize;
1621  UINT32 Flags;
1625  UINT32 CapsuleImageSize;
1627 
1633 typedef struct {
1641  VOID* CapsulePtr[1];
1643 
1644 #define CAPSULE_FLAGS_PERSIST_ACROSS_RESET 0x00010000
1645 #define CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE 0x00020000
1646 #define CAPSULE_FLAGS_INITIATE_RESET 0x00040000
1647 
1678 typedef
1679 EFI_STATUS
1681  IN EFI_CAPSULE_HEADER **CapsuleHeaderArray,
1682  IN UINTN CapsuleCount,
1683  IN EFI_PHYSICAL_ADDRESS ScatterGatherList OPTIONAL
1684  );
1685 
1709 typedef
1710 EFI_STATUS
1712  IN EFI_CAPSULE_HEADER **CapsuleHeaderArray,
1713  IN UINTN CapsuleCount,
1714  OUT UINT64 *MaximumCapsuleSize,
1715  OUT EFI_RESET_TYPE *ResetType
1716  );
1717 
1740 typedef
1741 EFI_STATUS
1743  IN UINT32 Attributes,
1744  OUT UINT64 *MaximumVariableStorageSize,
1745  OUT UINT64 *RemainingVariableStorageSize,
1746  OUT UINT64 *MaximumVariableSize
1747  );
1748 
1749 //
1750 // Firmware should stop at a firmware user interface on next boot
1751 //
1752 #define EFI_OS_INDICATIONS_BOOT_TO_FW_UI 0x0000000000000001
1753 #define EFI_OS_INDICATIONS_TIMESTAMP_REVOCATION 0x0000000000000002
1754 #define EFI_OS_INDICATIONS_FILE_CAPSULE_DELIVERY_SUPPORTED 0x0000000000000004
1755 #define EFI_OS_INDICATIONS_FMP_CAPSULE_SUPPORTED 0x0000000000000008
1756 #define EFI_OS_INDICATIONS_CAPSULE_RESULT_VAR_SUPPORTED 0x0000000000000010
1757 #define EFI_OS_INDICATIONS_START_PLATFORM_RECOVERY 0x0000000000000040
1758 
1759 //
1760 // EFI Runtime Services Table
1761 //
1762 #define EFI_SYSTEM_TABLE_SIGNATURE SIGNATURE_64 ('I','B','I',' ','S','Y','S','T')
1763 #define EFI_2_60_SYSTEM_TABLE_REVISION ((2 << 16) | (60))
1764 #define EFI_2_50_SYSTEM_TABLE_REVISION ((2 << 16) | (50))
1765 #define EFI_2_40_SYSTEM_TABLE_REVISION ((2 << 16) | (40))
1766 #define EFI_2_31_SYSTEM_TABLE_REVISION ((2 << 16) | (31))
1767 #define EFI_2_30_SYSTEM_TABLE_REVISION ((2 << 16) | (30))
1768 #define EFI_2_20_SYSTEM_TABLE_REVISION ((2 << 16) | (20))
1769 #define EFI_2_10_SYSTEM_TABLE_REVISION ((2 << 16) | (10))
1770 #define EFI_2_00_SYSTEM_TABLE_REVISION ((2 << 16) | (00))
1771 #define EFI_1_10_SYSTEM_TABLE_REVISION ((1 << 16) | (10))
1772 #define EFI_1_02_SYSTEM_TABLE_REVISION ((1 << 16) | (02))
1773 #define EFI_SYSTEM_TABLE_REVISION EFI_2_60_SYSTEM_TABLE_REVISION
1774 #define EFI_SPECIFICATION_VERSION EFI_SYSTEM_TABLE_REVISION
1775 
1776 #define EFI_RUNTIME_SERVICES_SIGNATURE SIGNATURE_64 ('R','U','N','T','S','E','R','V')
1777 #define EFI_RUNTIME_SERVICES_REVISION EFI_SPECIFICATION_VERSION
1778 
1782 typedef struct {
1786  EFI_TABLE_HEADER Hdr;
1787 
1788  //
1789  // Time Services
1790  //
1791  EFI_GET_TIME GetTime;
1792  EFI_SET_TIME SetTime;
1793  EFI_GET_WAKEUP_TIME GetWakeupTime;
1794  EFI_SET_WAKEUP_TIME SetWakeupTime;
1795 
1796  //
1797  // Virtual Memory Services
1798  //
1799  EFI_SET_VIRTUAL_ADDRESS_MAP SetVirtualAddressMap;
1800  EFI_CONVERT_POINTER ConvertPointer;
1801 
1802  //
1803  // Variable Services
1804  //
1805  EFI_GET_VARIABLE GetVariable;
1806  EFI_GET_NEXT_VARIABLE_NAME GetNextVariableName;
1807  EFI_SET_VARIABLE SetVariable;
1808 
1809  //
1810  // Miscellaneous Services
1811  //
1812  EFI_GET_NEXT_HIGH_MONO_COUNT GetNextHighMonotonicCount;
1813  EFI_RESET_SYSTEM ResetSystem;
1814 
1815  //
1816  // UEFI 2.0 Capsule Services
1817  //
1818  EFI_UPDATE_CAPSULE UpdateCapsule;
1819  EFI_QUERY_CAPSULE_CAPABILITIES QueryCapsuleCapabilities;
1820 
1821  //
1822  // Miscellaneous UEFI 2.0 Service
1823  //
1824  EFI_QUERY_VARIABLE_INFO QueryVariableInfo;
1826 
1827 
1828 #define EFI_BOOT_SERVICES_SIGNATURE SIGNATURE_64 ('B','O','O','T','S','E','R','V')
1829 #define EFI_BOOT_SERVICES_REVISION EFI_SPECIFICATION_VERSION
1830 
1834 typedef struct {
1838  EFI_TABLE_HEADER Hdr;
1839 
1840  //
1841  // Task Priority Services
1842  //
1843  EFI_RAISE_TPL RaiseTPL;
1844  EFI_RESTORE_TPL RestoreTPL;
1845 
1846  //
1847  // Memory Services
1848  //
1849  EFI_ALLOCATE_PAGES AllocatePages;
1850  EFI_FREE_PAGES FreePages;
1851  EFI_GET_MEMORY_MAP GetMemoryMap;
1852  EFI_ALLOCATE_POOL AllocatePool;
1853  EFI_FREE_POOL FreePool;
1854 
1855  //
1856  // Event & Timer Services
1857  //
1858  EFI_CREATE_EVENT CreateEvent;
1859  EFI_SET_TIMER SetTimer;
1860  EFI_WAIT_FOR_EVENT WaitForEvent;
1861  EFI_SIGNAL_EVENT SignalEvent;
1862  EFI_CLOSE_EVENT CloseEvent;
1863  EFI_CHECK_EVENT CheckEvent;
1864 
1865  //
1866  // Protocol Handler Services
1867  //
1868  EFI_INSTALL_PROTOCOL_INTERFACE InstallProtocolInterface;
1869  EFI_REINSTALL_PROTOCOL_INTERFACE ReinstallProtocolInterface;
1870  EFI_UNINSTALL_PROTOCOL_INTERFACE UninstallProtocolInterface;
1871  EFI_HANDLE_PROTOCOL HandleProtocol;
1872  VOID *Reserved;
1873  EFI_REGISTER_PROTOCOL_NOTIFY RegisterProtocolNotify;
1874  EFI_LOCATE_HANDLE LocateHandle;
1875  EFI_LOCATE_DEVICE_PATH LocateDevicePath;
1876  EFI_INSTALL_CONFIGURATION_TABLE InstallConfigurationTable;
1877 
1878  //
1879  // Image Services
1880  //
1881  EFI_IMAGE_LOAD LoadImage;
1882  EFI_IMAGE_START StartImage;
1883  EFI_EXIT Exit;
1884  EFI_IMAGE_UNLOAD UnloadImage;
1885  EFI_EXIT_BOOT_SERVICES ExitBootServices;
1886 
1887  //
1888  // Miscellaneous Services
1889  //
1890  EFI_GET_NEXT_MONOTONIC_COUNT GetNextMonotonicCount;
1891  EFI_STALL Stall;
1892  EFI_SET_WATCHDOG_TIMER SetWatchdogTimer;
1893 
1894  //
1895  // DriverSupport Services
1896  //
1897  EFI_CONNECT_CONTROLLER ConnectController;
1898  EFI_DISCONNECT_CONTROLLER DisconnectController;
1899 
1900  //
1901  // Open and Close Protocol Services
1902  //
1903  EFI_OPEN_PROTOCOL OpenProtocol;
1904  EFI_CLOSE_PROTOCOL CloseProtocol;
1905  EFI_OPEN_PROTOCOL_INFORMATION OpenProtocolInformation;
1906 
1907  //
1908  // Library Services
1909  //
1910  EFI_PROTOCOLS_PER_HANDLE ProtocolsPerHandle;
1911  EFI_LOCATE_HANDLE_BUFFER LocateHandleBuffer;
1912  EFI_LOCATE_PROTOCOL LocateProtocol;
1913  EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES InstallMultipleProtocolInterfaces;
1914  EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES UninstallMultipleProtocolInterfaces;
1915 
1916  //
1917  // 32-bit CRC Services
1918  //
1919  EFI_CALCULATE_CRC32 CalculateCrc32;
1920 
1921  //
1922  // Miscellaneous Services
1923  //
1924  EFI_COPY_MEM CopyMem;
1925  EFI_SET_MEM SetMem;
1926  EFI_CREATE_EVENT_EX CreateEventEx;
1928 
1933 typedef struct {
1937  EFI_GUID VendorGuid;
1941  VOID *VendorTable;
1943 
1947 typedef struct {
1966  EFI_HANDLE ConsoleInHandle;
1971  EFI_SIMPLE_TEXT_INPUT_PROTOCOL *ConIn;
1975  EFI_HANDLE ConsoleOutHandle;
1980  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *ConOut;
1990  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *StdErr;
2009 
2021 typedef
2022 EFI_STATUS
2024  IN EFI_HANDLE ImageHandle,
2025  IN EFI_SYSTEM_TABLE *SystemTable
2026  );
2027 
2028 //
2029 // EFI Load Option. This data structure describes format of UEFI boot option variables.
2030 //
2031 // NOTE: EFI Load Option is a byte packed buffer of variable length fields.
2032 // The first two fields have fixed length. They are declared as members of the
2033 // EFI_LOAD_OPTION structure. All the other fields are variable length fields.
2034 // They are listed in the comment block below for reference purposes.
2035 //
2036 #pragma pack(1)
2037 typedef struct _EFI_LOAD_OPTION {
2042  UINT32 Attributes;
2053  // CHAR16 Description[];
2065  // EFI_DEVICE_PATH_PROTOCOL FilePathList[];
2073  // UINT8 OptionalData[];
2074 } EFI_LOAD_OPTION;
2075 #pragma pack()
2076 
2077 //
2078 // EFI Load Options Attributes
2079 //
2080 #define LOAD_OPTION_ACTIVE 0x00000001
2081 #define LOAD_OPTION_FORCE_RECONNECT 0x00000002
2082 #define LOAD_OPTION_HIDDEN 0x00000008
2083 #define LOAD_OPTION_CATEGORY 0x00001F00
2084 
2085 #define LOAD_OPTION_CATEGORY_BOOT 0x00000000
2086 #define LOAD_OPTION_CATEGORY_APP 0x00000100
2087 
2088 #define EFI_BOOT_OPTION_SUPPORT_KEY 0x00000001
2089 #define EFI_BOOT_OPTION_SUPPORT_APP 0x00000002
2090 #define EFI_BOOT_OPTION_SUPPORT_SYSPREP 0x00000010
2091 #define EFI_BOOT_OPTION_SUPPORT_COUNT 0x00000300
2092 
2096 typedef union {
2097  struct {
2101  UINT32 Revision : 8;
2105  UINT32 ShiftPressed : 1;
2109  UINT32 ControlPressed : 1;
2113  UINT32 AltPressed : 1;
2117  UINT32 LogoPressed : 1;
2121  UINT32 MenuPressed : 1;
2125  UINT32 SysReqPressed : 1;
2126  UINT32 Reserved : 16;
2132  UINT32 InputKeyCount : 2;
2133  } Options;
2134  UINT32 PackedValue;
2136 
2140 #pragma pack(1)
2141 typedef struct {
2156  UINT16 BootOption;
2162  //EFI_INPUT_KEY Keys[];
2163 } EFI_KEY_OPTION;
2164 #pragma pack()
2165 
2166 //
2167 // EFI File location to boot from on removable media devices
2168 //
2169 #define EFI_REMOVABLE_MEDIA_FILE_NAME_IA32 L"\\EFI\\BOOT\\BOOTIA32.EFI"
2170 #define EFI_REMOVABLE_MEDIA_FILE_NAME_IA64 L"\\EFI\\BOOT\\BOOTIA64.EFI"
2171 #define EFI_REMOVABLE_MEDIA_FILE_NAME_X64 L"\\EFI\\BOOT\\BOOTX64.EFI"
2172 #define EFI_REMOVABLE_MEDIA_FILE_NAME_ARM L"\\EFI\\BOOT\\BOOTARM.EFI"
2173 #define EFI_REMOVABLE_MEDIA_FILE_NAME_AARCH64 L"\\EFI\\BOOT\\BOOTAA64.EFI"
2174 
2175 #if defined (MDE_CPU_IA32)
2176  #define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_IA32
2177 #elif defined (MDE_CPU_IPF)
2178  #define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_IA64
2179 #elif defined (MDE_CPU_X64)
2180  #define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_X64
2181 #elif defined (MDE_CPU_EBC)
2182 #elif defined (MDE_CPU_ARM)
2183  #define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_ARM
2184 #elif defined (MDE_CPU_AARCH64)
2185  #define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_AARCH64
2186 #else
2187  #error Unknown Processor Type
2188 #endif
2189 
2190 #include <Uefi/UefiPxe.h>
2191 #include <Uefi/UefiGpt.h>
2193 
2194 #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:467
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL * StdErr
Definition: UefiSpec.h:1990
EFI_STATUS(EFIAPI * EFI_SIGNAL_EVENT)(IN EFI_EVENT Event)
Definition: UefiSpec.h:528
UINT32 BootOptionCrc
Definition: UefiSpec.h:2151
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:1304
EFI_HANDLE ConsoleInHandle
Definition: UefiSpec.h:1966
EFI_STATUS(EFIAPI * EFI_WAIT_FOR_EVENT)(IN UINTN NumberOfEvents, IN EFI_EVENT *Event, OUT UINTN *Index)
Definition: UefiSpec.h:548
UINT32 SysReqPressed
Definition: UefiSpec.h:2125
EFI_CONFIGURATION_TABLE * ConfigurationTable
Definition: UefiSpec.h:2007
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:720
EFI_STATUS(EFIAPI * EFI_REGISTER_PROTOCOL_NOTIFY)(IN EFI_GUID *Protocol, IN EFI_EVENT Event, OUT VOID **Registration)
Definition: UefiSpec.h:1424
EFI_PHYSICAL_ADDRESS DataBlock
Definition: UefiSpec.h:1591
EFI_TPL(EFIAPI * EFI_RAISE_TPL)(IN EFI_TPL NewTpl)
Definition: UefiSpec.h:604
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:315
EFI_STATUS(EFIAPI * EFI_CLOSE_EVENT)(IN EFI_EVENT Event)
Definition: UefiSpec.h:564
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:1145
UINT32 FirmwareRevision
Definition: UefiSpec.h:1961
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:157
EFI_STATUS(EFIAPI * EFI_IMAGE_START)(IN EFI_HANDLE ImageHandle, OUT UINTN *ExitDataSize, OUT CHAR16 **ExitData OPTIONAL)
Definition: UefiSpec.h:895
EFI_ALLOCATE_TYPE
Definition: UefiSpec.h:32
UINT16 FilePathListLength
Definition: UefiSpec.h:2048
EFI_STATUS(EFIAPI * EFI_QUERY_VARIABLE_INFO)(IN UINT32 Attributes, OUT UINT64 *MaximumVariableStorageSize, OUT UINT64 *RemainingVariableStorageSize, OUT UINT64 *MaximumVariableSize)
Definition: UefiSpec.h:1742
EFI_STATUS(EFIAPI * EFI_CHECK_EVENT)(IN EFI_EVENT Event)
Definition: UefiSpec.h:580
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:1546
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:1473
EFI_STATUS(EFIAPI * EFI_SET_TIMER)(IN EFI_EVENT Event, IN EFI_TIMER_DELAY Type, IN UINT64 TriggerTime)
Definition: UefiSpec.h:512
EFI_STATUS(EFIAPI * EFI_IMAGE_ENTRY_POINT)(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
Definition: UefiSpec.h:2023
EFI_STATUS(EFIAPI * EFI_SET_WAKEUP_TIME)(IN BOOLEAN Enable, IN EFI_TIME *Time OPTIONAL)
Definition: UefiSpec.h:833
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:1091
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:438
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:1971
VOID *EFIAPI AllocatePool(IN UINTN AllocationSize)
EFI_STATUS(EFIAPI * EFI_FREE_POOL)(IN VOID *Buffer)
Definition: UefiSpec.h:256
UINT16 BootOption
Definition: UefiSpec.h:2156
EFI_STATUS(EFIAPI * EFI_INSTALL_CONFIGURATION_TABLE)(IN EFI_GUID *Guid, IN VOID *Table)
Definition: UefiSpec.h:1520
EFI_HANDLE StandardErrorHandle
Definition: UefiSpec.h:1985
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:870
#define OUT
Definition: Base.h:332
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL * ConOut
Definition: UefiSpec.h:1980
EFI_STATUS(EFIAPI * EFI_HANDLE_PROTOCOL)(IN EFI_HANDLE Handle, IN EFI_GUID *Protocol, OUT VOID **Interface)
Definition: UefiSpec.h:1262
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:1711
EFI_STATUS(EFIAPI * EFI_EXIT)(IN EFI_HANDLE ImageHandle, IN EFI_STATUS ExitStatus, IN UINTN ExitDataSize, IN CHAR16 *ExitData OPTIONAL)
Definition: UefiSpec.h:923
EFI_STATUS(EFIAPI * EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES)(IN EFI_HANDLE Handle,...)
Definition: UefiSpec.h:1240
EFI_STATUS EFIAPI GetTime(OUT EFI_TIME *Time, OUT EFI_TIME_CAPABILITIES *Capabilities)
Definition: RealTimeClock.c:44
EFI_TIMER_DELAY
Definition: UefiSpec.h:479
EFI_STATUS(EFIAPI * EFI_CALCULATE_CRC32)(IN VOID *Data, IN UINTN DataSize, OUT UINT32 *Crc32)
Definition: UefiSpec.h:1075
EFI_STATUS(EFIAPI * EFI_GET_NEXT_MONOTONIC_COUNT)(OUT UINT64 *Count)
Definition: UefiSpec.h:1038
EFI_STATUS(EFIAPI * EFI_GET_NEXT_VARIABLE_NAME)(IN OUT UINTN *VariableNameSize, IN OUT CHAR16 *VariableName, IN OUT EFI_GUID *VendorGuid)
Definition: UefiSpec.h:676
EFI_PHYSICAL_ADDRESS ContinuationPointer
Definition: UefiSpec.h:1598
UINT32 ShiftPressed
Definition: UefiSpec.h:2105
UINT32 LogoPressed
Definition: UefiSpec.h:2117
EFI_STATUS LocateProtocol(IN EFI_GUID *ProtocolGuid, OUT VOID **Interface)
Definition: IpSecConfig.c:474
EFI_BOOT_SERVICES * BootServices
Definition: UefiSpec.h:1998
EFI_STATUS(EFIAPI * EFI_EXIT_BOOT_SERVICES)(IN EFI_HANDLE ImageHandle, IN UINTN MapKey)
Definition: UefiSpec.h:957
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:1572
UINT32 MenuPressed
Definition: UefiSpec.h:2121
EFI_STATUS(EFIAPI * EFI_SET_WATCHDOG_TIMER)(IN UINTN Timeout, IN UINT64 WatchdogCode, IN UINTN DataSize, IN CHAR16 *WatchdogData OPTIONAL)
Definition: UefiSpec.h:995
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:1371
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:646
EFI_RUNTIME_SERVICES * RuntimeServices
Definition: UefiSpec.h:1994
EFI_STATUS(EFIAPI * EFI_UPDATE_CAPSULE)(IN EFI_CAPSULE_HEADER **CapsuleHeaderArray, IN UINTN CapsuleCount, IN EFI_PHYSICAL_ADDRESS ScatterGatherList OPTIONAL)
Definition: UefiSpec.h:1680
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:348
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:1401
UINTN NumberOfTableEntries
Definition: UefiSpec.h:2002
#define OPTIONAL
Definition: Base.h:338
EFI_TABLE_HEADER Hdr
Definition: UefiSpec.h:1951
UINT32 ControlPressed
Definition: UefiSpec.h:2109
EFI_STATUS(EFIAPI * EFI_IMAGE_UNLOAD)(IN EFI_HANDLE ImageHandle)
Definition: UefiSpec.h:941
VOID(EFIAPI * EFI_SET_MEM)(IN VOID *Buffer, IN UINTN Size, IN UINT8 Value)
Definition: UefiSpec.h:1107
UINTN EFI_TPL
Definition: UefiBaseType.h:45
EFI_STATUS(EFIAPI * EFI_SET_TIME)(IN EFI_TIME *Time)
Definition: UefiSpec.h:790
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:210
VOID EFIAPI ResetSystem(IN EFI_RESET_TYPE ResetType, IN EFI_STATUS ResetStatus, IN UINTN DataSize, IN VOID *ResetData OPTIONAL)
Definition: ResetSystem.c:101
#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:1019
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:1337
EFI_INTERFACE_TYPE
Definition: UefiSpec.h:1116
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:1499
EFI_LOCATE_SEARCH_TYPE
Definition: UefiSpec.h:1433
#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:773
EFI_HANDLE ConsoleOutHandle
Definition: UefiSpec.h:1975
#define IN
Definition: Base.h:327
VOID *EFIAPI CopyMem(OUT VOID *DestinationBuffer, IN CONST VOID *SourceBuffer, IN UINTN Length)
UINT32 Attributes
Definition: UefiSpec.h:2042
EFI_STATUS(EFIAPI * EFI_UNINSTALL_PROTOCOL_INTERFACE)(IN EFI_HANDLE Handle, IN EFI_GUID *Protocol, IN VOID *Interface)
Definition: UefiSpec.h:1221
EFI_STATUS(EFIAPI * EFI_FREE_PAGES)(IN EFI_PHYSICAL_ADDRESS Memory, IN UINTN Pages)
Definition: UefiSpec.h:178
EFI_STATUS(EFIAPI * EFI_STALL)(IN UINTN Microseconds)
Definition: UefiSpec.h:973
EFI_STATUS(EFIAPI * EFI_CONVERT_POINTER)(IN UINTN DebugDisposition, IN OUT VOID **Address)
Definition: UefiSpec.h:378
EFI_STATUS(EFIAPI * EFI_ALLOCATE_POOL)(IN EFI_MEMORY_TYPE PoolType, IN UINTN Size, OUT VOID **Buffer)
Definition: UefiSpec.h:239
EFI_STATUS(EFIAPI * EFI_GET_NEXT_HIGH_MONO_COUNT)(OUT UINT32 *HighCount)
Definition: UefiSpec.h:1054
UINT32 CapsuleArrayNumber
Definition: UefiSpec.h:1637
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:1195
EFI_BOOT_KEY_DATA KeyData
Definition: UefiSpec.h:2145
UINT32 InputKeyCount
Definition: UefiSpec.h:2132
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:281
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:616
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:811
RETURN_STATUS EFI_STATUS
Definition: UefiBaseType.h:33
CHAR16 * FirmwareVendor
Definition: UefiSpec.h:1956
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:1170
VOID(EFIAPI * EFI_EVENT_NOTIFY)(IN EFI_EVENT Event, IN VOID *Context)
Definition: UefiSpec.h:415