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// Attributes bitmasks, grouped by type
115//
116#define EFI_CACHE_ATTRIBUTE_MASK (EFI_MEMORY_UC | EFI_MEMORY_WC | EFI_MEMORY_WT | EFI_MEMORY_WB | EFI_MEMORY_UCE | EFI_MEMORY_WP)
117#define EFI_MEMORY_ACCESS_MASK (EFI_MEMORY_RP | EFI_MEMORY_XP | EFI_MEMORY_RO)
118#define EFI_MEMORY_ATTRIBUTE_MASK (EFI_MEMORY_ACCESS_MASK | EFI_MEMORY_SP | EFI_MEMORY_CPU_CRYPTO)
119
123#define EFI_MEMORY_DESCRIPTOR_VERSION 1
124
128typedef struct {
134 UINT32 Type;
159 UINT64 Attribute;
161
186typedef
188(EFIAPI *EFI_ALLOCATE_PAGES)(
190 IN EFI_MEMORY_TYPE MemoryType,
191 IN UINTN Pages,
193 );
194
207typedef
209(EFIAPI *EFI_FREE_PAGES)(
211 IN UINTN Pages
212 );
213
239typedef
241(EFIAPI *EFI_GET_MEMORY_MAP)(
242 IN OUT UINTN *MemoryMapSize,
243 OUT EFI_MEMORY_DESCRIPTOR *MemoryMap,
244 OUT UINTN *MapKey,
245 OUT UINTN *DescriptorSize,
246 OUT UINT32 *DescriptorVersion
247 );
248
268typedef
270(EFIAPI *EFI_ALLOCATE_POOL)(
271 IN EFI_MEMORY_TYPE PoolType,
272 IN UINTN Size,
273 OUT VOID **Buffer
274 );
275
285typedef
287(EFIAPI *EFI_FREE_POOL)(
288 IN VOID *Buffer
289 );
290
310typedef
313 IN UINTN MemoryMapSize,
314 IN UINTN DescriptorSize,
315 IN UINT32 DescriptorVersion,
316 IN EFI_MEMORY_DESCRIPTOR *VirtualMap
317 );
318
344typedef
346(EFIAPI *EFI_CONNECT_CONTROLLER)(
347 IN EFI_HANDLE ControllerHandle,
348 IN EFI_HANDLE *DriverImageHandle OPTIONAL,
349 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL,
350 IN BOOLEAN Recursive
351 );
352
377typedef
380 IN EFI_HANDLE ControllerHandle,
381 IN EFI_HANDLE DriverImageHandle OPTIONAL,
382 IN EFI_HANDLE ChildHandle OPTIONAL
383 );
384
385//
386// ConvertPointer DebugDisposition type.
387//
388#define EFI_OPTIONAL_PTR 0x00000001
389
405typedef
407(EFIAPI *EFI_CONVERT_POINTER)(
408 IN UINTN DebugDisposition,
409 IN OUT VOID **Address
410 );
411
412//
413// These types can be ORed together as needed - for example,
414// EVT_TIMER might be Ored with EVT_NOTIFY_WAIT or
415// EVT_NOTIFY_SIGNAL.
416//
417#define EVT_TIMER 0x80000000
418#define EVT_RUNTIME 0x40000000
419#define EVT_NOTIFY_WAIT 0x00000100
420#define EVT_NOTIFY_SIGNAL 0x00000200
421
422#define EVT_SIGNAL_EXIT_BOOT_SERVICES 0x00000201
423#define EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE 0x60000202
424
425//
426// The event's NotifyContext pointer points to a runtime memory
427// address.
428// The event is deprecated in UEFI2.0 and later specifications.
429//
430#define EVT_RUNTIME_CONTEXT 0x20000000
431
440typedef
441VOID
442(EFIAPI *EFI_EVENT_NOTIFY)(
443 IN EFI_EVENT Event,
444 IN VOID *Context
445 );
446
463typedef
465(EFIAPI *EFI_CREATE_EVENT)(
466 IN UINT32 Type,
467 IN EFI_TPL NotifyTpl,
469 IN VOID *NotifyContext OPTIONAL,
470 OUT EFI_EVENT *Event
471 );
472
492typedef
494(EFIAPI *EFI_CREATE_EVENT_EX)(
495 IN UINT32 Type,
496 IN EFI_TPL NotifyTpl,
498 IN CONST VOID *NotifyContext OPTIONAL,
499 IN CONST EFI_GUID *EventGroup OPTIONAL,
500 OUT EFI_EVENT *Event
501 );
502
506typedef enum {
520
537typedef
539(EFIAPI *EFI_SET_TIMER)(
540 IN EFI_EVENT Event,
541 IN EFI_TIMER_DELAY Type,
542 IN UINT64 TriggerTime
543 );
544
553typedef
555(EFIAPI *EFI_SIGNAL_EVENT)(
556 IN EFI_EVENT Event
557 );
558
573typedef
575(EFIAPI *EFI_WAIT_FOR_EVENT)(
576 IN UINTN NumberOfEvents,
577 IN EFI_EVENT *Event,
578 OUT UINTN *Index
579 );
580
589typedef
591(EFIAPI *EFI_CLOSE_EVENT)(
592 IN EFI_EVENT Event
593 );
594
605typedef
607(EFIAPI *EFI_CHECK_EVENT)(
608 IN EFI_EVENT Event
609 );
610
611//
612// Task priority level
613//
614#define TPL_APPLICATION 4
615#define TPL_CALLBACK 8
616#define TPL_NOTIFY 16
617#define TPL_HIGH_LEVEL 31
618
627typedef
629(EFIAPI *EFI_RAISE_TPL)(
630 IN EFI_TPL NewTpl
631 );
632
639typedef
640VOID
641(EFIAPI *EFI_RESTORE_TPL)(
642 IN EFI_TPL OldTpl
643 );
644
669typedef
671(EFIAPI *EFI_GET_VARIABLE)(
672 IN CHAR16 *VariableName,
673 IN EFI_GUID *VendorGuid,
674 OUT UINT32 *Attributes OPTIONAL,
675 IN OUT UINTN *DataSize,
676 OUT VOID *Data OPTIONAL
677 );
678
705typedef
708 IN OUT UINTN *VariableNameSize,
709 IN OUT CHAR16 *VariableName,
710 IN OUT EFI_GUID *VendorGuid
711 );
712
747typedef
749(EFIAPI *EFI_SET_VARIABLE)(
750 IN CHAR16 *VariableName,
751 IN EFI_GUID *VendorGuid,
752 IN UINT32 Attributes,
753 IN UINTN DataSize,
754 IN VOID *Data
755 );
756
761typedef struct {
775 UINT32 Accuracy;
783 BOOLEAN SetsToZero;
785
799typedef
801(EFIAPI *EFI_GET_TIME)(
802 OUT EFI_TIME *Time,
804 );
805
816typedef
818(EFIAPI *EFI_SET_TIME)(
819 IN EFI_TIME *Time
820 );
821
837typedef
839(EFIAPI *EFI_GET_WAKEUP_TIME)(
840 OUT BOOLEAN *Enabled,
841 OUT BOOLEAN *Pending,
842 OUT EFI_TIME *Time
843 );
844
859typedef
861(EFIAPI *EFI_SET_WAKEUP_TIME)(
862 IN BOOLEAN Enable,
863 IN EFI_TIME *Time OPTIONAL
864 );
865
896typedef
898(EFIAPI *EFI_IMAGE_LOAD)(
899 IN BOOLEAN BootPolicy,
900 IN EFI_HANDLE ParentImageHandle,
901 IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
902 IN VOID *SourceBuffer OPTIONAL,
903 IN UINTN SourceSize,
904 OUT EFI_HANDLE *ImageHandle
905 );
906
921typedef
923(EFIAPI *EFI_IMAGE_START)(
924 IN EFI_HANDLE ImageHandle,
925 OUT UINTN *ExitDataSize,
926 OUT CHAR16 **ExitData OPTIONAL
927 );
928
949typedef
951(EFIAPI *EFI_EXIT)(
952 IN EFI_HANDLE ImageHandle,
953 IN EFI_STATUS ExitStatus,
954 IN UINTN ExitDataSize,
955 IN CHAR16 *ExitData OPTIONAL
956 );
957
967typedef
969(EFIAPI *EFI_IMAGE_UNLOAD)(
970 IN EFI_HANDLE ImageHandle
971 );
972
983typedef
985(EFIAPI *EFI_EXIT_BOOT_SERVICES)(
986 IN EFI_HANDLE ImageHandle,
987 IN UINTN MapKey
988 );
989
999typedef
1001(EFIAPI *EFI_STALL)(
1002 IN UINTN Microseconds
1003 );
1004
1021typedef
1023(EFIAPI *EFI_SET_WATCHDOG_TIMER)(
1024 IN UINTN Timeout,
1025 IN UINT64 WatchdogCode,
1026 IN UINTN DataSize,
1027 IN CHAR16 *WatchdogData OPTIONAL
1028 );
1029
1045typedef
1046VOID
1047(EFIAPI *EFI_RESET_SYSTEM)(
1048 IN EFI_RESET_TYPE ResetType,
1049 IN EFI_STATUS ResetStatus,
1050 IN UINTN DataSize,
1051 IN VOID *ResetData OPTIONAL
1052 );
1053
1064typedef
1067 OUT UINT64 *Count
1068 );
1069
1080typedef
1083 OUT UINT32 *HighCount
1084 );
1085
1101typedef
1103(EFIAPI *EFI_CALCULATE_CRC32)(
1104 IN VOID *Data,
1105 IN UINTN DataSize,
1106 OUT UINT32 *Crc32
1107 );
1108
1117typedef
1118VOID
1119(EFIAPI *EFI_COPY_MEM)(
1120 IN VOID *Destination,
1121 IN VOID *Source,
1122 IN UINTN Length
1123 );
1124
1133typedef
1134VOID
1135(EFIAPI *EFI_SET_MEM)(
1136 IN VOID *Buffer,
1137 IN UINTN Size,
1138 IN UINT8 Value
1139 );
1140
1144typedef enum {
1150
1171typedef
1174 IN OUT EFI_HANDLE *Handle,
1175 IN EFI_GUID *Protocol,
1176 IN EFI_INTERFACE_TYPE InterfaceType,
1177 IN VOID *Interface
1178 );
1179
1196typedef
1199 IN OUT EFI_HANDLE *Handle,
1200 ...
1201 );
1202
1221typedef
1224 IN EFI_HANDLE Handle,
1225 IN EFI_GUID *Protocol,
1226 IN VOID *OldInterface,
1227 IN VOID *NewInterface
1228 );
1229
1247typedef
1250 IN EFI_HANDLE Handle,
1251 IN EFI_GUID *Protocol,
1252 IN VOID *Interface
1253 );
1254
1266typedef
1269 IN EFI_HANDLE Handle,
1270 ...
1271 );
1272
1288typedef
1290(EFIAPI *EFI_HANDLE_PROTOCOL)(
1291 IN EFI_HANDLE Handle,
1292 IN EFI_GUID *Protocol,
1293 OUT VOID **Interface
1294 );
1295
1296#define EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL 0x00000001
1297#define EFI_OPEN_PROTOCOL_GET_PROTOCOL 0x00000002
1298#define EFI_OPEN_PROTOCOL_TEST_PROTOCOL 0x00000004
1299#define EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER 0x00000008
1300#define EFI_OPEN_PROTOCOL_BY_DRIVER 0x00000010
1301#define EFI_OPEN_PROTOCOL_EXCLUSIVE 0x00000020
1302
1330typedef
1332(EFIAPI *EFI_OPEN_PROTOCOL)(
1333 IN EFI_HANDLE Handle,
1334 IN EFI_GUID *Protocol,
1335 OUT VOID **Interface OPTIONAL,
1336 IN EFI_HANDLE AgentHandle,
1337 IN EFI_HANDLE ControllerHandle,
1338 IN UINT32 Attributes
1339 );
1340
1362typedef
1364(EFIAPI *EFI_CLOSE_PROTOCOL)(
1365 IN EFI_HANDLE Handle,
1366 IN EFI_GUID *Protocol,
1367 IN EFI_HANDLE AgentHandle,
1368 IN EFI_HANDLE ControllerHandle
1369 );
1370
1374typedef struct {
1375 EFI_HANDLE AgentHandle;
1376 EFI_HANDLE ControllerHandle;
1377 UINT32 Attributes;
1378 UINT32 OpenCount;
1380
1396typedef
1399 IN EFI_HANDLE Handle,
1400 IN EFI_GUID *Protocol,
1402 OUT UINTN *EntryCount
1403 );
1404
1426typedef
1428(EFIAPI *EFI_PROTOCOLS_PER_HANDLE)(
1429 IN EFI_HANDLE Handle,
1430 OUT EFI_GUID ***ProtocolBuffer,
1431 OUT UINTN *ProtocolBufferCount
1432 );
1433
1449typedef
1452 IN EFI_GUID *Protocol,
1453 IN EFI_EVENT Event,
1454 OUT VOID **Registration
1455 );
1456
1460typedef enum {
1475
1498typedef
1500(EFIAPI *EFI_LOCATE_HANDLE)(
1501 IN EFI_LOCATE_SEARCH_TYPE SearchType,
1502 IN EFI_GUID *Protocol OPTIONAL,
1503 IN VOID *SearchKey OPTIONAL,
1504 IN OUT UINTN *BufferSize,
1505 OUT EFI_HANDLE *Buffer
1506 );
1507
1524typedef
1526(EFIAPI *EFI_LOCATE_DEVICE_PATH)(
1527 IN EFI_GUID *Protocol,
1528 IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath,
1529 OUT EFI_HANDLE *Device
1530 );
1531
1545typedef
1548 IN EFI_GUID *Guid,
1549 IN VOID *Table
1550 );
1551
1571typedef
1573(EFIAPI *EFI_LOCATE_HANDLE_BUFFER)(
1574 IN EFI_LOCATE_SEARCH_TYPE SearchType,
1575 IN EFI_GUID *Protocol OPTIONAL,
1576 IN VOID *SearchKey OPTIONAL,
1577 OUT UINTN *NoHandles,
1578 OUT EFI_HANDLE **Buffer
1579 );
1580
1598typedef
1600(EFIAPI *EFI_LOCATE_PROTOCOL)(
1601 IN EFI_GUID *Protocol,
1602 IN VOID *Registration OPTIONAL,
1603 OUT VOID **Interface
1604 );
1605
1609typedef struct {
1613 UINT64 Length;
1614 union {
1627 } Union;
1629
1633typedef struct {
1649 UINT32 Flags;
1655
1661typedef struct {
1669 VOID *CapsulePtr[1];
1671
1672#define CAPSULE_FLAGS_PERSIST_ACROSS_RESET 0x00010000
1673#define CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE 0x00020000
1674#define CAPSULE_FLAGS_INITIATE_RESET 0x00040000
1675
1706typedef
1708(EFIAPI *EFI_UPDATE_CAPSULE)(
1709 IN EFI_CAPSULE_HEADER **CapsuleHeaderArray,
1710 IN UINTN CapsuleCount,
1711 IN EFI_PHYSICAL_ADDRESS ScatterGatherList OPTIONAL
1712 );
1713
1737typedef
1740 IN EFI_CAPSULE_HEADER **CapsuleHeaderArray,
1741 IN UINTN CapsuleCount,
1742 OUT UINT64 *MaximumCapsuleSize,
1743 OUT EFI_RESET_TYPE *ResetType
1744 );
1745
1768typedef
1770(EFIAPI *EFI_QUERY_VARIABLE_INFO)(
1771 IN UINT32 Attributes,
1772 OUT UINT64 *MaximumVariableStorageSize,
1773 OUT UINT64 *RemainingVariableStorageSize,
1774 OUT UINT64 *MaximumVariableSize
1775 );
1776
1777//
1778// Firmware should stop at a firmware user interface on next boot
1779//
1780#define EFI_OS_INDICATIONS_BOOT_TO_FW_UI 0x0000000000000001
1781#define EFI_OS_INDICATIONS_TIMESTAMP_REVOCATION 0x0000000000000002
1782#define EFI_OS_INDICATIONS_FILE_CAPSULE_DELIVERY_SUPPORTED 0x0000000000000004
1783#define EFI_OS_INDICATIONS_FMP_CAPSULE_SUPPORTED 0x0000000000000008
1784#define EFI_OS_INDICATIONS_CAPSULE_RESULT_VAR_SUPPORTED 0x0000000000000010
1785#define EFI_OS_INDICATIONS_START_PLATFORM_RECOVERY 0x0000000000000040
1786#define EFI_OS_INDICATIONS_JSON_CONFIG_DATA_REFRESH 0x0000000000000080
1787
1788//
1789// EFI Runtime Services Table
1790//
1791#define EFI_SYSTEM_TABLE_SIGNATURE SIGNATURE_64 ('I','B','I',' ','S','Y','S','T')
1792#define EFI_2_80_SYSTEM_TABLE_REVISION ((2 << 16) | (80))
1793#define EFI_2_70_SYSTEM_TABLE_REVISION ((2 << 16) | (70))
1794#define EFI_2_60_SYSTEM_TABLE_REVISION ((2 << 16) | (60))
1795#define EFI_2_50_SYSTEM_TABLE_REVISION ((2 << 16) | (50))
1796#define EFI_2_40_SYSTEM_TABLE_REVISION ((2 << 16) | (40))
1797#define EFI_2_31_SYSTEM_TABLE_REVISION ((2 << 16) | (31))
1798#define EFI_2_30_SYSTEM_TABLE_REVISION ((2 << 16) | (30))
1799#define EFI_2_20_SYSTEM_TABLE_REVISION ((2 << 16) | (20))
1800#define EFI_2_10_SYSTEM_TABLE_REVISION ((2 << 16) | (10))
1801#define EFI_2_00_SYSTEM_TABLE_REVISION ((2 << 16) | (00))
1802#define EFI_1_10_SYSTEM_TABLE_REVISION ((1 << 16) | (10))
1803#define EFI_1_02_SYSTEM_TABLE_REVISION ((1 << 16) | (02))
1804#define EFI_SYSTEM_TABLE_REVISION EFI_2_70_SYSTEM_TABLE_REVISION
1805#define EFI_SPECIFICATION_VERSION EFI_SYSTEM_TABLE_REVISION
1806
1807#define EFI_RUNTIME_SERVICES_SIGNATURE SIGNATURE_64 ('R','U','N','T','S','E','R','V')
1808#define EFI_RUNTIME_SERVICES_REVISION EFI_SPECIFICATION_VERSION
1809
1813typedef struct {
1818
1819 //
1820 // Time Services
1821 //
1826
1827 //
1828 // Virtual Memory Services
1829 //
1830 EFI_SET_VIRTUAL_ADDRESS_MAP SetVirtualAddressMap;
1832
1833 //
1834 // Variable Services
1835 //
1836 EFI_GET_VARIABLE GetVariable;
1837 EFI_GET_NEXT_VARIABLE_NAME GetNextVariableName;
1838 EFI_SET_VARIABLE SetVariable;
1839
1840 //
1841 // Miscellaneous Services
1842 //
1843 EFI_GET_NEXT_HIGH_MONO_COUNT GetNextHighMonotonicCount;
1845
1846 //
1847 // UEFI 2.0 Capsule Services
1848 //
1850 EFI_QUERY_CAPSULE_CAPABILITIES QueryCapsuleCapabilities;
1851
1852 //
1853 // Miscellaneous UEFI 2.0 Service
1854 //
1855 EFI_QUERY_VARIABLE_INFO QueryVariableInfo;
1857
1858#define EFI_BOOT_SERVICES_SIGNATURE SIGNATURE_64 ('B','O','O','T','S','E','R','V')
1859#define EFI_BOOT_SERVICES_REVISION EFI_SPECIFICATION_VERSION
1860
1864typedef struct {
1869
1870 //
1871 // Task Priority Services
1872 //
1873 EFI_RAISE_TPL RaiseTPL;
1874 EFI_RESTORE_TPL RestoreTPL;
1875
1876 //
1877 // Memory Services
1878 //
1881 EFI_GET_MEMORY_MAP GetMemoryMap;
1884
1885 //
1886 // Event & Timer Services
1887 //
1888 EFI_CREATE_EVENT CreateEvent;
1889 EFI_SET_TIMER SetTimer;
1890 EFI_WAIT_FOR_EVENT WaitForEvent;
1891 EFI_SIGNAL_EVENT SignalEvent;
1892 EFI_CLOSE_EVENT CloseEvent;
1893 EFI_CHECK_EVENT CheckEvent;
1894
1895 //
1896 // Protocol Handler Services
1897 //
1898 EFI_INSTALL_PROTOCOL_INTERFACE InstallProtocolInterface;
1899 EFI_REINSTALL_PROTOCOL_INTERFACE ReinstallProtocolInterface;
1900 EFI_UNINSTALL_PROTOCOL_INTERFACE UninstallProtocolInterface;
1901 EFI_HANDLE_PROTOCOL HandleProtocol;
1902 VOID *Reserved;
1903 EFI_REGISTER_PROTOCOL_NOTIFY RegisterProtocolNotify;
1904 EFI_LOCATE_HANDLE LocateHandle;
1905 EFI_LOCATE_DEVICE_PATH LocateDevicePath;
1906 EFI_INSTALL_CONFIGURATION_TABLE InstallConfigurationTable;
1907
1908 //
1909 // Image Services
1910 //
1911 EFI_IMAGE_LOAD LoadImage;
1912 EFI_IMAGE_START StartImage;
1913 EFI_EXIT Exit;
1914 EFI_IMAGE_UNLOAD UnloadImage;
1915 EFI_EXIT_BOOT_SERVICES ExitBootServices;
1916
1917 //
1918 // Miscellaneous Services
1919 //
1920 EFI_GET_NEXT_MONOTONIC_COUNT GetNextMonotonicCount;
1921 EFI_STALL Stall;
1922 EFI_SET_WATCHDOG_TIMER SetWatchdogTimer;
1923
1924 //
1925 // DriverSupport Services
1926 //
1927 EFI_CONNECT_CONTROLLER ConnectController;
1928 EFI_DISCONNECT_CONTROLLER DisconnectController;
1929
1930 //
1931 // Open and Close Protocol Services
1932 //
1933 EFI_OPEN_PROTOCOL OpenProtocol;
1934 EFI_CLOSE_PROTOCOL CloseProtocol;
1935 EFI_OPEN_PROTOCOL_INFORMATION OpenProtocolInformation;
1936
1937 //
1938 // Library Services
1939 //
1940 EFI_PROTOCOLS_PER_HANDLE ProtocolsPerHandle;
1941 EFI_LOCATE_HANDLE_BUFFER LocateHandleBuffer;
1942 EFI_LOCATE_PROTOCOL LocateProtocol;
1943 EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES InstallMultipleProtocolInterfaces;
1944 EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES UninstallMultipleProtocolInterfaces;
1945
1946 //
1947 // 32-bit CRC Services
1948 //
1950
1951 //
1952 // Miscellaneous Services
1953 //
1956 EFI_CREATE_EVENT_EX CreateEventEx;
1958
1963typedef struct {
1973
1977typedef struct {
2039
2051typedef
2053(EFIAPI *EFI_IMAGE_ENTRY_POINT)(
2054 IN EFI_HANDLE ImageHandle,
2055 IN EFI_SYSTEM_TABLE *SystemTable
2056 );
2057
2058//
2059// EFI Load Option. This data structure describes format of UEFI boot option variables.
2060//
2061// NOTE: EFI Load Option is a byte packed buffer of variable length fields.
2062// The first two fields have fixed length. They are declared as members of the
2063// EFI_LOAD_OPTION structure. All the other fields are variable length fields.
2064// They are listed in the comment block below for reference purposes.
2065//
2066#pragma pack(1)
2067typedef struct _EFI_LOAD_OPTION {
2083 // CHAR16 Description[];
2095 // EFI_DEVICE_PATH_PROTOCOL FilePathList[];
2103 // UINT8 OptionalData[];
2105#pragma pack()
2106
2107//
2108// EFI Load Options Attributes
2109//
2110#define LOAD_OPTION_ACTIVE 0x00000001
2111#define LOAD_OPTION_FORCE_RECONNECT 0x00000002
2112#define LOAD_OPTION_HIDDEN 0x00000008
2113#define LOAD_OPTION_CATEGORY 0x00001F00
2114
2115#define LOAD_OPTION_CATEGORY_BOOT 0x00000000
2116#define LOAD_OPTION_CATEGORY_APP 0x00000100
2117
2118#define EFI_BOOT_OPTION_SUPPORT_KEY 0x00000001
2119#define EFI_BOOT_OPTION_SUPPORT_APP 0x00000002
2120#define EFI_BOOT_OPTION_SUPPORT_SYSPREP 0x00000010
2121#define EFI_BOOT_OPTION_SUPPORT_COUNT 0x00000300
2122
2126typedef union {
2127 struct {
2131 UINT32 Revision : 8;
2135 UINT32 ShiftPressed : 1;
2139 UINT32 ControlPressed : 1;
2143 UINT32 AltPressed : 1;
2147 UINT32 LogoPressed : 1;
2151 UINT32 MenuPressed : 1;
2155 UINT32 SysReqPressed : 1;
2156 UINT32 Reserved : 16;
2162 UINT32 InputKeyCount : 2;
2163 } Options;
2164 UINT32 PackedValue;
2166
2170#pragma pack(1)
2171typedef struct {
2192 // EFI_INPUT_KEY Keys[];
2194#pragma pack()
2195
2196//
2197// EFI File location to boot from on removable media devices
2198//
2199#define EFI_REMOVABLE_MEDIA_FILE_NAME_IA32 L"\\EFI\\BOOT\\BOOTIA32.EFI"
2200#define EFI_REMOVABLE_MEDIA_FILE_NAME_IA64 L"\\EFI\\BOOT\\BOOTIA64.EFI"
2201#define EFI_REMOVABLE_MEDIA_FILE_NAME_X64 L"\\EFI\\BOOT\\BOOTX64.EFI"
2202#define EFI_REMOVABLE_MEDIA_FILE_NAME_ARM L"\\EFI\\BOOT\\BOOTARM.EFI"
2203#define EFI_REMOVABLE_MEDIA_FILE_NAME_AARCH64 L"\\EFI\\BOOT\\BOOTAA64.EFI"
2204#define EFI_REMOVABLE_MEDIA_FILE_NAME_RISCV64 L"\\EFI\\BOOT\\BOOTRISCV64.EFI"
2205#define EFI_REMOVABLE_MEDIA_FILE_NAME_LOONGARCH64 L"\\EFI\\BOOT\\BOOTLOONGARCH64.EFI"
2206
2207#if !defined (EFI_REMOVABLE_MEDIA_FILE_NAME)
2208 #if defined (MDE_CPU_IA32)
2209#define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_IA32
2210 #elif defined (MDE_CPU_X64)
2211#define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_X64
2212 #elif defined (MDE_CPU_EBC)
2213 #elif defined (MDE_CPU_ARM)
2214#define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_ARM
2215 #elif defined (MDE_CPU_AARCH64)
2216#define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_AARCH64
2217 #elif defined (MDE_CPU_RISCV64)
2218#define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_RISCV64
2219 #elif defined (MDE_CPU_LOONGARCH64)
2220#define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_LOONGARCH64
2221 #else
2222 #error Unknown Processor Type
2223 #endif
2224#endif
2225
2226//
2227// The directory within the active EFI System Partition defined for delivery of capsule to firmware
2228//
2229#define EFI_CAPSULE_FILE_DIRECTORY L"\\EFI\\UpdateCapsule\\"
2230
2231#include <Uefi/UefiPxe.h>
2232#include <Uefi/UefiGpt.h>
2234
2235#endif
UINT64 UINTN
VOID EFIAPI ResetSystem(IN EFI_RESET_TYPE ResetType, IN EFI_STATUS ResetStatus, IN UINTN DataSize, IN VOID *ResetData OPTIONAL)
#define CONST
Definition: Base.h:259
#define OPTIONAL
Definition: Base.h:290
#define IN
Definition: Base.h:279
#define OUT
Definition: Base.h:284
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:82
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:51
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:1364
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:1398
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:346
EFI_STATUS(EFIAPI * EFI_IMAGE_START)(IN EFI_HANDLE ImageHandle, OUT UINTN *ExitDataSize, OUT CHAR16 **ExitData OPTIONAL)
Definition: UefiSpec.h:923
EFI_STATUS(EFIAPI * EFI_CALCULATE_CRC32)(IN VOID *Data, IN UINTN DataSize, OUT UINT32 *Crc32)
Definition: UefiSpec.h:1103
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:671
EFI_STATUS(EFIAPI * EFI_ALLOCATE_POOL)(IN EFI_MEMORY_TYPE PoolType, IN UINTN Size, OUT VOID **Buffer)
Definition: UefiSpec.h:270
EFI_STATUS(EFIAPI * EFI_GET_NEXT_HIGH_MONO_COUNT)(OUT UINT32 *HighCount)
Definition: UefiSpec.h:1082
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:1526
EFI_STATUS(EFIAPI * EFI_IMAGE_UNLOAD)(IN EFI_HANDLE ImageHandle)
Definition: UefiSpec.h:969
EFI_STATUS(EFIAPI * EFI_EXIT)(IN EFI_HANDLE ImageHandle, IN EFI_STATUS ExitStatus, IN UINTN ExitDataSize, IN CHAR16 *ExitData OPTIONAL)
Definition: UefiSpec.h:951
VOID(EFIAPI * EFI_RESTORE_TPL)(IN EFI_TPL OldTpl)
Definition: UefiSpec.h:641
EFI_STATUS(EFIAPI * EFI_INSTALL_CONFIGURATION_TABLE)(IN EFI_GUID *Guid, IN VOID *Table)
Definition: UefiSpec.h:1547
EFI_STATUS(EFIAPI * EFI_PROTOCOLS_PER_HANDLE)(IN EFI_HANDLE Handle, OUT EFI_GUID ***ProtocolBuffer, OUT UINTN *ProtocolBufferCount)
Definition: UefiSpec.h:1428
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:241
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:465
EFI_INTERFACE_TYPE
Definition: UefiSpec.h:1144
@ EFI_NATIVE_INTERFACE
Definition: UefiSpec.h:1148
EFI_STATUS(EFIAPI * EFI_SET_TIME)(IN EFI_TIME *Time)
Definition: UefiSpec.h:818
EFI_STATUS(EFIAPI * EFI_DISCONNECT_CONTROLLER)(IN EFI_HANDLE ControllerHandle, IN EFI_HANDLE DriverImageHandle OPTIONAL, IN EFI_HANDLE ChildHandle OPTIONAL)
Definition: UefiSpec.h:379
EFI_STATUS(EFIAPI * EFI_STALL)(IN UINTN Microseconds)
Definition: UefiSpec.h:1001
EFI_STATUS(EFIAPI * EFI_CONVERT_POINTER)(IN UINTN DebugDisposition, IN OUT VOID **Address)
Definition: UefiSpec.h:407
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:494
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:898
VOID(EFIAPI * EFI_EVENT_NOTIFY)(IN EFI_EVENT Event, IN VOID *Context)
Definition: UefiSpec.h:442
EFI_STATUS(EFIAPI * EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES)(IN EFI_HANDLE Handle,...)
Definition: UefiSpec.h:1268
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:749
EFI_TIMER_DELAY
Definition: UefiSpec.h:506
@ TimerCancel
Definition: UefiSpec.h:510
@ TimerRelative
Definition: UefiSpec.h:518
@ TimerPeriodic
Definition: UefiSpec.h:514
EFI_STATUS(EFIAPI * EFI_QUERY_VARIABLE_INFO)(IN UINT32 Attributes, OUT UINT64 *MaximumVariableStorageSize, OUT UINT64 *RemainingVariableStorageSize, OUT UINT64 *MaximumVariableSize)
Definition: UefiSpec.h:1770
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:1173
VOID(EFIAPI * EFI_COPY_MEM)(IN VOID *Destination, IN VOID *Source, IN UINTN Length)
Definition: UefiSpec.h:1119
EFI_STATUS(EFIAPI * EFI_LOCATE_PROTOCOL)(IN EFI_GUID *Protocol, IN VOID *Registration OPTIONAL, OUT VOID **Interface)
Definition: UefiSpec.h:1600
EFI_STATUS(EFIAPI * EFI_HANDLE_PROTOCOL)(IN EFI_HANDLE Handle, IN EFI_GUID *Protocol, OUT VOID **Interface)
Definition: UefiSpec.h:1290
EFI_STATUS(EFIAPI * EFI_EXIT_BOOT_SERVICES)(IN EFI_HANDLE ImageHandle, IN UINTN MapKey)
Definition: UefiSpec.h:985
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:1500
EFI_STATUS(EFIAPI * EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES)(IN OUT EFI_HANDLE *Handle,...)
Definition: UefiSpec.h:1198
EFI_STATUS(EFIAPI * EFI_UPDATE_CAPSULE)(IN EFI_CAPSULE_HEADER **CapsuleHeaderArray, IN UINTN CapsuleCount, IN EFI_PHYSICAL_ADDRESS ScatterGatherList OPTIONAL)
Definition: UefiSpec.h:1708
EFI_STATUS(EFIAPI * EFI_GET_NEXT_MONOTONIC_COUNT)(OUT UINT64 *Count)
Definition: UefiSpec.h:1066
EFI_TPL(EFIAPI * EFI_RAISE_TPL)(IN EFI_TPL NewTpl)
Definition: UefiSpec.h:629
EFI_STATUS(EFIAPI * EFI_REINSTALL_PROTOCOL_INTERFACE)(IN EFI_HANDLE Handle, IN EFI_GUID *Protocol, IN VOID *OldInterface, IN VOID *NewInterface)
Definition: UefiSpec.h:1223
EFI_STATUS(EFIAPI * EFI_SET_WATCHDOG_TIMER)(IN UINTN Timeout, IN UINT64 WatchdogCode, IN UINTN DataSize, IN CHAR16 *WatchdogData OPTIONAL)
Definition: UefiSpec.h:1023
EFI_STATUS(EFIAPI * EFI_SIGNAL_EVENT)(IN EFI_EVENT Event)
Definition: UefiSpec.h:555
EFI_STATUS(EFIAPI * EFI_WAIT_FOR_EVENT)(IN UINTN NumberOfEvents, IN EFI_EVENT *Event, OUT UINTN *Index)
Definition: UefiSpec.h:575
VOID(EFIAPI * EFI_SET_MEM)(IN VOID *Buffer, IN UINTN Size, IN UINT8 Value)
Definition: UefiSpec.h:1135
EFI_STATUS(EFIAPI * EFI_UNINSTALL_PROTOCOL_INTERFACE)(IN EFI_HANDLE Handle, IN EFI_GUID *Protocol, IN VOID *Interface)
Definition: UefiSpec.h:1249
EFI_STATUS(EFIAPI * EFI_IMAGE_ENTRY_POINT)(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
Definition: UefiSpec.h:2053
EFI_STATUS(EFIAPI * EFI_FREE_PAGES)(IN EFI_PHYSICAL_ADDRESS Memory, IN UINTN Pages)
Definition: UefiSpec.h:209
EFI_LOCATE_SEARCH_TYPE
Definition: UefiSpec.h:1460
@ ByProtocol
Definition: UefiSpec.h:1473
@ ByRegisterNotify
Definition: UefiSpec.h:1468
@ AllHandles
Definition: UefiSpec.h:1464
EFI_STATUS(EFIAPI * EFI_CLOSE_EVENT)(IN EFI_EVENT Event)
Definition: UefiSpec.h:591
EFI_STATUS(EFIAPI * EFI_GET_TIME)(OUT EFI_TIME *Time, OUT EFI_TIME_CAPABILITIES *Capabilities OPTIONAL)
Definition: UefiSpec.h:801
VOID(EFIAPI * EFI_RESET_SYSTEM)(IN EFI_RESET_TYPE ResetType, IN EFI_STATUS ResetStatus, IN UINTN DataSize, IN VOID *ResetData OPTIONAL)
Definition: UefiSpec.h:1047
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:312
EFI_STATUS(EFIAPI * EFI_SET_WAKEUP_TIME)(IN BOOLEAN Enable, IN EFI_TIME *Time OPTIONAL)
Definition: UefiSpec.h:861
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:188
EFI_STATUS(EFIAPI * EFI_FREE_POOL)(IN VOID *Buffer)
Definition: UefiSpec.h:287
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:1739
EFI_STATUS(EFIAPI * EFI_CHECK_EVENT)(IN EFI_EVENT Event)
Definition: UefiSpec.h:607
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:1573
EFI_STATUS(EFIAPI * EFI_GET_WAKEUP_TIME)(OUT BOOLEAN *Enabled, OUT BOOLEAN *Pending, OUT EFI_TIME *Time)
Definition: UefiSpec.h:839
EFI_STATUS(EFIAPI * EFI_GET_NEXT_VARIABLE_NAME)(IN OUT UINTN *VariableNameSize, IN OUT CHAR16 *VariableName, IN OUT EFI_GUID *VendorGuid)
Definition: UefiSpec.h:707
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:1332
EFI_STATUS(EFIAPI * EFI_SET_TIMER)(IN EFI_EVENT Event, IN EFI_TIMER_DELAY Type, IN UINT64 TriggerTime)
Definition: UefiSpec.h:539
EFI_STATUS(EFIAPI * EFI_REGISTER_PROTOCOL_NOTIFY)(IN EFI_GUID *Protocol, IN EFI_EVENT Event, OUT VOID **Registration)
Definition: UefiSpec.h:1451
UINT16 FilePathListLength
Definition: UefiSpec.h:2078
UINT32 Attributes
Definition: UefiSpec.h:2072
EFI_TABLE_HEADER Hdr
Definition: UefiSpec.h:1868
EFI_PHYSICAL_ADDRESS DataBlock
Definition: UefiSpec.h:1619
EFI_PHYSICAL_ADDRESS ContinuationPointer
Definition: UefiSpec.h:1626
UINT32 CapsuleImageSize
Definition: UefiSpec.h:1653
EFI_GUID CapsuleGuid
Definition: UefiSpec.h:1637
UINT32 CapsuleArrayNumber
Definition: UefiSpec.h:1665
UINT32 BootOptionCrc
Definition: UefiSpec.h:2181
UINT16 BootOption
Definition: UefiSpec.h:2186
EFI_BOOT_KEY_DATA KeyData
Definition: UefiSpec.h:2175
EFI_VIRTUAL_ADDRESS VirtualStart
Definition: UefiSpec.h:146
EFI_PHYSICAL_ADDRESS PhysicalStart
Definition: UefiSpec.h:140
EFI_TABLE_HEADER Hdr
Definition: UefiSpec.h:1817
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL * StdErr
Definition: UefiSpec.h:2020
EFI_BOOT_SERVICES * BootServices
Definition: UefiSpec.h:2028
EFI_CONFIGURATION_TABLE * ConfigurationTable
Definition: UefiSpec.h:2037
UINT32 FirmwareRevision
Definition: UefiSpec.h:1991
EFI_HANDLE ConsoleInHandle
Definition: UefiSpec.h:1996
EFI_HANDLE ConsoleOutHandle
Definition: UefiSpec.h:2005
EFI_RUNTIME_SERVICES * RuntimeServices
Definition: UefiSpec.h:2024
EFI_HANDLE StandardErrorHandle
Definition: UefiSpec.h:2015
EFI_SIMPLE_TEXT_INPUT_PROTOCOL * ConIn
Definition: UefiSpec.h:2001
CHAR16 * FirmwareVendor
Definition: UefiSpec.h:1986
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL * ConOut
Definition: UefiSpec.h:2010
EFI_TABLE_HEADER Hdr
Definition: UefiSpec.h:1981
UINTN NumberOfTableEntries
Definition: UefiSpec.h:2032
Definition: Base.h:213
UINT32 ControlPressed
Definition: UefiSpec.h:2139
UINT32 SysReqPressed
Definition: UefiSpec.h:2155
UINT32 MenuPressed
Definition: UefiSpec.h:2151
UINT32 LogoPressed
Definition: UefiSpec.h:2147
UINT32 InputKeyCount
Definition: UefiSpec.h:2162
UINT32 ShiftPressed
Definition: UefiSpec.h:2135