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 
729 typedef
732  IN CHAR16 *VariableName,
733  IN EFI_GUID *VendorGuid,
734  IN UINT32 Attributes,
735  IN UINTN DataSize,
736  IN VOID *Data
737  );
738 
739 
744 typedef struct {
751  UINT32 Resolution;
758  UINT32 Accuracy;
766  BOOLEAN SetsToZero;
768 
782 typedef
784 (EFIAPI *EFI_GET_TIME)(
785  OUT EFI_TIME *Time,
786  OUT EFI_TIME_CAPABILITIES *Capabilities OPTIONAL
787  );
788 
799 typedef
801 (EFIAPI *EFI_SET_TIME)(
802  IN EFI_TIME *Time
803  );
804 
820 typedef
823  OUT BOOLEAN *Enabled,
824  OUT BOOLEAN *Pending,
825  OUT EFI_TIME *Time
826  );
827 
842 typedef
845  IN BOOLEAN Enable,
846  IN EFI_TIME *Time OPTIONAL
847  );
848 
879 typedef
881 (EFIAPI *EFI_IMAGE_LOAD)(
882  IN BOOLEAN BootPolicy,
883  IN EFI_HANDLE ParentImageHandle,
884  IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
885  IN VOID *SourceBuffer OPTIONAL,
886  IN UINTN SourceSize,
887  OUT EFI_HANDLE *ImageHandle
888  );
889 
904 typedef
906 (EFIAPI *EFI_IMAGE_START)(
907  IN EFI_HANDLE ImageHandle,
908  OUT UINTN *ExitDataSize,
909  OUT CHAR16 **ExitData OPTIONAL
910  );
911 
932 typedef
934 (EFIAPI *EFI_EXIT)(
935  IN EFI_HANDLE ImageHandle,
936  IN EFI_STATUS ExitStatus,
937  IN UINTN ExitDataSize,
938  IN CHAR16 *ExitData OPTIONAL
939  );
940 
950 typedef
953  IN EFI_HANDLE ImageHandle
954  );
955 
966 typedef
969  IN EFI_HANDLE ImageHandle,
970  IN UINTN MapKey
971  );
972 
982 typedef
984 (EFIAPI *EFI_STALL)(
985  IN UINTN Microseconds
986  );
987 
1004 typedef
1005 EFI_STATUS
1007  IN UINTN Timeout,
1008  IN UINT64 WatchdogCode,
1009  IN UINTN DataSize,
1010  IN CHAR16 *WatchdogData OPTIONAL
1011  );
1012 
1031 typedef
1032 VOID
1034  IN EFI_RESET_TYPE ResetType,
1035  IN EFI_STATUS ResetStatus,
1036  IN UINTN DataSize,
1037  IN VOID *ResetData OPTIONAL
1038  );
1039 
1050 typedef
1051 EFI_STATUS
1053  OUT UINT64 *Count
1054  );
1055 
1066 typedef
1067 EFI_STATUS
1069  OUT UINT32 *HighCount
1070  );
1071 
1087 typedef
1088 EFI_STATUS
1090  IN VOID *Data,
1091  IN UINTN DataSize,
1092  OUT UINT32 *Crc32
1093  );
1094 
1103 typedef
1104 VOID
1105 (EFIAPI *EFI_COPY_MEM)(
1106  IN VOID *Destination,
1107  IN VOID *Source,
1108  IN UINTN Length
1109  );
1110 
1119 typedef
1120 VOID
1121 (EFIAPI *EFI_SET_MEM)(
1122  IN VOID *Buffer,
1123  IN UINTN Size,
1124  IN UINT8 Value
1125  );
1126 
1130 typedef enum {
1136 
1157 typedef
1158 EFI_STATUS
1160  IN OUT EFI_HANDLE *Handle,
1161  IN EFI_GUID *Protocol,
1162  IN EFI_INTERFACE_TYPE InterfaceType,
1163  IN VOID *Interface
1164  );
1165 
1182 typedef
1183 EFI_STATUS
1185  IN OUT EFI_HANDLE *Handle,
1186  ...
1187  );
1188 
1207 typedef
1208 EFI_STATUS
1210  IN EFI_HANDLE Handle,
1211  IN EFI_GUID *Protocol,
1212  IN VOID *OldInterface,
1213  IN VOID *NewInterface
1214  );
1215 
1233 typedef
1234 EFI_STATUS
1236  IN EFI_HANDLE Handle,
1237  IN EFI_GUID *Protocol,
1238  IN VOID *Interface
1239  );
1240 
1252 typedef
1253 EFI_STATUS
1255  IN EFI_HANDLE Handle,
1256  ...
1257  );
1258 
1274 typedef
1275 EFI_STATUS
1277  IN EFI_HANDLE Handle,
1278  IN EFI_GUID *Protocol,
1279  OUT VOID **Interface
1280  );
1281 
1282 #define EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL 0x00000001
1283 #define EFI_OPEN_PROTOCOL_GET_PROTOCOL 0x00000002
1284 #define EFI_OPEN_PROTOCOL_TEST_PROTOCOL 0x00000004
1285 #define EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER 0x00000008
1286 #define EFI_OPEN_PROTOCOL_BY_DRIVER 0x00000010
1287 #define EFI_OPEN_PROTOCOL_EXCLUSIVE 0x00000020
1288 
1316 typedef
1317 EFI_STATUS
1319  IN EFI_HANDLE Handle,
1320  IN EFI_GUID *Protocol,
1321  OUT VOID **Interface, OPTIONAL
1322  IN EFI_HANDLE AgentHandle,
1323  IN EFI_HANDLE ControllerHandle,
1324  IN UINT32 Attributes
1325  );
1326 
1327 
1349 typedef
1350 EFI_STATUS
1352  IN EFI_HANDLE Handle,
1353  IN EFI_GUID *Protocol,
1354  IN EFI_HANDLE AgentHandle,
1355  IN EFI_HANDLE ControllerHandle
1356  );
1357 
1361 typedef struct {
1362  EFI_HANDLE AgentHandle;
1363  EFI_HANDLE ControllerHandle;
1364  UINT32 Attributes;
1365  UINT32 OpenCount;
1367 
1383 typedef
1384 EFI_STATUS
1386  IN EFI_HANDLE Handle,
1387  IN EFI_GUID *Protocol,
1389  OUT UINTN *EntryCount
1390  );
1391 
1413 typedef
1414 EFI_STATUS
1416  IN EFI_HANDLE Handle,
1417  OUT EFI_GUID ***ProtocolBuffer,
1418  OUT UINTN *ProtocolBufferCount
1419  );
1420 
1436 typedef
1437 EFI_STATUS
1439  IN EFI_GUID *Protocol,
1440  IN EFI_EVENT Event,
1441  OUT VOID **Registration
1442  );
1443 
1447 typedef enum {
1462 
1485 typedef
1486 EFI_STATUS
1488  IN EFI_LOCATE_SEARCH_TYPE SearchType,
1489  IN EFI_GUID *Protocol, OPTIONAL
1490  IN VOID *SearchKey, OPTIONAL
1491  IN OUT UINTN *BufferSize,
1492  OUT EFI_HANDLE *Buffer
1493  );
1494 
1511 typedef
1512 EFI_STATUS
1514  IN EFI_GUID *Protocol,
1515  IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath,
1516  OUT EFI_HANDLE *Device
1517  );
1518 
1532 typedef
1533 EFI_STATUS
1535  IN EFI_GUID *Guid,
1536  IN VOID *Table
1537  );
1538 
1558 typedef
1559 EFI_STATUS
1561  IN EFI_LOCATE_SEARCH_TYPE SearchType,
1562  IN EFI_GUID *Protocol, OPTIONAL
1563  IN VOID *SearchKey, OPTIONAL
1564  IN OUT UINTN *NoHandles,
1565  OUT EFI_HANDLE **Buffer
1566  );
1567 
1585 typedef
1586 EFI_STATUS
1588  IN EFI_GUID *Protocol,
1589  IN VOID *Registration, OPTIONAL
1590  OUT VOID **Interface
1591  );
1592 
1596 typedef struct {
1600  UINT64 Length;
1601  union {
1606  EFI_PHYSICAL_ADDRESS DataBlock;
1613  EFI_PHYSICAL_ADDRESS ContinuationPointer;
1614  } Union;
1616 
1620 typedef struct {
1624  EFI_GUID CapsuleGuid;
1630  UINT32 HeaderSize;
1636  UINT32 Flags;
1640  UINT32 CapsuleImageSize;
1642 
1648 typedef struct {
1656  VOID* CapsulePtr[1];
1658 
1659 #define CAPSULE_FLAGS_PERSIST_ACROSS_RESET 0x00010000
1660 #define CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE 0x00020000
1661 #define CAPSULE_FLAGS_INITIATE_RESET 0x00040000
1662 
1693 typedef
1694 EFI_STATUS
1696  IN EFI_CAPSULE_HEADER **CapsuleHeaderArray,
1697  IN UINTN CapsuleCount,
1698  IN EFI_PHYSICAL_ADDRESS ScatterGatherList OPTIONAL
1699  );
1700 
1724 typedef
1725 EFI_STATUS
1727  IN EFI_CAPSULE_HEADER **CapsuleHeaderArray,
1728  IN UINTN CapsuleCount,
1729  OUT UINT64 *MaximumCapsuleSize,
1730  OUT EFI_RESET_TYPE *ResetType
1731  );
1732 
1755 typedef
1756 EFI_STATUS
1758  IN UINT32 Attributes,
1759  OUT UINT64 *MaximumVariableStorageSize,
1760  OUT UINT64 *RemainingVariableStorageSize,
1761  OUT UINT64 *MaximumVariableSize
1762  );
1763 
1764 //
1765 // Firmware should stop at a firmware user interface on next boot
1766 //
1767 #define EFI_OS_INDICATIONS_BOOT_TO_FW_UI 0x0000000000000001
1768 #define EFI_OS_INDICATIONS_TIMESTAMP_REVOCATION 0x0000000000000002
1769 #define EFI_OS_INDICATIONS_FILE_CAPSULE_DELIVERY_SUPPORTED 0x0000000000000004
1770 #define EFI_OS_INDICATIONS_FMP_CAPSULE_SUPPORTED 0x0000000000000008
1771 #define EFI_OS_INDICATIONS_CAPSULE_RESULT_VAR_SUPPORTED 0x0000000000000010
1772 #define EFI_OS_INDICATIONS_START_PLATFORM_RECOVERY 0x0000000000000040
1773 
1774 //
1775 // EFI Runtime Services Table
1776 //
1777 #define EFI_SYSTEM_TABLE_SIGNATURE SIGNATURE_64 ('I','B','I',' ','S','Y','S','T')
1778 #define EFI_2_60_SYSTEM_TABLE_REVISION ((2 << 16) | (60))
1779 #define EFI_2_50_SYSTEM_TABLE_REVISION ((2 << 16) | (50))
1780 #define EFI_2_40_SYSTEM_TABLE_REVISION ((2 << 16) | (40))
1781 #define EFI_2_31_SYSTEM_TABLE_REVISION ((2 << 16) | (31))
1782 #define EFI_2_30_SYSTEM_TABLE_REVISION ((2 << 16) | (30))
1783 #define EFI_2_20_SYSTEM_TABLE_REVISION ((2 << 16) | (20))
1784 #define EFI_2_10_SYSTEM_TABLE_REVISION ((2 << 16) | (10))
1785 #define EFI_2_00_SYSTEM_TABLE_REVISION ((2 << 16) | (00))
1786 #define EFI_1_10_SYSTEM_TABLE_REVISION ((1 << 16) | (10))
1787 #define EFI_1_02_SYSTEM_TABLE_REVISION ((1 << 16) | (02))
1788 #define EFI_SYSTEM_TABLE_REVISION EFI_2_60_SYSTEM_TABLE_REVISION
1789 #define EFI_SPECIFICATION_VERSION EFI_SYSTEM_TABLE_REVISION
1790 
1791 #define EFI_RUNTIME_SERVICES_SIGNATURE SIGNATURE_64 ('R','U','N','T','S','E','R','V')
1792 #define EFI_RUNTIME_SERVICES_REVISION EFI_SPECIFICATION_VERSION
1793 
1797 typedef struct {
1801  EFI_TABLE_HEADER Hdr;
1802 
1803  //
1804  // Time Services
1805  //
1806  EFI_GET_TIME GetTime;
1807  EFI_SET_TIME SetTime;
1808  EFI_GET_WAKEUP_TIME GetWakeupTime;
1809  EFI_SET_WAKEUP_TIME SetWakeupTime;
1810 
1811  //
1812  // Virtual Memory Services
1813  //
1814  EFI_SET_VIRTUAL_ADDRESS_MAP SetVirtualAddressMap;
1815  EFI_CONVERT_POINTER ConvertPointer;
1816 
1817  //
1818  // Variable Services
1819  //
1820  EFI_GET_VARIABLE GetVariable;
1821  EFI_GET_NEXT_VARIABLE_NAME GetNextVariableName;
1822  EFI_SET_VARIABLE SetVariable;
1823 
1824  //
1825  // Miscellaneous Services
1826  //
1827  EFI_GET_NEXT_HIGH_MONO_COUNT GetNextHighMonotonicCount;
1828  EFI_RESET_SYSTEM ResetSystem;
1829 
1830  //
1831  // UEFI 2.0 Capsule Services
1832  //
1833  EFI_UPDATE_CAPSULE UpdateCapsule;
1834  EFI_QUERY_CAPSULE_CAPABILITIES QueryCapsuleCapabilities;
1835 
1836  //
1837  // Miscellaneous UEFI 2.0 Service
1838  //
1839  EFI_QUERY_VARIABLE_INFO QueryVariableInfo;
1841 
1842 
1843 #define EFI_BOOT_SERVICES_SIGNATURE SIGNATURE_64 ('B','O','O','T','S','E','R','V')
1844 #define EFI_BOOT_SERVICES_REVISION EFI_SPECIFICATION_VERSION
1845 
1849 typedef struct {
1853  EFI_TABLE_HEADER Hdr;
1854 
1855  //
1856  // Task Priority Services
1857  //
1858  EFI_RAISE_TPL RaiseTPL;
1859  EFI_RESTORE_TPL RestoreTPL;
1860 
1861  //
1862  // Memory Services
1863  //
1864  EFI_ALLOCATE_PAGES AllocatePages;
1865  EFI_FREE_PAGES FreePages;
1866  EFI_GET_MEMORY_MAP GetMemoryMap;
1867  EFI_ALLOCATE_POOL AllocatePool;
1868  EFI_FREE_POOL FreePool;
1869 
1870  //
1871  // Event & Timer Services
1872  //
1873  EFI_CREATE_EVENT CreateEvent;
1874  EFI_SET_TIMER SetTimer;
1875  EFI_WAIT_FOR_EVENT WaitForEvent;
1876  EFI_SIGNAL_EVENT SignalEvent;
1877  EFI_CLOSE_EVENT CloseEvent;
1878  EFI_CHECK_EVENT CheckEvent;
1879 
1880  //
1881  // Protocol Handler Services
1882  //
1883  EFI_INSTALL_PROTOCOL_INTERFACE InstallProtocolInterface;
1884  EFI_REINSTALL_PROTOCOL_INTERFACE ReinstallProtocolInterface;
1885  EFI_UNINSTALL_PROTOCOL_INTERFACE UninstallProtocolInterface;
1886  EFI_HANDLE_PROTOCOL HandleProtocol;
1887  VOID *Reserved;
1888  EFI_REGISTER_PROTOCOL_NOTIFY RegisterProtocolNotify;
1889  EFI_LOCATE_HANDLE LocateHandle;
1890  EFI_LOCATE_DEVICE_PATH LocateDevicePath;
1891  EFI_INSTALL_CONFIGURATION_TABLE InstallConfigurationTable;
1892 
1893  //
1894  // Image Services
1895  //
1896  EFI_IMAGE_LOAD LoadImage;
1897  EFI_IMAGE_START StartImage;
1898  EFI_EXIT Exit;
1899  EFI_IMAGE_UNLOAD UnloadImage;
1900  EFI_EXIT_BOOT_SERVICES ExitBootServices;
1901 
1902  //
1903  // Miscellaneous Services
1904  //
1905  EFI_GET_NEXT_MONOTONIC_COUNT GetNextMonotonicCount;
1906  EFI_STALL Stall;
1907  EFI_SET_WATCHDOG_TIMER SetWatchdogTimer;
1908 
1909  //
1910  // DriverSupport Services
1911  //
1912  EFI_CONNECT_CONTROLLER ConnectController;
1913  EFI_DISCONNECT_CONTROLLER DisconnectController;
1914 
1915  //
1916  // Open and Close Protocol Services
1917  //
1918  EFI_OPEN_PROTOCOL OpenProtocol;
1919  EFI_CLOSE_PROTOCOL CloseProtocol;
1920  EFI_OPEN_PROTOCOL_INFORMATION OpenProtocolInformation;
1921 
1922  //
1923  // Library Services
1924  //
1925  EFI_PROTOCOLS_PER_HANDLE ProtocolsPerHandle;
1926  EFI_LOCATE_HANDLE_BUFFER LocateHandleBuffer;
1927  EFI_LOCATE_PROTOCOL LocateProtocol;
1928  EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES InstallMultipleProtocolInterfaces;
1929  EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES UninstallMultipleProtocolInterfaces;
1930 
1931  //
1932  // 32-bit CRC Services
1933  //
1934  EFI_CALCULATE_CRC32 CalculateCrc32;
1935 
1936  //
1937  // Miscellaneous Services
1938  //
1939  EFI_COPY_MEM CopyMem;
1940  EFI_SET_MEM SetMem;
1941  EFI_CREATE_EVENT_EX CreateEventEx;
1943 
1948 typedef struct {
1952  EFI_GUID VendorGuid;
1956  VOID *VendorTable;
1958 
1962 typedef struct {
1981  EFI_HANDLE ConsoleInHandle;
1986  EFI_SIMPLE_TEXT_INPUT_PROTOCOL *ConIn;
1990  EFI_HANDLE ConsoleOutHandle;
1995  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *ConOut;
2005  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *StdErr;
2024 
2036 typedef
2037 EFI_STATUS
2039  IN EFI_HANDLE ImageHandle,
2040  IN EFI_SYSTEM_TABLE *SystemTable
2041  );
2042 
2043 //
2044 // EFI Load Option. This data structure describes format of UEFI boot option variables.
2045 //
2046 // NOTE: EFI Load Option is a byte packed buffer of variable length fields.
2047 // The first two fields have fixed length. They are declared as members of the
2048 // EFI_LOAD_OPTION structure. All the other fields are variable length fields.
2049 // They are listed in the comment block below for reference purposes.
2050 //
2051 #pragma pack(1)
2052 typedef struct _EFI_LOAD_OPTION {
2057  UINT32 Attributes;
2068  // CHAR16 Description[];
2080  // EFI_DEVICE_PATH_PROTOCOL FilePathList[];
2088  // UINT8 OptionalData[];
2089 } EFI_LOAD_OPTION;
2090 #pragma pack()
2091 
2092 //
2093 // EFI Load Options Attributes
2094 //
2095 #define LOAD_OPTION_ACTIVE 0x00000001
2096 #define LOAD_OPTION_FORCE_RECONNECT 0x00000002
2097 #define LOAD_OPTION_HIDDEN 0x00000008
2098 #define LOAD_OPTION_CATEGORY 0x00001F00
2099 
2100 #define LOAD_OPTION_CATEGORY_BOOT 0x00000000
2101 #define LOAD_OPTION_CATEGORY_APP 0x00000100
2102 
2103 #define EFI_BOOT_OPTION_SUPPORT_KEY 0x00000001
2104 #define EFI_BOOT_OPTION_SUPPORT_APP 0x00000002
2105 #define EFI_BOOT_OPTION_SUPPORT_SYSPREP 0x00000010
2106 #define EFI_BOOT_OPTION_SUPPORT_COUNT 0x00000300
2107 
2111 typedef union {
2112  struct {
2116  UINT32 Revision : 8;
2120  UINT32 ShiftPressed : 1;
2124  UINT32 ControlPressed : 1;
2128  UINT32 AltPressed : 1;
2132  UINT32 LogoPressed : 1;
2136  UINT32 MenuPressed : 1;
2140  UINT32 SysReqPressed : 1;
2141  UINT32 Reserved : 16;
2147  UINT32 InputKeyCount : 2;
2148  } Options;
2149  UINT32 PackedValue;
2151 
2155 #pragma pack(1)
2156 typedef struct {
2171  UINT16 BootOption;
2177  //EFI_INPUT_KEY Keys[];
2178 } EFI_KEY_OPTION;
2179 #pragma pack()
2180 
2181 //
2182 // EFI File location to boot from on removable media devices
2183 //
2184 #define EFI_REMOVABLE_MEDIA_FILE_NAME_IA32 L"\\EFI\\BOOT\\BOOTIA32.EFI"
2185 #define EFI_REMOVABLE_MEDIA_FILE_NAME_IA64 L"\\EFI\\BOOT\\BOOTIA64.EFI"
2186 #define EFI_REMOVABLE_MEDIA_FILE_NAME_X64 L"\\EFI\\BOOT\\BOOTX64.EFI"
2187 #define EFI_REMOVABLE_MEDIA_FILE_NAME_ARM L"\\EFI\\BOOT\\BOOTARM.EFI"
2188 #define EFI_REMOVABLE_MEDIA_FILE_NAME_AARCH64 L"\\EFI\\BOOT\\BOOTAA64.EFI"
2189 
2190 #if defined (MDE_CPU_IA32)
2191  #define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_IA32
2192 #elif defined (MDE_CPU_IPF)
2193  #define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_IA64
2194 #elif defined (MDE_CPU_X64)
2195  #define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_X64
2196 #elif defined (MDE_CPU_EBC)
2197 #elif defined (MDE_CPU_ARM)
2198  #define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_ARM
2199 #elif defined (MDE_CPU_AARCH64)
2200  #define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_AARCH64
2201 #else
2202  #error Unknown Processor Type
2203 #endif
2204 
2205 #include <Uefi/UefiPxe.h>
2206 #include <Uefi/UefiGpt.h>
2208 
2209 #endif
EFI_STATUS EFIAPI GetWakeupTime(OUT BOOLEAN *Enabled, OUT BOOLEAN *Pending, OUT EFI_TIME *Time)
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:2005
EFI_STATUS(EFIAPI * EFI_SIGNAL_EVENT)(IN EFI_EVENT Event)
Definition: UefiSpec.h:535
UINT32 BootOptionCrc
Definition: UefiSpec.h:2166
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:1318
EFI_HANDLE ConsoleInHandle
Definition: UefiSpec.h:1981
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:2140
EFI_CONFIGURATION_TABLE * ConfigurationTable
Definition: UefiSpec.h:2022
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:731
EFI_STATUS(EFIAPI * EFI_REGISTER_PROTOCOL_NOTIFY)(IN EFI_GUID *Protocol, IN EFI_EVENT Event, OUT VOID **Registration)
Definition: UefiSpec.h:1438
EFI_PHYSICAL_ADDRESS DataBlock
Definition: UefiSpec.h:1606
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:1159
UINT32 FirmwareRevision
Definition: UefiSpec.h:1976
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:906
EFI_ALLOCATE_TYPE
Definition: UefiSpec.h:32
UINT16 FilePathListLength
Definition: UefiSpec.h:2063
EFI_STATUS(EFIAPI * EFI_QUERY_VARIABLE_INFO)(IN UINT32 Attributes, OUT UINT64 *MaximumVariableStorageSize, OUT UINT64 *RemainingVariableStorageSize, OUT UINT64 *MaximumVariableSize)
Definition: UefiSpec.h:1757
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:1560
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:1487
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:2038
EFI_STATUS(EFIAPI * EFI_SET_WAKEUP_TIME)(IN BOOLEAN Enable, IN EFI_TIME *Time OPTIONAL)
Definition: UefiSpec.h:844
EFI_STATUS EFIAPI SetTime(IN EFI_TIME *Time)
VOID(EFIAPI * EFI_COPY_MEM)(IN VOID *Destination, IN VOID *Source, IN UINTN Length)
Definition: UefiSpec.h:1105
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:1986
VOID *EFIAPI AllocatePool(IN UINTN AllocationSize)
EFI_STATUS(EFIAPI * EFI_FREE_POOL)(IN VOID *Buffer)
Definition: UefiSpec.h:263
UINT16 BootOption
Definition: UefiSpec.h:2171
EFI_STATUS(EFIAPI * EFI_INSTALL_CONFIGURATION_TABLE)(IN EFI_GUID *Guid, IN VOID *Table)
Definition: UefiSpec.h:1534
EFI_HANDLE StandardErrorHandle
Definition: UefiSpec.h:2000
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:881
#define OUT
Definition: Base.h:332
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL * ConOut
Definition: UefiSpec.h:1995
EFI_STATUS(EFIAPI * EFI_HANDLE_PROTOCOL)(IN EFI_HANDLE Handle, IN EFI_GUID *Protocol, OUT VOID **Interface)
Definition: UefiSpec.h:1276
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:1726
EFI_STATUS(EFIAPI * EFI_EXIT)(IN EFI_HANDLE ImageHandle, IN EFI_STATUS ExitStatus, IN UINTN ExitDataSize, IN CHAR16 *ExitData OPTIONAL)
Definition: UefiSpec.h:934
EFI_STATUS(EFIAPI * EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES)(IN EFI_HANDLE Handle,...)
Definition: UefiSpec.h:1254
EFI_STATUS EFIAPI GetTime(OUT EFI_TIME *Time, OUT EFI_TIME_CAPABILITIES *Capabilities)
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:1089
EFI_STATUS(EFIAPI * EFI_GET_NEXT_MONOTONIC_COUNT)(OUT UINT64 *Count)
Definition: UefiSpec.h:1052
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:1613
UINT32 ShiftPressed
Definition: UefiSpec.h:2120
UINT32 LogoPressed
Definition: UefiSpec.h:2132
EFI_STATUS LocateProtocol(IN EFI_GUID *ProtocolGuid, OUT VOID **Interface)
Definition: IpSecConfig.c:474
EFI_BOOT_SERVICES * BootServices
Definition: UefiSpec.h:2013
EFI_STATUS(EFIAPI * EFI_EXIT_BOOT_SERVICES)(IN EFI_HANDLE ImageHandle, IN UINTN MapKey)
Definition: UefiSpec.h:968
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:1587
UINT32 MenuPressed
Definition: UefiSpec.h:2136
EFI_STATUS(EFIAPI * EFI_SET_WATCHDOG_TIMER)(IN UINTN Timeout, IN UINT64 WatchdogCode, IN UINTN DataSize, IN CHAR16 *WatchdogData OPTIONAL)
Definition: UefiSpec.h:1006
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:1385
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:2009
EFI_STATUS(EFIAPI * EFI_UPDATE_CAPSULE)(IN EFI_CAPSULE_HEADER **CapsuleHeaderArray, IN UINTN CapsuleCount, IN EFI_PHYSICAL_ADDRESS ScatterGatherList OPTIONAL)
Definition: UefiSpec.h:1695
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:1415
UINTN NumberOfTableEntries
Definition: UefiSpec.h:2017
#define OPTIONAL
Definition: Base.h:338
EFI_TABLE_HEADER Hdr
Definition: UefiSpec.h:1966
UINT32 ControlPressed
Definition: UefiSpec.h:2124
EFI_STATUS(EFIAPI * EFI_IMAGE_UNLOAD)(IN EFI_HANDLE ImageHandle)
Definition: UefiSpec.h:952
VOID(EFIAPI * EFI_SET_MEM)(IN VOID *Buffer, IN UINTN Size, IN UINT8 Value)
Definition: UefiSpec.h:1121
UINTN EFI_TPL
Definition: UefiBaseType.h:45
EFI_STATUS(EFIAPI * EFI_SET_TIME)(IN EFI_TIME *Time)
Definition: UefiSpec.h:801
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:1033
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:1351
EFI_INTERFACE_TYPE
Definition: UefiSpec.h:1130
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:1513
EFI_LOCATE_SEARCH_TYPE
Definition: UefiSpec.h:1447
#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:784
EFI_HANDLE ConsoleOutHandle
Definition: UefiSpec.h:1990
#define IN
Definition: Base.h:327
VOID *EFIAPI CopyMem(OUT VOID *DestinationBuffer, IN CONST VOID *SourceBuffer, IN UINTN Length)
UINT32 Attributes
Definition: UefiSpec.h:2057
EFI_STATUS(EFIAPI * EFI_UNINSTALL_PROTOCOL_INTERFACE)(IN EFI_HANDLE Handle, IN EFI_GUID *Protocol, IN VOID *Interface)
Definition: UefiSpec.h:1235
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:984
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:1068
UINT32 CapsuleArrayNumber
Definition: UefiSpec.h:1652
VOID EFIAPI Exit(IN EFI_STATUS Status)
UINT32 EFIAPI CalculateCrc32(IN VOID *Buffer, IN UINTN Length)
Definition: CheckSum.c:611
EFI_STATUS(EFIAPI * EFI_REINSTALL_PROTOCOL_INTERFACE)(IN EFI_HANDLE Handle, IN EFI_GUID *Protocol, IN VOID *OldInterface, IN VOID *NewInterface)
Definition: UefiSpec.h:1209
EFI_BOOT_KEY_DATA KeyData
Definition: UefiSpec.h:2160
UINT32 InputKeyCount
Definition: UefiSpec.h:2147
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:822
RETURN_STATUS EFI_STATUS
Definition: UefiBaseType.h:33
CHAR16 * FirmwareVendor
Definition: UefiSpec.h:1971
VOID EFIAPI NotifyFunction(IN EFI_EVENT Event, IN VOID *Context)
Definition: ScsiBus.c:1493
EFI_STATUS(EFIAPI * EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES)(IN OUT EFI_HANDLE *Handle,...)
Definition: UefiSpec.h:1184
VOID(EFIAPI * EFI_EVENT_NOTIFY)(IN EFI_EVENT Event, IN VOID *Context)
Definition: UefiSpec.h:422