TianoCore EDK2 master
Loading...
Searching...
No Matches
UefiSpec.h
Go to the documentation of this file.
1
16#ifndef __UEFI_SPEC_H__
17#define __UEFI_SPEC_H__
18
19#include <Uefi/UefiMultiPhase.h>
20
21#include <Protocol/DevicePath.h>
25
29typedef enum {
48
49//
50// Bit definitions for EFI_TIME.Daylight
51//
52#define EFI_TIME_ADJUST_DAYLIGHT 0x01
53#define EFI_TIME_IN_DAYLIGHT 0x02
54
58#define EFI_UNSPECIFIED_TIMEZONE 0x07FF
59
60//
61// Memory cacheability attributes
62//
63#define EFI_MEMORY_UC 0x0000000000000001ULL
64#define EFI_MEMORY_WC 0x0000000000000002ULL
65#define EFI_MEMORY_WT 0x0000000000000004ULL
66#define EFI_MEMORY_WB 0x0000000000000008ULL
67#define EFI_MEMORY_UCE 0x0000000000000010ULL
68//
69// Physical memory protection attributes
70//
71// Note: UEFI spec 2.5 and following: use EFI_MEMORY_RO as write-protected physical memory
72// protection attribute. Also, EFI_MEMORY_WP means cacheability attribute.
73//
74#define EFI_MEMORY_WP 0x0000000000001000ULL
75#define EFI_MEMORY_RP 0x0000000000002000ULL
76#define EFI_MEMORY_XP 0x0000000000004000ULL
77#define EFI_MEMORY_RO 0x0000000000020000ULL
78//
79// Physical memory persistence attribute.
80// The memory region supports byte-addressable non-volatility.
81//
82#define EFI_MEMORY_NV 0x0000000000008000ULL
83//
84// The memory region provides higher reliability relative to other memory in the system.
85// If all memory has the same reliability, then this bit is not used.
86//
87#define EFI_MEMORY_MORE_RELIABLE 0x0000000000010000ULL
88
89//
90// Note: UEFI spec 2.8 and following:
91//
92// Specific-purpose memory (SPM). The memory is earmarked for
93// specific purposes such as for specific device drivers or applications.
94// The SPM attribute serves as a hint to the OS to avoid allocating this
95// memory for core OS data or code that can not be relocated.
96//
97#define EFI_MEMORY_SP 0x0000000000040000ULL
98//
99// If this flag is set, the memory region is capable of being
100// protected with the CPU's memory cryptographic
101// capabilities. If this flag is clear, the memory region is not
102// capable of being protected with the CPU's memory
103// cryptographic capabilities or the CPU does not support CPU
104// memory cryptographic capabilities.
105//
106#define EFI_MEMORY_CPU_CRYPTO 0x0000000000080000ULL
107
108//
109// Runtime memory attribute
110//
111#define EFI_MEMORY_RUNTIME 0x8000000000000000ULL
112
113//
114// If this flag is set, the memory region is
115// described with additional ISA-specific memory attributes
116// as specified in EFI_MEMORY_ISA_MASK.
117//
118#define EFI_MEMORY_ISA_VALID 0x4000000000000000ULL
119
120//
121// Defines the bits reserved for describing optional ISA-specific cacheability
122// attributes that are not covered by the standard UEFI Memory Attributes cacheability
123// bits (EFI_MEMORY_UC, EFI_MEMORY_WC, EFI_MEMORY_WT, EFI_MEMORY_WB and EFI_MEMORY_UCE).
124// See Calling Conventions for further ISA-specific enumeration of these bits.
125//
126#define EFI_MEMORY_ISA_MASK 0x0FFFF00000000000ULL
127
128//
129// Attributes bitmasks, grouped by type
130//
131#define EFI_CACHE_ATTRIBUTE_MASK (EFI_MEMORY_UC | EFI_MEMORY_WC | EFI_MEMORY_WT | EFI_MEMORY_WB | EFI_MEMORY_UCE | EFI_MEMORY_WP)
132#define EFI_MEMORY_ACCESS_MASK (EFI_MEMORY_RP | EFI_MEMORY_XP | EFI_MEMORY_RO)
133#define EFI_MEMORY_ATTRIBUTE_MASK (EFI_MEMORY_ACCESS_MASK | EFI_MEMORY_SP | EFI_MEMORY_CPU_CRYPTO)
134
138#define EFI_MEMORY_DESCRIPTOR_VERSION 1
139
143typedef struct {
149 UINT32 Type;
174 UINT64 Attribute;
176
201typedef
203(EFIAPI *EFI_ALLOCATE_PAGES)(
205 IN EFI_MEMORY_TYPE MemoryType,
206 IN UINTN Pages,
208 );
209
222typedef
224(EFIAPI *EFI_FREE_PAGES)(
226 IN UINTN Pages
227 );
228
254typedef
256(EFIAPI *EFI_GET_MEMORY_MAP)(
257 IN OUT UINTN *MemoryMapSize,
258 OUT EFI_MEMORY_DESCRIPTOR *MemoryMap,
259 OUT UINTN *MapKey,
260 OUT UINTN *DescriptorSize,
261 OUT UINT32 *DescriptorVersion
262 );
263
283typedef
285(EFIAPI *EFI_ALLOCATE_POOL)(
286 IN EFI_MEMORY_TYPE PoolType,
287 IN UINTN Size,
288 OUT VOID **Buffer
289 );
290
300typedef
302(EFIAPI *EFI_FREE_POOL)(
303 IN VOID *Buffer
304 );
305
328typedef
331 IN UINTN MemoryMapSize,
332 IN UINTN DescriptorSize,
333 IN UINT32 DescriptorVersion,
334 IN EFI_MEMORY_DESCRIPTOR *VirtualMap
335 );
336
362typedef
364(EFIAPI *EFI_CONNECT_CONTROLLER)(
365 IN EFI_HANDLE ControllerHandle,
366 IN EFI_HANDLE *DriverImageHandle OPTIONAL,
367 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL,
368 IN BOOLEAN Recursive
369 );
370
395typedef
398 IN EFI_HANDLE ControllerHandle,
399 IN EFI_HANDLE DriverImageHandle OPTIONAL,
400 IN EFI_HANDLE ChildHandle OPTIONAL
401 );
402
403//
404// ConvertPointer DebugDisposition type.
405//
406#define EFI_OPTIONAL_PTR 0x00000001
407
426typedef
428(EFIAPI *EFI_CONVERT_POINTER)(
429 IN UINTN DebugDisposition,
430 IN OUT VOID **Address
431 );
432
433//
434// These types can be ORed together as needed - for example,
435// EVT_TIMER might be Ored with EVT_NOTIFY_WAIT or
436// EVT_NOTIFY_SIGNAL.
437//
438#define EVT_TIMER 0x80000000
439#define EVT_RUNTIME 0x40000000
440#define EVT_NOTIFY_WAIT 0x00000100
441#define EVT_NOTIFY_SIGNAL 0x00000200
442
443#define EVT_SIGNAL_EXIT_BOOT_SERVICES 0x00000201
444#define EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE 0x60000202
445
446//
447// The event's NotifyContext pointer points to a runtime memory
448// address.
449// The event is deprecated in UEFI2.0 and later specifications.
450//
451#define EVT_RUNTIME_CONTEXT 0x20000000
452
461typedef
462VOID
463(EFIAPI *EFI_EVENT_NOTIFY)(
464 IN EFI_EVENT Event,
465 IN VOID *Context
466 );
467
484typedef
486(EFIAPI *EFI_CREATE_EVENT)(
487 IN UINT32 Type,
488 IN EFI_TPL NotifyTpl,
490 IN VOID *NotifyContext OPTIONAL,
491 OUT EFI_EVENT *Event
492 );
493
513typedef
515(EFIAPI *EFI_CREATE_EVENT_EX)(
516 IN UINT32 Type,
517 IN EFI_TPL NotifyTpl,
519 IN CONST VOID *NotifyContext OPTIONAL,
520 IN CONST EFI_GUID *EventGroup OPTIONAL,
521 OUT EFI_EVENT *Event
522 );
523
527typedef enum {
541
558typedef
560(EFIAPI *EFI_SET_TIMER)(
561 IN EFI_EVENT Event,
562 IN EFI_TIMER_DELAY Type,
563 IN UINT64 TriggerTime
564 );
565
574typedef
576(EFIAPI *EFI_SIGNAL_EVENT)(
577 IN EFI_EVENT Event
578 );
579
594typedef
596(EFIAPI *EFI_WAIT_FOR_EVENT)(
597 IN UINTN NumberOfEvents,
598 IN EFI_EVENT *Event,
599 OUT UINTN *Index
600 );
601
610typedef
612(EFIAPI *EFI_CLOSE_EVENT)(
613 IN EFI_EVENT Event
614 );
615
626typedef
628(EFIAPI *EFI_CHECK_EVENT)(
629 IN EFI_EVENT Event
630 );
631
632//
633// Task priority level
634//
635#define TPL_APPLICATION 4
636#define TPL_CALLBACK 8
637#define TPL_NOTIFY 16
638#define TPL_HIGH_LEVEL 31
639
648typedef
650(EFIAPI *EFI_RAISE_TPL)(
651 IN EFI_TPL NewTpl
652 );
653
660typedef
661VOID
662(EFIAPI *EFI_RESTORE_TPL)(
663 IN EFI_TPL OldTpl
664 );
665
694typedef
696(EFIAPI *EFI_GET_VARIABLE)(
697 IN CHAR16 *VariableName,
698 IN EFI_GUID *VendorGuid,
699 OUT UINT32 *Attributes OPTIONAL,
700 IN OUT UINTN *DataSize,
701 OUT VOID *Data OPTIONAL
702 );
703
734typedef
737 IN OUT UINTN *VariableNameSize,
738 IN OUT CHAR16 *VariableName,
739 IN OUT EFI_GUID *VendorGuid
740 );
741
779typedef
781(EFIAPI *EFI_SET_VARIABLE)(
782 IN CHAR16 *VariableName,
783 IN EFI_GUID *VendorGuid,
784 IN UINT32 Attributes,
785 IN UINTN DataSize,
786 IN VOID *Data
787 );
788
793typedef struct {
807 UINT32 Accuracy;
815 BOOLEAN SetsToZero;
817
834typedef
836(EFIAPI *EFI_GET_TIME)(
837 OUT EFI_TIME *Time,
839 );
840
854typedef
856(EFIAPI *EFI_SET_TIME)(
857 IN EFI_TIME *Time
858 );
859
877typedef
879(EFIAPI *EFI_GET_WAKEUP_TIME)(
880 OUT BOOLEAN *Enabled,
881 OUT BOOLEAN *Pending,
882 OUT EFI_TIME *Time
883 );
884
901typedef
903(EFIAPI *EFI_SET_WAKEUP_TIME)(
904 IN BOOLEAN Enable,
905 IN EFI_TIME *Time OPTIONAL
906 );
907
938typedef
940(EFIAPI *EFI_IMAGE_LOAD)(
941 IN BOOLEAN BootPolicy,
942 IN EFI_HANDLE ParentImageHandle,
944 IN VOID *SourceBuffer OPTIONAL,
945 IN UINTN SourceSize,
946 OUT EFI_HANDLE *ImageHandle
947 );
948
963typedef
965(EFIAPI *EFI_IMAGE_START)(
966 IN EFI_HANDLE ImageHandle,
967 OUT UINTN *ExitDataSize,
968 OUT CHAR16 **ExitData OPTIONAL
969 );
970
991typedef
993(EFIAPI *EFI_EXIT)(
994 IN EFI_HANDLE ImageHandle,
995 IN EFI_STATUS ExitStatus,
996 IN UINTN ExitDataSize,
997 IN CHAR16 *ExitData OPTIONAL
998 );
999
1009typedef
1011(EFIAPI *EFI_IMAGE_UNLOAD)(
1012 IN EFI_HANDLE ImageHandle
1013 );
1014
1025typedef
1027(EFIAPI *EFI_EXIT_BOOT_SERVICES)(
1028 IN EFI_HANDLE ImageHandle,
1029 IN UINTN MapKey
1030 );
1031
1041typedef
1043(EFIAPI *EFI_STALL)(
1044 IN UINTN Microseconds
1045 );
1046
1063typedef
1065(EFIAPI *EFI_SET_WATCHDOG_TIMER)(
1066 IN UINTN Timeout,
1067 IN UINT64 WatchdogCode,
1068 IN UINTN DataSize,
1069 IN CHAR16 *WatchdogData OPTIONAL
1070 );
1071
1087typedef
1088VOID
1089(EFIAPI *EFI_RESET_SYSTEM)(
1090 IN EFI_RESET_TYPE ResetType,
1091 IN EFI_STATUS ResetStatus,
1092 IN UINTN DataSize,
1093 IN VOID *ResetData OPTIONAL
1094 );
1095
1106typedef
1109 OUT UINT64 *Count
1110 );
1111
1125typedef
1128 OUT UINT32 *HighCount
1129 );
1130
1146typedef
1148(EFIAPI *EFI_CALCULATE_CRC32)(
1149 IN VOID *Data,
1150 IN UINTN DataSize,
1151 OUT UINT32 *Crc32
1152 );
1153
1162typedef
1163VOID
1164(EFIAPI *EFI_COPY_MEM)(
1165 IN VOID *Destination,
1166 IN VOID *Source,
1167 IN UINTN Length
1168 );
1169
1178typedef
1179VOID
1180(EFIAPI *EFI_SET_MEM)(
1181 IN VOID *Buffer,
1182 IN UINTN Size,
1183 IN UINT8 Value
1184 );
1185
1189typedef enum {
1195
1216typedef
1219 IN OUT EFI_HANDLE *Handle,
1220 IN EFI_GUID *Protocol,
1221 IN EFI_INTERFACE_TYPE InterfaceType,
1222 IN VOID *Interface
1223 );
1224
1241typedef
1244 IN OUT EFI_HANDLE *Handle,
1245 ...
1246 );
1247
1266typedef
1269 IN EFI_HANDLE Handle,
1270 IN EFI_GUID *Protocol,
1271 IN VOID *OldInterface,
1272 IN VOID *NewInterface
1273 );
1274
1292typedef
1295 IN EFI_HANDLE Handle,
1296 IN EFI_GUID *Protocol,
1297 IN VOID *Interface
1298 );
1299
1311typedef
1314 IN EFI_HANDLE Handle,
1315 ...
1316 );
1317
1333typedef
1335(EFIAPI *EFI_HANDLE_PROTOCOL)(
1336 IN EFI_HANDLE Handle,
1337 IN EFI_GUID *Protocol,
1338 OUT VOID **Interface
1339 );
1340
1341#define EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL 0x00000001
1342#define EFI_OPEN_PROTOCOL_GET_PROTOCOL 0x00000002
1343#define EFI_OPEN_PROTOCOL_TEST_PROTOCOL 0x00000004
1344#define EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER 0x00000008
1345#define EFI_OPEN_PROTOCOL_BY_DRIVER 0x00000010
1346#define EFI_OPEN_PROTOCOL_EXCLUSIVE 0x00000020
1347
1375typedef
1377(EFIAPI *EFI_OPEN_PROTOCOL)(
1378 IN EFI_HANDLE Handle,
1379 IN EFI_GUID *Protocol,
1380 OUT VOID **Interface OPTIONAL,
1381 IN EFI_HANDLE AgentHandle,
1382 IN EFI_HANDLE ControllerHandle,
1383 IN UINT32 Attributes
1384 );
1385
1407typedef
1409(EFIAPI *EFI_CLOSE_PROTOCOL)(
1410 IN EFI_HANDLE Handle,
1411 IN EFI_GUID *Protocol,
1412 IN EFI_HANDLE AgentHandle,
1413 IN EFI_HANDLE ControllerHandle
1414 );
1415
1419typedef struct {
1420 EFI_HANDLE AgentHandle;
1421 EFI_HANDLE ControllerHandle;
1422 UINT32 Attributes;
1423 UINT32 OpenCount;
1425
1441typedef
1444 IN EFI_HANDLE Handle,
1445 IN EFI_GUID *Protocol,
1447 OUT UINTN *EntryCount
1448 );
1449
1471typedef
1473(EFIAPI *EFI_PROTOCOLS_PER_HANDLE)(
1474 IN EFI_HANDLE Handle,
1475 OUT EFI_GUID ***ProtocolBuffer,
1476 OUT UINTN *ProtocolBufferCount
1477 );
1478
1494typedef
1497 IN EFI_GUID *Protocol,
1498 IN EFI_EVENT Event,
1499 OUT VOID **Registration
1500 );
1501
1505typedef enum {
1520
1543typedef
1545(EFIAPI *EFI_LOCATE_HANDLE)(
1546 IN EFI_LOCATE_SEARCH_TYPE SearchType,
1547 IN EFI_GUID *Protocol OPTIONAL,
1548 IN VOID *SearchKey OPTIONAL,
1549 IN OUT UINTN *BufferSize,
1550 OUT EFI_HANDLE *Buffer
1551 );
1552
1569typedef
1571(EFIAPI *EFI_LOCATE_DEVICE_PATH)(
1572 IN EFI_GUID *Protocol,
1573 IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath,
1574 OUT EFI_HANDLE *Device
1575 );
1576
1590typedef
1593 IN EFI_GUID *Guid,
1594 IN VOID *Table
1595 );
1596
1616typedef
1618(EFIAPI *EFI_LOCATE_HANDLE_BUFFER)(
1619 IN EFI_LOCATE_SEARCH_TYPE SearchType,
1620 IN EFI_GUID *Protocol OPTIONAL,
1621 IN VOID *SearchKey OPTIONAL,
1622 OUT UINTN *NoHandles,
1623 OUT EFI_HANDLE **Buffer
1624 );
1625
1643typedef
1645(EFIAPI *EFI_LOCATE_PROTOCOL)(
1646 IN EFI_GUID *Protocol,
1647 IN VOID *Registration OPTIONAL,
1648 OUT VOID **Interface
1649 );
1650
1654typedef struct {
1658 UINT64 Length;
1659 union {
1672 } Union;
1674
1678typedef struct {
1694 UINT32 Flags;
1700
1706typedef struct {
1714 VOID *CapsulePtr[1];
1716
1717#define CAPSULE_FLAGS_PERSIST_ACROSS_RESET 0x00010000
1718#define CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE 0x00020000
1719#define CAPSULE_FLAGS_INITIATE_RESET 0x00040000
1720
1754typedef
1756(EFIAPI *EFI_UPDATE_CAPSULE)(
1757 IN EFI_CAPSULE_HEADER **CapsuleHeaderArray,
1758 IN UINTN CapsuleCount,
1759 IN EFI_PHYSICAL_ADDRESS ScatterGatherList OPTIONAL
1760 );
1761
1788typedef
1791 IN EFI_CAPSULE_HEADER **CapsuleHeaderArray,
1792 IN UINTN CapsuleCount,
1793 OUT UINT64 *MaximumCapsuleSize,
1794 OUT EFI_RESET_TYPE *ResetType
1795 );
1796
1819typedef
1821(EFIAPI *EFI_QUERY_VARIABLE_INFO)(
1822 IN UINT32 Attributes,
1823 OUT UINT64 *MaximumVariableStorageSize,
1824 OUT UINT64 *RemainingVariableStorageSize,
1825 OUT UINT64 *MaximumVariableSize
1826 );
1827
1828//
1829// Firmware should stop at a firmware user interface on next boot
1830//
1831#define EFI_OS_INDICATIONS_BOOT_TO_FW_UI 0x0000000000000001
1832#define EFI_OS_INDICATIONS_TIMESTAMP_REVOCATION 0x0000000000000002
1833#define EFI_OS_INDICATIONS_FILE_CAPSULE_DELIVERY_SUPPORTED 0x0000000000000004
1834#define EFI_OS_INDICATIONS_FMP_CAPSULE_SUPPORTED 0x0000000000000008
1835#define EFI_OS_INDICATIONS_CAPSULE_RESULT_VAR_SUPPORTED 0x0000000000000010
1836#define EFI_OS_INDICATIONS_START_PLATFORM_RECOVERY 0x0000000000000040
1837#define EFI_OS_INDICATIONS_JSON_CONFIG_DATA_REFRESH 0x0000000000000080
1838
1839//
1840// EFI Runtime Services Table
1841//
1842#define EFI_SYSTEM_TABLE_SIGNATURE SIGNATURE_64 ('I','B','I',' ','S','Y','S','T')
1843#define EFI_2_80_SYSTEM_TABLE_REVISION ((2 << 16) | (80))
1844#define EFI_2_70_SYSTEM_TABLE_REVISION ((2 << 16) | (70))
1845#define EFI_2_60_SYSTEM_TABLE_REVISION ((2 << 16) | (60))
1846#define EFI_2_50_SYSTEM_TABLE_REVISION ((2 << 16) | (50))
1847#define EFI_2_40_SYSTEM_TABLE_REVISION ((2 << 16) | (40))
1848#define EFI_2_31_SYSTEM_TABLE_REVISION ((2 << 16) | (31))
1849#define EFI_2_30_SYSTEM_TABLE_REVISION ((2 << 16) | (30))
1850#define EFI_2_20_SYSTEM_TABLE_REVISION ((2 << 16) | (20))
1851#define EFI_2_10_SYSTEM_TABLE_REVISION ((2 << 16) | (10))
1852#define EFI_2_00_SYSTEM_TABLE_REVISION ((2 << 16) | (00))
1853#define EFI_1_10_SYSTEM_TABLE_REVISION ((1 << 16) | (10))
1854#define EFI_1_02_SYSTEM_TABLE_REVISION ((1 << 16) | (02))
1855#define EFI_SYSTEM_TABLE_REVISION EFI_2_70_SYSTEM_TABLE_REVISION
1856#define EFI_SPECIFICATION_VERSION EFI_SYSTEM_TABLE_REVISION
1857
1858#define EFI_RUNTIME_SERVICES_SIGNATURE SIGNATURE_64 ('R','U','N','T','S','E','R','V')
1859#define EFI_RUNTIME_SERVICES_REVISION EFI_SPECIFICATION_VERSION
1860
1864typedef struct {
1869
1870 //
1871 // Time Services
1872 //
1877
1878 //
1879 // Virtual Memory Services
1880 //
1881 EFI_SET_VIRTUAL_ADDRESS_MAP SetVirtualAddressMap;
1883
1884 //
1885 // Variable Services
1886 //
1887 EFI_GET_VARIABLE GetVariable;
1888 EFI_GET_NEXT_VARIABLE_NAME GetNextVariableName;
1889 EFI_SET_VARIABLE SetVariable;
1890
1891 //
1892 // Miscellaneous Services
1893 //
1894 EFI_GET_NEXT_HIGH_MONO_COUNT GetNextHighMonotonicCount;
1896
1897 //
1898 // UEFI 2.0 Capsule Services
1899 //
1901 EFI_QUERY_CAPSULE_CAPABILITIES QueryCapsuleCapabilities;
1902
1903 //
1904 // Miscellaneous UEFI 2.0 Service
1905 //
1906 EFI_QUERY_VARIABLE_INFO QueryVariableInfo;
1908
1909#define EFI_BOOT_SERVICES_SIGNATURE SIGNATURE_64 ('B','O','O','T','S','E','R','V')
1910#define EFI_BOOT_SERVICES_REVISION EFI_SPECIFICATION_VERSION
1911
1915typedef struct {
1920
1921 //
1922 // Task Priority Services
1923 //
1924 EFI_RAISE_TPL RaiseTPL;
1925 EFI_RESTORE_TPL RestoreTPL;
1926
1927 //
1928 // Memory Services
1929 //
1932 EFI_GET_MEMORY_MAP GetMemoryMap;
1935
1936 //
1937 // Event & Timer Services
1938 //
1939 EFI_CREATE_EVENT CreateEvent;
1940 EFI_SET_TIMER SetTimer;
1941 EFI_WAIT_FOR_EVENT WaitForEvent;
1942 EFI_SIGNAL_EVENT SignalEvent;
1943 EFI_CLOSE_EVENT CloseEvent;
1944 EFI_CHECK_EVENT CheckEvent;
1945
1946 //
1947 // Protocol Handler Services
1948 //
1949 EFI_INSTALL_PROTOCOL_INTERFACE InstallProtocolInterface;
1950 EFI_REINSTALL_PROTOCOL_INTERFACE ReinstallProtocolInterface;
1951 EFI_UNINSTALL_PROTOCOL_INTERFACE UninstallProtocolInterface;
1952 EFI_HANDLE_PROTOCOL HandleProtocol;
1953 VOID *Reserved;
1954 EFI_REGISTER_PROTOCOL_NOTIFY RegisterProtocolNotify;
1955 EFI_LOCATE_HANDLE LocateHandle;
1956 EFI_LOCATE_DEVICE_PATH LocateDevicePath;
1957 EFI_INSTALL_CONFIGURATION_TABLE InstallConfigurationTable;
1958
1959 //
1960 // Image Services
1961 //
1962 EFI_IMAGE_LOAD LoadImage;
1963 EFI_IMAGE_START StartImage;
1964 EFI_EXIT Exit;
1965 EFI_IMAGE_UNLOAD UnloadImage;
1966 EFI_EXIT_BOOT_SERVICES ExitBootServices;
1967
1968 //
1969 // Miscellaneous Services
1970 //
1971 EFI_GET_NEXT_MONOTONIC_COUNT GetNextMonotonicCount;
1972 EFI_STALL Stall;
1973 EFI_SET_WATCHDOG_TIMER SetWatchdogTimer;
1974
1975 //
1976 // DriverSupport Services
1977 //
1978 EFI_CONNECT_CONTROLLER ConnectController;
1979 EFI_DISCONNECT_CONTROLLER DisconnectController;
1980
1981 //
1982 // Open and Close Protocol Services
1983 //
1984 EFI_OPEN_PROTOCOL OpenProtocol;
1985 EFI_CLOSE_PROTOCOL CloseProtocol;
1986 EFI_OPEN_PROTOCOL_INFORMATION OpenProtocolInformation;
1987
1988 //
1989 // Library Services
1990 //
1991 EFI_PROTOCOLS_PER_HANDLE ProtocolsPerHandle;
1992 EFI_LOCATE_HANDLE_BUFFER LocateHandleBuffer;
1993 EFI_LOCATE_PROTOCOL LocateProtocol;
1994 EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES InstallMultipleProtocolInterfaces;
1995 EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES UninstallMultipleProtocolInterfaces;
1996
1997 //
1998 // 32-bit CRC Services
1999 //
2001
2002 //
2003 // Miscellaneous Services
2004 //
2007 EFI_CREATE_EVENT_EX CreateEventEx;
2009
2014typedef struct {
2024
2028typedef struct {
2094
2106typedef
2108(EFIAPI *EFI_IMAGE_ENTRY_POINT)(
2109 IN EFI_HANDLE ImageHandle,
2110 IN EFI_SYSTEM_TABLE *SystemTable
2111 );
2112
2113//
2114// EFI Load Option. This data structure describes format of UEFI boot option variables.
2115//
2116// NOTE: EFI Load Option is a byte packed buffer of variable length fields.
2117// The first two fields have fixed length. They are declared as members of the
2118// EFI_LOAD_OPTION structure. All the other fields are variable length fields.
2119// They are listed in the comment block below for reference purposes.
2120//
2121#pragma pack(1)
2122typedef struct _EFI_LOAD_OPTION {
2138 // CHAR16 Description[];
2150 // EFI_DEVICE_PATH_PROTOCOL FilePathList[];
2158 // UINT8 OptionalData[];
2160#pragma pack()
2161
2162//
2163// EFI Load Options Attributes
2164//
2165#define LOAD_OPTION_ACTIVE 0x00000001
2166#define LOAD_OPTION_FORCE_RECONNECT 0x00000002
2167#define LOAD_OPTION_HIDDEN 0x00000008
2168#define LOAD_OPTION_CATEGORY 0x00001F00
2169
2170#define LOAD_OPTION_CATEGORY_BOOT 0x00000000
2171#define LOAD_OPTION_CATEGORY_APP 0x00000100
2172
2173#define EFI_BOOT_OPTION_SUPPORT_KEY 0x00000001
2174#define EFI_BOOT_OPTION_SUPPORT_APP 0x00000002
2175#define EFI_BOOT_OPTION_SUPPORT_SYSPREP 0x00000010
2176#define EFI_BOOT_OPTION_SUPPORT_COUNT 0x00000300
2177
2181typedef union {
2182 struct {
2186 UINT32 Revision : 8;
2190 UINT32 ShiftPressed : 1;
2194 UINT32 ControlPressed : 1;
2198 UINT32 AltPressed : 1;
2202 UINT32 LogoPressed : 1;
2206 UINT32 MenuPressed : 1;
2210 UINT32 SysReqPressed : 1;
2211 UINT32 Reserved : 16;
2217 UINT32 InputKeyCount : 2;
2218 } Options;
2219 UINT32 PackedValue;
2221
2225#pragma pack(1)
2226typedef struct {
2247 // EFI_INPUT_KEY Keys[];
2249#pragma pack()
2250
2251//
2252// EFI File location to boot from on removable media devices
2253//
2254#define EFI_REMOVABLE_MEDIA_FILE_NAME_IA32 L"\\EFI\\BOOT\\BOOTIA32.EFI"
2255#define EFI_REMOVABLE_MEDIA_FILE_NAME_IA64 L"\\EFI\\BOOT\\BOOTIA64.EFI"
2256#define EFI_REMOVABLE_MEDIA_FILE_NAME_X64 L"\\EFI\\BOOT\\BOOTX64.EFI"
2257#define EFI_REMOVABLE_MEDIA_FILE_NAME_ARM L"\\EFI\\BOOT\\BOOTARM.EFI"
2258#define EFI_REMOVABLE_MEDIA_FILE_NAME_AARCH64 L"\\EFI\\BOOT\\BOOTAA64.EFI"
2259#define EFI_REMOVABLE_MEDIA_FILE_NAME_RISCV64 L"\\EFI\\BOOT\\BOOTRISCV64.EFI"
2260#define EFI_REMOVABLE_MEDIA_FILE_NAME_LOONGARCH64 L"\\EFI\\BOOT\\BOOTLOONGARCH64.EFI"
2261
2262#if !defined (EFI_REMOVABLE_MEDIA_FILE_NAME)
2263 #if defined (MDE_CPU_IA32)
2264#define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_IA32
2265 #elif defined (MDE_CPU_X64)
2266#define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_X64
2267 #elif defined (MDE_CPU_EBC)
2268 #elif defined (MDE_CPU_ARM)
2269#define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_ARM
2270 #elif defined (MDE_CPU_AARCH64)
2271#define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_AARCH64
2272 #elif defined (MDE_CPU_RISCV64)
2273#define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_RISCV64
2274 #elif defined (MDE_CPU_LOONGARCH64)
2275#define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_LOONGARCH64
2276 #else
2277 #error Unknown Processor Type
2278 #endif
2279#endif
2280
2281//
2282// The directory within the active EFI System Partition defined for delivery of capsule to firmware
2283//
2284#define EFI_CAPSULE_FILE_DIRECTORY L"\\EFI\\UpdateCapsule\\"
2285
2286#include <Uefi/UefiPxe.h>
2287#include <Uefi/UefiGpt.h>
2289
2290#endif
UINT64 UINTN
VOID EFIAPI ResetSystem(IN EFI_RESET_TYPE ResetType, IN EFI_STATUS ResetStatus, IN UINTN DataSize, IN VOID *ResetData OPTIONAL)
UINT32 EFIAPI CalculateCrc32(IN VOID *Buffer, IN UINTN Length)
Definition: CheckSum.c:600
VOID *EFIAPI CopyMem(OUT VOID *DestinationBuffer, IN CONST VOID *SourceBuffer, IN UINTN Length)
VOID *EFIAPI SetMem(OUT VOID *Buffer, IN UINTN Length, IN UINT8 Value)
Definition: SetMemWrapper.c:38
EFI_STATUS EFIAPI UpdateCapsule(IN EFI_CAPSULE_HEADER **CapsuleHeaderArray, IN UINTN CapsuleCount, IN EFI_PHYSICAL_ADDRESS ScatterGatherList OPTIONAL)
VOID EFIAPI FreePages(IN VOID *Buffer, IN UINTN Pages)
VOID EFIAPI FreePool(IN VOID *Buffer)
EFI_STATUS EFIAPI GetWakeupTime(OUT BOOLEAN *Enabled, OUT BOOLEAN *Pending, OUT EFI_TIME *Time)
EFI_STATUS EFIAPI SetTime(IN EFI_TIME *Time)
Definition: RealTimeClock.c:88
EFI_STATUS EFIAPI SetWakeupTime(IN BOOLEAN Enabled, OUT EFI_TIME *Time)
EFI_STATUS EFIAPI GetTime(OUT EFI_TIME *Time, OUT EFI_TIME_CAPABILITIES *Capabilities)
Definition: RealTimeClock.c:54
#define CONST
Definition: Base.h:259
#define OPTIONAL
Definition: Base.h:290
#define IN
Definition: Base.h:279
#define OUT
Definition: Base.h:284
VOID ConvertPointer(IN OUT VOID **Pointer, IN UINTN TempBottom, IN UINTN TempTop, IN UINTN Offset, IN BOOLEAN OffsetPositive)
Definition: Ppi.c:23
VOID *EFIAPI AllocatePool(IN UINTN AllocationSize)
VOID *EFIAPI AllocatePages(IN UINTN Pages)
VOID EFIAPI NotifyFunction(IN EFI_EVENT Event, IN VOID *Context)
Definition: ScsiBus.c:1492
VOID EFIAPI Exit(IN EFI_STATUS Status)
UINT64 EFI_PHYSICAL_ADDRESS
Definition: UefiBaseType.h:50
UINT64 EFI_VIRTUAL_ADDRESS
Definition: UefiBaseType.h:55
RETURN_STATUS EFI_STATUS
Definition: UefiBaseType.h:29
VOID * EFI_EVENT
Definition: UefiBaseType.h:37
UINTN EFI_TPL
Definition: UefiBaseType.h:41
VOID * EFI_HANDLE
Definition: UefiBaseType.h:33
EFI_MEMORY_TYPE
EFI_RESET_TYPE
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:1409
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:1443
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:364
EFI_STATUS(EFIAPI * EFI_IMAGE_START)(IN EFI_HANDLE ImageHandle, OUT UINTN *ExitDataSize, OUT CHAR16 **ExitData OPTIONAL)
Definition: UefiSpec.h:965
EFI_STATUS(EFIAPI * EFI_CALCULATE_CRC32)(IN VOID *Data, IN UINTN DataSize, OUT UINT32 *Crc32)
Definition: UefiSpec.h:1148
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:696
EFI_STATUS(EFIAPI * EFI_ALLOCATE_POOL)(IN EFI_MEMORY_TYPE PoolType, IN UINTN Size, OUT VOID **Buffer)
Definition: UefiSpec.h:285
EFI_STATUS(EFIAPI * EFI_GET_NEXT_HIGH_MONO_COUNT)(OUT UINT32 *HighCount)
Definition: UefiSpec.h:1127
EFI_STATUS(EFIAPI * EFI_IMAGE_LOAD)(IN BOOLEAN BootPolicy, IN EFI_HANDLE ParentImageHandle, IN EFI_DEVICE_PATH_PROTOCOL *DevicePath OPTIONAL, IN VOID *SourceBuffer OPTIONAL, IN UINTN SourceSize, OUT EFI_HANDLE *ImageHandle)
Definition: UefiSpec.h:940
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:1571
EFI_STATUS(EFIAPI * EFI_IMAGE_UNLOAD)(IN EFI_HANDLE ImageHandle)
Definition: UefiSpec.h:1011
EFI_STATUS(EFIAPI * EFI_EXIT)(IN EFI_HANDLE ImageHandle, IN EFI_STATUS ExitStatus, IN UINTN ExitDataSize, IN CHAR16 *ExitData OPTIONAL)
Definition: UefiSpec.h:993
VOID(EFIAPI * EFI_RESTORE_TPL)(IN EFI_TPL OldTpl)
Definition: UefiSpec.h:662
EFI_STATUS(EFIAPI * EFI_INSTALL_CONFIGURATION_TABLE)(IN EFI_GUID *Guid, IN VOID *Table)
Definition: UefiSpec.h:1592
EFI_STATUS(EFIAPI * EFI_PROTOCOLS_PER_HANDLE)(IN EFI_HANDLE Handle, OUT EFI_GUID ***ProtocolBuffer, OUT UINTN *ProtocolBufferCount)
Definition: UefiSpec.h:1473
EFI_STATUS(EFIAPI * EFI_GET_MEMORY_MAP)(IN OUT UINTN *MemoryMapSize, OUT EFI_MEMORY_DESCRIPTOR *MemoryMap, OUT UINTN *MapKey, OUT UINTN *DescriptorSize, OUT UINT32 *DescriptorVersion)
Definition: UefiSpec.h:256
EFI_STATUS(EFIAPI * EFI_CREATE_EVENT)(IN UINT32 Type, IN EFI_TPL NotifyTpl, IN EFI_EVENT_NOTIFY NotifyFunction OPTIONAL, IN VOID *NotifyContext OPTIONAL, OUT EFI_EVENT *Event)
Definition: UefiSpec.h:486
EFI_INTERFACE_TYPE
Definition: UefiSpec.h:1189
@ EFI_NATIVE_INTERFACE
Definition: UefiSpec.h:1193
EFI_STATUS(EFIAPI * EFI_SET_TIME)(IN EFI_TIME *Time)
Definition: UefiSpec.h:856
EFI_STATUS(EFIAPI * EFI_DISCONNECT_CONTROLLER)(IN EFI_HANDLE ControllerHandle, IN EFI_HANDLE DriverImageHandle OPTIONAL, IN EFI_HANDLE ChildHandle OPTIONAL)
Definition: UefiSpec.h:397
EFI_STATUS(EFIAPI * EFI_STALL)(IN UINTN Microseconds)
Definition: UefiSpec.h:1043
EFI_STATUS(EFIAPI * EFI_CONVERT_POINTER)(IN UINTN DebugDisposition, IN OUT VOID **Address)
Definition: UefiSpec.h:428
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:515
VOID(EFIAPI * EFI_EVENT_NOTIFY)(IN EFI_EVENT Event, IN VOID *Context)
Definition: UefiSpec.h:463
EFI_STATUS(EFIAPI * EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES)(IN EFI_HANDLE Handle,...)
Definition: UefiSpec.h:1313
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:781
EFI_TIMER_DELAY
Definition: UefiSpec.h:527
@ TimerCancel
Definition: UefiSpec.h:531
@ TimerRelative
Definition: UefiSpec.h:539
@ TimerPeriodic
Definition: UefiSpec.h:535
EFI_STATUS(EFIAPI * EFI_QUERY_VARIABLE_INFO)(IN UINT32 Attributes, OUT UINT64 *MaximumVariableStorageSize, OUT UINT64 *RemainingVariableStorageSize, OUT UINT64 *MaximumVariableSize)
Definition: UefiSpec.h:1821
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:1218
VOID(EFIAPI * EFI_COPY_MEM)(IN VOID *Destination, IN VOID *Source, IN UINTN Length)
Definition: UefiSpec.h:1164
EFI_STATUS(EFIAPI * EFI_LOCATE_PROTOCOL)(IN EFI_GUID *Protocol, IN VOID *Registration OPTIONAL, OUT VOID **Interface)
Definition: UefiSpec.h:1645
EFI_STATUS(EFIAPI * EFI_HANDLE_PROTOCOL)(IN EFI_HANDLE Handle, IN EFI_GUID *Protocol, OUT VOID **Interface)
Definition: UefiSpec.h:1335
EFI_STATUS(EFIAPI * EFI_EXIT_BOOT_SERVICES)(IN EFI_HANDLE ImageHandle, IN UINTN MapKey)
Definition: UefiSpec.h:1027
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:1545
EFI_STATUS(EFIAPI * EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES)(IN OUT EFI_HANDLE *Handle,...)
Definition: UefiSpec.h:1243
EFI_STATUS(EFIAPI * EFI_UPDATE_CAPSULE)(IN EFI_CAPSULE_HEADER **CapsuleHeaderArray, IN UINTN CapsuleCount, IN EFI_PHYSICAL_ADDRESS ScatterGatherList OPTIONAL)
Definition: UefiSpec.h:1756
EFI_STATUS(EFIAPI * EFI_GET_NEXT_MONOTONIC_COUNT)(OUT UINT64 *Count)
Definition: UefiSpec.h:1108
EFI_TPL(EFIAPI * EFI_RAISE_TPL)(IN EFI_TPL NewTpl)
Definition: UefiSpec.h:650
EFI_STATUS(EFIAPI * EFI_REINSTALL_PROTOCOL_INTERFACE)(IN EFI_HANDLE Handle, IN EFI_GUID *Protocol, IN VOID *OldInterface, IN VOID *NewInterface)
Definition: UefiSpec.h:1268
EFI_STATUS(EFIAPI * EFI_SET_WATCHDOG_TIMER)(IN UINTN Timeout, IN UINT64 WatchdogCode, IN UINTN DataSize, IN CHAR16 *WatchdogData OPTIONAL)
Definition: UefiSpec.h:1065
EFI_STATUS(EFIAPI * EFI_SIGNAL_EVENT)(IN EFI_EVENT Event)
Definition: UefiSpec.h:576
EFI_STATUS(EFIAPI * EFI_WAIT_FOR_EVENT)(IN UINTN NumberOfEvents, IN EFI_EVENT *Event, OUT UINTN *Index)
Definition: UefiSpec.h:596
VOID(EFIAPI * EFI_SET_MEM)(IN VOID *Buffer, IN UINTN Size, IN UINT8 Value)
Definition: UefiSpec.h:1180
EFI_STATUS(EFIAPI * EFI_UNINSTALL_PROTOCOL_INTERFACE)(IN EFI_HANDLE Handle, IN EFI_GUID *Protocol, IN VOID *Interface)
Definition: UefiSpec.h:1294
EFI_STATUS(EFIAPI * EFI_IMAGE_ENTRY_POINT)(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
Definition: UefiSpec.h:2108
EFI_STATUS(EFIAPI * EFI_FREE_PAGES)(IN EFI_PHYSICAL_ADDRESS Memory, IN UINTN Pages)
Definition: UefiSpec.h:224
EFI_LOCATE_SEARCH_TYPE
Definition: UefiSpec.h:1505
@ ByProtocol
Definition: UefiSpec.h:1518
@ ByRegisterNotify
Definition: UefiSpec.h:1513
@ AllHandles
Definition: UefiSpec.h:1509
EFI_STATUS(EFIAPI * EFI_CLOSE_EVENT)(IN EFI_EVENT Event)
Definition: UefiSpec.h:612
EFI_STATUS(EFIAPI * EFI_GET_TIME)(OUT EFI_TIME *Time, OUT EFI_TIME_CAPABILITIES *Capabilities OPTIONAL)
Definition: UefiSpec.h:836
VOID(EFIAPI * EFI_RESET_SYSTEM)(IN EFI_RESET_TYPE ResetType, IN EFI_STATUS ResetStatus, IN UINTN DataSize, IN VOID *ResetData OPTIONAL)
Definition: UefiSpec.h:1089
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:330
EFI_STATUS(EFIAPI * EFI_SET_WAKEUP_TIME)(IN BOOLEAN Enable, IN EFI_TIME *Time OPTIONAL)
Definition: UefiSpec.h:903
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:203
EFI_STATUS(EFIAPI * EFI_FREE_POOL)(IN VOID *Buffer)
Definition: UefiSpec.h:302
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:1790
EFI_STATUS(EFIAPI * EFI_CHECK_EVENT)(IN EFI_EVENT Event)
Definition: UefiSpec.h:628
EFI_STATUS(EFIAPI * EFI_LOCATE_HANDLE_BUFFER)(IN EFI_LOCATE_SEARCH_TYPE SearchType, IN EFI_GUID *Protocol OPTIONAL, IN VOID *SearchKey OPTIONAL, OUT UINTN *NoHandles, OUT EFI_HANDLE **Buffer)
Definition: UefiSpec.h:1618
EFI_STATUS(EFIAPI * EFI_GET_WAKEUP_TIME)(OUT BOOLEAN *Enabled, OUT BOOLEAN *Pending, OUT EFI_TIME *Time)
Definition: UefiSpec.h:879
EFI_STATUS(EFIAPI * EFI_GET_NEXT_VARIABLE_NAME)(IN OUT UINTN *VariableNameSize, IN OUT CHAR16 *VariableName, IN OUT EFI_GUID *VendorGuid)
Definition: UefiSpec.h:736
EFI_ALLOCATE_TYPE
Definition: UefiSpec.h:29
@ AllocateMaxAddress
Definition: UefiSpec.h:38
@ AllocateAddress
Definition: UefiSpec.h:42
@ AllocateAnyPages
Definition: UefiSpec.h:33
@ MaxAllocateType
Definition: UefiSpec.h:46
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:1377
EFI_STATUS(EFIAPI * EFI_SET_TIMER)(IN EFI_EVENT Event, IN EFI_TIMER_DELAY Type, IN UINT64 TriggerTime)
Definition: UefiSpec.h:560
EFI_STATUS(EFIAPI * EFI_REGISTER_PROTOCOL_NOTIFY)(IN EFI_GUID *Protocol, IN EFI_EVENT Event, OUT VOID **Registration)
Definition: UefiSpec.h:1496
UINT16 FilePathListLength
Definition: UefiSpec.h:2133
UINT32 Attributes
Definition: UefiSpec.h:2127
EFI_TABLE_HEADER Hdr
Definition: UefiSpec.h:1919
EFI_PHYSICAL_ADDRESS DataBlock
Definition: UefiSpec.h:1664
EFI_PHYSICAL_ADDRESS ContinuationPointer
Definition: UefiSpec.h:1671
UINT32 CapsuleImageSize
Definition: UefiSpec.h:1698
EFI_GUID CapsuleGuid
Definition: UefiSpec.h:1682
UINT32 CapsuleArrayNumber
Definition: UefiSpec.h:1710
UINT32 BootOptionCrc
Definition: UefiSpec.h:2236
UINT16 BootOption
Definition: UefiSpec.h:2241
EFI_BOOT_KEY_DATA KeyData
Definition: UefiSpec.h:2230
EFI_VIRTUAL_ADDRESS VirtualStart
Definition: UefiSpec.h:161
EFI_PHYSICAL_ADDRESS PhysicalStart
Definition: UefiSpec.h:155
EFI_TABLE_HEADER Hdr
Definition: UefiSpec.h:1868
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL * StdErr
Definition: UefiSpec.h:2075
EFI_BOOT_SERVICES * BootServices
Definition: UefiSpec.h:2083
EFI_CONFIGURATION_TABLE * ConfigurationTable
Definition: UefiSpec.h:2092
UINT32 FirmwareRevision
Definition: UefiSpec.h:2042
EFI_HANDLE ConsoleInHandle
Definition: UefiSpec.h:2048
EFI_HANDLE ConsoleOutHandle
Definition: UefiSpec.h:2059
EFI_RUNTIME_SERVICES * RuntimeServices
Definition: UefiSpec.h:2079
EFI_HANDLE StandardErrorHandle
Definition: UefiSpec.h:2070
EFI_SIMPLE_TEXT_INPUT_PROTOCOL * ConIn
Definition: UefiSpec.h:2053
CHAR16 * FirmwareVendor
Definition: UefiSpec.h:2037
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL * ConOut
Definition: UefiSpec.h:2064
EFI_TABLE_HEADER Hdr
Definition: UefiSpec.h:2032
UINTN NumberOfTableEntries
Definition: UefiSpec.h:2087
Definition: Base.h:213
UINT32 ControlPressed
Definition: UefiSpec.h:2194
UINT32 SysReqPressed
Definition: UefiSpec.h:2210
UINT32 MenuPressed
Definition: UefiSpec.h:2206
UINT32 LogoPressed
Definition: UefiSpec.h:2202
UINT32 InputKeyCount
Definition: UefiSpec.h:2217
UINT32 ShiftPressed
Definition: UefiSpec.h:2190