TianoCore EDK2 master
UefiSpec.h
Go to the documentation of this file.
1
15#ifndef __UEFI_SPEC_H__
16#define __UEFI_SPEC_H__
17
18#include <Uefi/UefiMultiPhase.h>
19
20#include <Protocol/DevicePath.h>
24
28typedef enum {
47
48//
49// Bit definitions for EFI_TIME.Daylight
50//
51#define EFI_TIME_ADJUST_DAYLIGHT 0x01
52#define EFI_TIME_IN_DAYLIGHT 0x02
53
57#define EFI_UNSPECIFIED_TIMEZONE 0x07FF
58
59//
60// Memory cacheability attributes
61//
62#define EFI_MEMORY_UC 0x0000000000000001ULL
63#define EFI_MEMORY_WC 0x0000000000000002ULL
64#define EFI_MEMORY_WT 0x0000000000000004ULL
65#define EFI_MEMORY_WB 0x0000000000000008ULL
66#define EFI_MEMORY_UCE 0x0000000000000010ULL
67//
68// Physical memory protection attributes
69//
70// Note: UEFI spec 2.5 and following: use EFI_MEMORY_RO as write-protected physical memory
71// protection attribute. Also, EFI_MEMORY_WP means cacheability attribute.
72//
73#define EFI_MEMORY_WP 0x0000000000001000ULL
74#define EFI_MEMORY_RP 0x0000000000002000ULL
75#define EFI_MEMORY_XP 0x0000000000004000ULL
76#define EFI_MEMORY_RO 0x0000000000020000ULL
77//
78// Physical memory persistence attribute.
79// The memory region supports byte-addressable non-volatility.
80//
81#define EFI_MEMORY_NV 0x0000000000008000ULL
82//
83// The memory region provides higher reliability relative to other memory in the system.
84// If all memory has the same reliability, then this bit is not used.
85//
86#define EFI_MEMORY_MORE_RELIABLE 0x0000000000010000ULL
87
88//
89// Note: UEFI spec 2.8 and following:
90//
91// Specific-purpose memory (SPM). The memory is earmarked for
92// specific purposes such as for specific device drivers or applications.
93// The SPM attribute serves as a hint to the OS to avoid allocating this
94// memory for core OS data or code that can not be relocated.
95//
96#define EFI_MEMORY_SP 0x0000000000040000ULL
97//
98// If this flag is set, the memory region is capable of being
99// protected with the CPU's memory cryptographic
100// capabilities. If this flag is clear, the memory region is not
101// capable of being protected with the CPU's memory
102// cryptographic capabilities or the CPU does not support CPU
103// memory cryptographic capabilities.
104//
105#define EFI_MEMORY_CPU_CRYPTO 0x0000000000080000ULL
106
107//
108// Runtime memory attribute
109//
110#define EFI_MEMORY_RUNTIME 0x8000000000000000ULL
111
112//
113// Attributes bitmasks, grouped by type
114//
115#define EFI_CACHE_ATTRIBUTE_MASK (EFI_MEMORY_UC | EFI_MEMORY_WC | EFI_MEMORY_WT | EFI_MEMORY_WB | EFI_MEMORY_UCE | EFI_MEMORY_WP)
116#define EFI_MEMORY_ACCESS_MASK (EFI_MEMORY_RP | EFI_MEMORY_XP | EFI_MEMORY_RO)
117#define EFI_MEMORY_ATTRIBUTE_MASK (EFI_MEMORY_ACCESS_MASK | EFI_MEMORY_SP | EFI_MEMORY_CPU_CRYPTO)
118
122#define EFI_MEMORY_DESCRIPTOR_VERSION 1
123
127typedef struct {
133 UINT32 Type;
158 UINT64 Attribute;
160
185typedef
187(EFIAPI *EFI_ALLOCATE_PAGES)(
189 IN EFI_MEMORY_TYPE MemoryType,
190 IN UINTN Pages,
192 );
193
206typedef
208(EFIAPI *EFI_FREE_PAGES)(
210 IN UINTN Pages
211 );
212
238typedef
240(EFIAPI *EFI_GET_MEMORY_MAP)(
241 IN OUT UINTN *MemoryMapSize,
242 OUT EFI_MEMORY_DESCRIPTOR *MemoryMap,
243 OUT UINTN *MapKey,
244 OUT UINTN *DescriptorSize,
245 OUT UINT32 *DescriptorVersion
246 );
247
267typedef
269(EFIAPI *EFI_ALLOCATE_POOL)(
270 IN EFI_MEMORY_TYPE PoolType,
271 IN UINTN Size,
272 OUT VOID **Buffer
273 );
274
284typedef
286(EFIAPI *EFI_FREE_POOL)(
287 IN VOID *Buffer
288 );
289
309typedef
312 IN UINTN MemoryMapSize,
313 IN UINTN DescriptorSize,
314 IN UINT32 DescriptorVersion,
315 IN EFI_MEMORY_DESCRIPTOR *VirtualMap
316 );
317
343typedef
345(EFIAPI *EFI_CONNECT_CONTROLLER)(
346 IN EFI_HANDLE ControllerHandle,
347 IN EFI_HANDLE *DriverImageHandle OPTIONAL,
348 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL,
349 IN BOOLEAN Recursive
350 );
351
376typedef
379 IN EFI_HANDLE ControllerHandle,
380 IN EFI_HANDLE DriverImageHandle OPTIONAL,
381 IN EFI_HANDLE ChildHandle OPTIONAL
382 );
383
384//
385// ConvertPointer DebugDisposition type.
386//
387#define EFI_OPTIONAL_PTR 0x00000001
388
404typedef
406(EFIAPI *EFI_CONVERT_POINTER)(
407 IN UINTN DebugDisposition,
408 IN OUT VOID **Address
409 );
410
411//
412// These types can be ORed together as needed - for example,
413// EVT_TIMER might be Ored with EVT_NOTIFY_WAIT or
414// EVT_NOTIFY_SIGNAL.
415//
416#define EVT_TIMER 0x80000000
417#define EVT_RUNTIME 0x40000000
418#define EVT_NOTIFY_WAIT 0x00000100
419#define EVT_NOTIFY_SIGNAL 0x00000200
420
421#define EVT_SIGNAL_EXIT_BOOT_SERVICES 0x00000201
422#define EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE 0x60000202
423
424//
425// The event's NotifyContext pointer points to a runtime memory
426// address.
427// The event is deprecated in UEFI2.0 and later specifications.
428//
429#define EVT_RUNTIME_CONTEXT 0x20000000
430
439typedef
440VOID
441(EFIAPI *EFI_EVENT_NOTIFY)(
442 IN EFI_EVENT Event,
443 IN VOID *Context
444 );
445
462typedef
464(EFIAPI *EFI_CREATE_EVENT)(
465 IN UINT32 Type,
466 IN EFI_TPL NotifyTpl,
468 IN VOID *NotifyContext,
469 OUT EFI_EVENT *Event
470 );
471
491typedef
493(EFIAPI *EFI_CREATE_EVENT_EX)(
494 IN UINT32 Type,
495 IN EFI_TPL NotifyTpl,
497 IN CONST VOID *NotifyContext OPTIONAL,
498 IN CONST EFI_GUID *EventGroup OPTIONAL,
499 OUT EFI_EVENT *Event
500 );
501
505typedef enum {
519
536typedef
538(EFIAPI *EFI_SET_TIMER)(
539 IN EFI_EVENT Event,
540 IN EFI_TIMER_DELAY Type,
541 IN UINT64 TriggerTime
542 );
543
552typedef
554(EFIAPI *EFI_SIGNAL_EVENT)(
555 IN EFI_EVENT Event
556 );
557
572typedef
574(EFIAPI *EFI_WAIT_FOR_EVENT)(
575 IN UINTN NumberOfEvents,
576 IN EFI_EVENT *Event,
577 OUT UINTN *Index
578 );
579
588typedef
590(EFIAPI *EFI_CLOSE_EVENT)(
591 IN EFI_EVENT Event
592 );
593
604typedef
606(EFIAPI *EFI_CHECK_EVENT)(
607 IN EFI_EVENT Event
608 );
609
610//
611// Task priority level
612//
613#define TPL_APPLICATION 4
614#define TPL_CALLBACK 8
615#define TPL_NOTIFY 16
616#define TPL_HIGH_LEVEL 31
617
626typedef
628(EFIAPI *EFI_RAISE_TPL)(
629 IN EFI_TPL NewTpl
630 );
631
638typedef
639VOID
640(EFIAPI *EFI_RESTORE_TPL)(
641 IN EFI_TPL OldTpl
642 );
643
668typedef
670(EFIAPI *EFI_GET_VARIABLE)(
671 IN CHAR16 *VariableName,
672 IN EFI_GUID *VendorGuid,
673 OUT UINT32 *Attributes OPTIONAL,
674 IN OUT UINTN *DataSize,
675 OUT VOID *Data OPTIONAL
676 );
677
704typedef
707 IN OUT UINTN *VariableNameSize,
708 IN OUT CHAR16 *VariableName,
709 IN OUT EFI_GUID *VendorGuid
710 );
711
746typedef
748(EFIAPI *EFI_SET_VARIABLE)(
749 IN CHAR16 *VariableName,
750 IN EFI_GUID *VendorGuid,
751 IN UINT32 Attributes,
752 IN UINTN DataSize,
753 IN VOID *Data
754 );
755
760typedef struct {
774 UINT32 Accuracy;
782 BOOLEAN SetsToZero;
784
798typedef
800(EFIAPI *EFI_GET_TIME)(
801 OUT EFI_TIME *Time,
803 );
804
815typedef
817(EFIAPI *EFI_SET_TIME)(
818 IN EFI_TIME *Time
819 );
820
836typedef
838(EFIAPI *EFI_GET_WAKEUP_TIME)(
839 OUT BOOLEAN *Enabled,
840 OUT BOOLEAN *Pending,
841 OUT EFI_TIME *Time
842 );
843
858typedef
860(EFIAPI *EFI_SET_WAKEUP_TIME)(
861 IN BOOLEAN Enable,
862 IN EFI_TIME *Time OPTIONAL
863 );
864
895typedef
897(EFIAPI *EFI_IMAGE_LOAD)(
898 IN BOOLEAN BootPolicy,
899 IN EFI_HANDLE ParentImageHandle,
900 IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
901 IN VOID *SourceBuffer OPTIONAL,
902 IN UINTN SourceSize,
903 OUT EFI_HANDLE *ImageHandle
904 );
905
920typedef
922(EFIAPI *EFI_IMAGE_START)(
923 IN EFI_HANDLE ImageHandle,
924 OUT UINTN *ExitDataSize,
925 OUT CHAR16 **ExitData OPTIONAL
926 );
927
948typedef
950(EFIAPI *EFI_EXIT)(
951 IN EFI_HANDLE ImageHandle,
952 IN EFI_STATUS ExitStatus,
953 IN UINTN ExitDataSize,
954 IN CHAR16 *ExitData OPTIONAL
955 );
956
966typedef
968(EFIAPI *EFI_IMAGE_UNLOAD)(
969 IN EFI_HANDLE ImageHandle
970 );
971
982typedef
984(EFIAPI *EFI_EXIT_BOOT_SERVICES)(
985 IN EFI_HANDLE ImageHandle,
986 IN UINTN MapKey
987 );
988
998typedef
1000(EFIAPI *EFI_STALL)(
1001 IN UINTN Microseconds
1002 );
1003
1020typedef
1022(EFIAPI *EFI_SET_WATCHDOG_TIMER)(
1023 IN UINTN Timeout,
1024 IN UINT64 WatchdogCode,
1025 IN UINTN DataSize,
1026 IN CHAR16 *WatchdogData OPTIONAL
1027 );
1028
1044typedef
1045VOID
1046(EFIAPI *EFI_RESET_SYSTEM)(
1047 IN EFI_RESET_TYPE ResetType,
1048 IN EFI_STATUS ResetStatus,
1049 IN UINTN DataSize,
1050 IN VOID *ResetData OPTIONAL
1051 );
1052
1063typedef
1066 OUT UINT64 *Count
1067 );
1068
1079typedef
1082 OUT UINT32 *HighCount
1083 );
1084
1100typedef
1102(EFIAPI *EFI_CALCULATE_CRC32)(
1103 IN VOID *Data,
1104 IN UINTN DataSize,
1105 OUT UINT32 *Crc32
1106 );
1107
1116typedef
1117VOID
1118(EFIAPI *EFI_COPY_MEM)(
1119 IN VOID *Destination,
1120 IN VOID *Source,
1121 IN UINTN Length
1122 );
1123
1132typedef
1133VOID
1134(EFIAPI *EFI_SET_MEM)(
1135 IN VOID *Buffer,
1136 IN UINTN Size,
1137 IN UINT8 Value
1138 );
1139
1143typedef enum {
1149
1170typedef
1173 IN OUT EFI_HANDLE *Handle,
1174 IN EFI_GUID *Protocol,
1175 IN EFI_INTERFACE_TYPE InterfaceType,
1176 IN VOID *Interface
1177 );
1178
1195typedef
1198 IN OUT EFI_HANDLE *Handle,
1199 ...
1200 );
1201
1220typedef
1223 IN EFI_HANDLE Handle,
1224 IN EFI_GUID *Protocol,
1225 IN VOID *OldInterface,
1226 IN VOID *NewInterface
1227 );
1228
1246typedef
1249 IN EFI_HANDLE Handle,
1250 IN EFI_GUID *Protocol,
1251 IN VOID *Interface
1252 );
1253
1265typedef
1268 IN EFI_HANDLE Handle,
1269 ...
1270 );
1271
1287typedef
1289(EFIAPI *EFI_HANDLE_PROTOCOL)(
1290 IN EFI_HANDLE Handle,
1291 IN EFI_GUID *Protocol,
1292 OUT VOID **Interface
1293 );
1294
1295#define EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL 0x00000001
1296#define EFI_OPEN_PROTOCOL_GET_PROTOCOL 0x00000002
1297#define EFI_OPEN_PROTOCOL_TEST_PROTOCOL 0x00000004
1298#define EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER 0x00000008
1299#define EFI_OPEN_PROTOCOL_BY_DRIVER 0x00000010
1300#define EFI_OPEN_PROTOCOL_EXCLUSIVE 0x00000020
1301
1329typedef
1331(EFIAPI *EFI_OPEN_PROTOCOL)(
1332 IN EFI_HANDLE Handle,
1333 IN EFI_GUID *Protocol,
1334 OUT VOID **Interface OPTIONAL,
1335 IN EFI_HANDLE AgentHandle,
1336 IN EFI_HANDLE ControllerHandle,
1337 IN UINT32 Attributes
1338 );
1339
1361typedef
1363(EFIAPI *EFI_CLOSE_PROTOCOL)(
1364 IN EFI_HANDLE Handle,
1365 IN EFI_GUID *Protocol,
1366 IN EFI_HANDLE AgentHandle,
1367 IN EFI_HANDLE ControllerHandle
1368 );
1369
1373typedef struct {
1374 EFI_HANDLE AgentHandle;
1375 EFI_HANDLE ControllerHandle;
1376 UINT32 Attributes;
1377 UINT32 OpenCount;
1379
1395typedef
1398 IN EFI_HANDLE Handle,
1399 IN EFI_GUID *Protocol,
1401 OUT UINTN *EntryCount
1402 );
1403
1425typedef
1427(EFIAPI *EFI_PROTOCOLS_PER_HANDLE)(
1428 IN EFI_HANDLE Handle,
1429 OUT EFI_GUID ***ProtocolBuffer,
1430 OUT UINTN *ProtocolBufferCount
1431 );
1432
1448typedef
1451 IN EFI_GUID *Protocol,
1452 IN EFI_EVENT Event,
1453 OUT VOID **Registration
1454 );
1455
1459typedef enum {
1474
1497typedef
1499(EFIAPI *EFI_LOCATE_HANDLE)(
1500 IN EFI_LOCATE_SEARCH_TYPE SearchType,
1501 IN EFI_GUID *Protocol OPTIONAL,
1502 IN VOID *SearchKey OPTIONAL,
1503 IN OUT UINTN *BufferSize,
1504 OUT EFI_HANDLE *Buffer
1505 );
1506
1523typedef
1525(EFIAPI *EFI_LOCATE_DEVICE_PATH)(
1526 IN EFI_GUID *Protocol,
1527 IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath,
1528 OUT EFI_HANDLE *Device
1529 );
1530
1544typedef
1547 IN EFI_GUID *Guid,
1548 IN VOID *Table
1549 );
1550
1570typedef
1572(EFIAPI *EFI_LOCATE_HANDLE_BUFFER)(
1573 IN EFI_LOCATE_SEARCH_TYPE SearchType,
1574 IN EFI_GUID *Protocol OPTIONAL,
1575 IN VOID *SearchKey OPTIONAL,
1576 OUT UINTN *NoHandles,
1577 OUT EFI_HANDLE **Buffer
1578 );
1579
1597typedef
1599(EFIAPI *EFI_LOCATE_PROTOCOL)(
1600 IN EFI_GUID *Protocol,
1601 IN VOID *Registration OPTIONAL,
1602 OUT VOID **Interface
1603 );
1604
1608typedef struct {
1612 UINT64 Length;
1613 union {
1626 } Union;
1628
1632typedef struct {
1648 UINT32 Flags;
1654
1660typedef struct {
1668 VOID *CapsulePtr[1];
1670
1671#define CAPSULE_FLAGS_PERSIST_ACROSS_RESET 0x00010000
1672#define CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE 0x00020000
1673#define CAPSULE_FLAGS_INITIATE_RESET 0x00040000
1674
1705typedef
1707(EFIAPI *EFI_UPDATE_CAPSULE)(
1708 IN EFI_CAPSULE_HEADER **CapsuleHeaderArray,
1709 IN UINTN CapsuleCount,
1710 IN EFI_PHYSICAL_ADDRESS ScatterGatherList OPTIONAL
1711 );
1712
1736typedef
1739 IN EFI_CAPSULE_HEADER **CapsuleHeaderArray,
1740 IN UINTN CapsuleCount,
1741 OUT UINT64 *MaximumCapsuleSize,
1742 OUT EFI_RESET_TYPE *ResetType
1743 );
1744
1767typedef
1769(EFIAPI *EFI_QUERY_VARIABLE_INFO)(
1770 IN UINT32 Attributes,
1771 OUT UINT64 *MaximumVariableStorageSize,
1772 OUT UINT64 *RemainingVariableStorageSize,
1773 OUT UINT64 *MaximumVariableSize
1774 );
1775
1776//
1777// Firmware should stop at a firmware user interface on next boot
1778//
1779#define EFI_OS_INDICATIONS_BOOT_TO_FW_UI 0x0000000000000001
1780#define EFI_OS_INDICATIONS_TIMESTAMP_REVOCATION 0x0000000000000002
1781#define EFI_OS_INDICATIONS_FILE_CAPSULE_DELIVERY_SUPPORTED 0x0000000000000004
1782#define EFI_OS_INDICATIONS_FMP_CAPSULE_SUPPORTED 0x0000000000000008
1783#define EFI_OS_INDICATIONS_CAPSULE_RESULT_VAR_SUPPORTED 0x0000000000000010
1784#define EFI_OS_INDICATIONS_START_PLATFORM_RECOVERY 0x0000000000000040
1785#define EFI_OS_INDICATIONS_JSON_CONFIG_DATA_REFRESH 0x0000000000000080
1786
1787//
1788// EFI Runtime Services Table
1789//
1790#define EFI_SYSTEM_TABLE_SIGNATURE SIGNATURE_64 ('I','B','I',' ','S','Y','S','T')
1791#define EFI_2_80_SYSTEM_TABLE_REVISION ((2 << 16) | (80))
1792#define EFI_2_70_SYSTEM_TABLE_REVISION ((2 << 16) | (70))
1793#define EFI_2_60_SYSTEM_TABLE_REVISION ((2 << 16) | (60))
1794#define EFI_2_50_SYSTEM_TABLE_REVISION ((2 << 16) | (50))
1795#define EFI_2_40_SYSTEM_TABLE_REVISION ((2 << 16) | (40))
1796#define EFI_2_31_SYSTEM_TABLE_REVISION ((2 << 16) | (31))
1797#define EFI_2_30_SYSTEM_TABLE_REVISION ((2 << 16) | (30))
1798#define EFI_2_20_SYSTEM_TABLE_REVISION ((2 << 16) | (20))
1799#define EFI_2_10_SYSTEM_TABLE_REVISION ((2 << 16) | (10))
1800#define EFI_2_00_SYSTEM_TABLE_REVISION ((2 << 16) | (00))
1801#define EFI_1_10_SYSTEM_TABLE_REVISION ((1 << 16) | (10))
1802#define EFI_1_02_SYSTEM_TABLE_REVISION ((1 << 16) | (02))
1803#define EFI_SYSTEM_TABLE_REVISION EFI_2_70_SYSTEM_TABLE_REVISION
1804#define EFI_SPECIFICATION_VERSION EFI_SYSTEM_TABLE_REVISION
1805
1806#define EFI_RUNTIME_SERVICES_SIGNATURE SIGNATURE_64 ('R','U','N','T','S','E','R','V')
1807#define EFI_RUNTIME_SERVICES_REVISION EFI_SPECIFICATION_VERSION
1808
1812typedef struct {
1817
1818 //
1819 // Time Services
1820 //
1825
1826 //
1827 // Virtual Memory Services
1828 //
1829 EFI_SET_VIRTUAL_ADDRESS_MAP SetVirtualAddressMap;
1831
1832 //
1833 // Variable Services
1834 //
1835 EFI_GET_VARIABLE GetVariable;
1836 EFI_GET_NEXT_VARIABLE_NAME GetNextVariableName;
1837 EFI_SET_VARIABLE SetVariable;
1838
1839 //
1840 // Miscellaneous Services
1841 //
1842 EFI_GET_NEXT_HIGH_MONO_COUNT GetNextHighMonotonicCount;
1844
1845 //
1846 // UEFI 2.0 Capsule Services
1847 //
1850
1851 //
1852 // Miscellaneous UEFI 2.0 Service
1853 //
1854 EFI_QUERY_VARIABLE_INFO QueryVariableInfo;
1856
1857#define EFI_BOOT_SERVICES_SIGNATURE SIGNATURE_64 ('B','O','O','T','S','E','R','V')
1858#define EFI_BOOT_SERVICES_REVISION EFI_SPECIFICATION_VERSION
1859
1863typedef struct {
1868
1869 //
1870 // Task Priority Services
1871 //
1872 EFI_RAISE_TPL RaiseTPL;
1873 EFI_RESTORE_TPL RestoreTPL;
1874
1875 //
1876 // Memory Services
1877 //
1880 EFI_GET_MEMORY_MAP GetMemoryMap;
1883
1884 //
1885 // Event & Timer Services
1886 //
1887 EFI_CREATE_EVENT CreateEvent;
1888 EFI_SET_TIMER SetTimer;
1889 EFI_WAIT_FOR_EVENT WaitForEvent;
1890 EFI_SIGNAL_EVENT SignalEvent;
1891 EFI_CLOSE_EVENT CloseEvent;
1892 EFI_CHECK_EVENT CheckEvent;
1893
1894 //
1895 // Protocol Handler Services
1896 //
1897 EFI_INSTALL_PROTOCOL_INTERFACE InstallProtocolInterface;
1898 EFI_REINSTALL_PROTOCOL_INTERFACE ReinstallProtocolInterface;
1899 EFI_UNINSTALL_PROTOCOL_INTERFACE UninstallProtocolInterface;
1900 EFI_HANDLE_PROTOCOL HandleProtocol;
1901 VOID *Reserved;
1902 EFI_REGISTER_PROTOCOL_NOTIFY RegisterProtocolNotify;
1903 EFI_LOCATE_HANDLE LocateHandle;
1904 EFI_LOCATE_DEVICE_PATH LocateDevicePath;
1905 EFI_INSTALL_CONFIGURATION_TABLE InstallConfigurationTable;
1906
1907 //
1908 // Image Services
1909 //
1910 EFI_IMAGE_LOAD LoadImage;
1911 EFI_IMAGE_START StartImage;
1912 EFI_EXIT Exit;
1913 EFI_IMAGE_UNLOAD UnloadImage;
1914 EFI_EXIT_BOOT_SERVICES ExitBootServices;
1915
1916 //
1917 // Miscellaneous Services
1918 //
1919 EFI_GET_NEXT_MONOTONIC_COUNT GetNextMonotonicCount;
1920 EFI_STALL Stall;
1921 EFI_SET_WATCHDOG_TIMER SetWatchdogTimer;
1922
1923 //
1924 // DriverSupport Services
1925 //
1926 EFI_CONNECT_CONTROLLER ConnectController;
1927 EFI_DISCONNECT_CONTROLLER DisconnectController;
1928
1929 //
1930 // Open and Close Protocol Services
1931 //
1932 EFI_OPEN_PROTOCOL OpenProtocol;
1933 EFI_CLOSE_PROTOCOL CloseProtocol;
1934 EFI_OPEN_PROTOCOL_INFORMATION OpenProtocolInformation;
1935
1936 //
1937 // Library Services
1938 //
1939 EFI_PROTOCOLS_PER_HANDLE ProtocolsPerHandle;
1940 EFI_LOCATE_HANDLE_BUFFER LocateHandleBuffer;
1941 EFI_LOCATE_PROTOCOL LocateProtocol;
1942 EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES InstallMultipleProtocolInterfaces;
1943 EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES UninstallMultipleProtocolInterfaces;
1944
1945 //
1946 // 32-bit CRC Services
1947 //
1949
1950 //
1951 // Miscellaneous Services
1952 //
1955 EFI_CREATE_EVENT_EX CreateEventEx;
1957
1962typedef struct {
1970 VOID *VendorTable;
1972
1976typedef struct {
2038
2050typedef
2052(EFIAPI *EFI_IMAGE_ENTRY_POINT)(
2053 IN EFI_HANDLE ImageHandle,
2054 IN EFI_SYSTEM_TABLE *SystemTable
2055 );
2056
2057//
2058// EFI Load Option. This data structure describes format of UEFI boot option variables.
2059//
2060// NOTE: EFI Load Option is a byte packed buffer of variable length fields.
2061// The first two fields have fixed length. They are declared as members of the
2062// EFI_LOAD_OPTION structure. All the other fields are variable length fields.
2063// They are listed in the comment block below for reference purposes.
2064//
2065#pragma pack(1)
2066typedef struct _EFI_LOAD_OPTION {
2082 // CHAR16 Description[];
2094 // EFI_DEVICE_PATH_PROTOCOL FilePathList[];
2102 // UINT8 OptionalData[];
2104#pragma pack()
2105
2106//
2107// EFI Load Options Attributes
2108//
2109#define LOAD_OPTION_ACTIVE 0x00000001
2110#define LOAD_OPTION_FORCE_RECONNECT 0x00000002
2111#define LOAD_OPTION_HIDDEN 0x00000008
2112#define LOAD_OPTION_CATEGORY 0x00001F00
2113
2114#define LOAD_OPTION_CATEGORY_BOOT 0x00000000
2115#define LOAD_OPTION_CATEGORY_APP 0x00000100
2116
2117#define EFI_BOOT_OPTION_SUPPORT_KEY 0x00000001
2118#define EFI_BOOT_OPTION_SUPPORT_APP 0x00000002
2119#define EFI_BOOT_OPTION_SUPPORT_SYSPREP 0x00000010
2120#define EFI_BOOT_OPTION_SUPPORT_COUNT 0x00000300
2121
2125typedef union {
2126 struct {
2130 UINT32 Revision : 8;
2134 UINT32 ShiftPressed : 1;
2138 UINT32 ControlPressed : 1;
2142 UINT32 AltPressed : 1;
2146 UINT32 LogoPressed : 1;
2150 UINT32 MenuPressed : 1;
2154 UINT32 SysReqPressed : 1;
2155 UINT32 Reserved : 16;
2161 UINT32 InputKeyCount : 2;
2162 } Options;
2163 UINT32 PackedValue;
2165
2169#pragma pack(1)
2170typedef struct {
2191 // EFI_INPUT_KEY Keys[];
2193#pragma pack()
2194
2195//
2196// EFI File location to boot from on removable media devices
2197//
2198#define EFI_REMOVABLE_MEDIA_FILE_NAME_IA32 L"\\EFI\\BOOT\\BOOTIA32.EFI"
2199#define EFI_REMOVABLE_MEDIA_FILE_NAME_IA64 L"\\EFI\\BOOT\\BOOTIA64.EFI"
2200#define EFI_REMOVABLE_MEDIA_FILE_NAME_X64 L"\\EFI\\BOOT\\BOOTX64.EFI"
2201#define EFI_REMOVABLE_MEDIA_FILE_NAME_ARM L"\\EFI\\BOOT\\BOOTARM.EFI"
2202#define EFI_REMOVABLE_MEDIA_FILE_NAME_AARCH64 L"\\EFI\\BOOT\\BOOTAA64.EFI"
2203#define EFI_REMOVABLE_MEDIA_FILE_NAME_RISCV64 L"\\EFI\\BOOT\\BOOTRISCV64.EFI"
2204
2205#if !defined (EFI_REMOVABLE_MEDIA_FILE_NAME)
2206 #if defined (MDE_CPU_IA32)
2207#define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_IA32
2208 #elif defined (MDE_CPU_X64)
2209#define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_X64
2210 #elif defined (MDE_CPU_EBC)
2211 #elif defined (MDE_CPU_ARM)
2212#define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_ARM
2213 #elif defined (MDE_CPU_AARCH64)
2214#define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_AARCH64
2215 #elif defined (MDE_CPU_RISCV64)
2216#define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_RISCV64
2217 #else
2218 #error Unknown Processor Type
2219 #endif
2220#endif
2221
2222//
2223// The directory within the active EFI System Partition defined for delivery of capsule to firmware
2224//
2225#define EFI_CAPSULE_FILE_DIRECTORY L"\\EFI\\UpdateCapsule\\"
2226
2227#include <Uefi/UefiPxe.h>
2228#include <Uefi/UefiGpt.h>
2230
2231#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:599
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 QueryCapsuleCapabilities(IN EFI_CAPSULE_HEADER **CapsuleHeaderArray, IN UINTN CapsuleCount, OUT UINT64 *MaxiumCapsuleSize, OUT EFI_RESET_TYPE *ResetType)
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:1486
VOID EFIAPI Exit(IN EFI_STATUS Status)
UINT64 EFI_PHYSICAL_ADDRESS
Definition: UefiBaseType.h:49
UINT64 EFI_VIRTUAL_ADDRESS
Definition: UefiBaseType.h:54
RETURN_STATUS EFI_STATUS
Definition: UefiBaseType.h:28
VOID * EFI_EVENT
Definition: UefiBaseType.h:36
UINTN EFI_TPL
Definition: UefiBaseType.h:40
VOID * EFI_HANDLE
Definition: UefiBaseType.h:32
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:1363
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:1397
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:345
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:464
EFI_STATUS(EFIAPI * EFI_IMAGE_START)(IN EFI_HANDLE ImageHandle, OUT UINTN *ExitDataSize, OUT CHAR16 **ExitData OPTIONAL)
Definition: UefiSpec.h:922
EFI_STATUS(EFIAPI * EFI_CALCULATE_CRC32)(IN VOID *Data, IN UINTN DataSize, OUT UINT32 *Crc32)
Definition: UefiSpec.h:1102
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:670
EFI_STATUS(EFIAPI * EFI_ALLOCATE_POOL)(IN EFI_MEMORY_TYPE PoolType, IN UINTN Size, OUT VOID **Buffer)
Definition: UefiSpec.h:269
EFI_STATUS(EFIAPI * EFI_GET_NEXT_HIGH_MONO_COUNT)(OUT UINT32 *HighCount)
Definition: UefiSpec.h:1081
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:1525
EFI_STATUS(EFIAPI * EFI_IMAGE_UNLOAD)(IN EFI_HANDLE ImageHandle)
Definition: UefiSpec.h:968
EFI_STATUS(EFIAPI * EFI_EXIT)(IN EFI_HANDLE ImageHandle, IN EFI_STATUS ExitStatus, IN UINTN ExitDataSize, IN CHAR16 *ExitData OPTIONAL)
Definition: UefiSpec.h:950
VOID(EFIAPI * EFI_RESTORE_TPL)(IN EFI_TPL OldTpl)
Definition: UefiSpec.h:640
EFI_STATUS(EFIAPI * EFI_INSTALL_CONFIGURATION_TABLE)(IN EFI_GUID *Guid, IN VOID *Table)
Definition: UefiSpec.h:1546
EFI_STATUS(EFIAPI * EFI_PROTOCOLS_PER_HANDLE)(IN EFI_HANDLE Handle, OUT EFI_GUID ***ProtocolBuffer, OUT UINTN *ProtocolBufferCount)
Definition: UefiSpec.h:1427
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:240
EFI_INTERFACE_TYPE
Definition: UefiSpec.h:1143
@ EFI_NATIVE_INTERFACE
Definition: UefiSpec.h:1147
EFI_STATUS(EFIAPI * EFI_SET_TIME)(IN EFI_TIME *Time)
Definition: UefiSpec.h:817
EFI_STATUS(EFIAPI * EFI_DISCONNECT_CONTROLLER)(IN EFI_HANDLE ControllerHandle, IN EFI_HANDLE DriverImageHandle OPTIONAL, IN EFI_HANDLE ChildHandle OPTIONAL)
Definition: UefiSpec.h:378
EFI_STATUS(EFIAPI * EFI_STALL)(IN UINTN Microseconds)
Definition: UefiSpec.h:1000
EFI_STATUS(EFIAPI * EFI_CONVERT_POINTER)(IN UINTN DebugDisposition, IN OUT VOID **Address)
Definition: UefiSpec.h:406
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:493
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:897
VOID(EFIAPI * EFI_EVENT_NOTIFY)(IN EFI_EVENT Event, IN VOID *Context)
Definition: UefiSpec.h:441
EFI_STATUS(EFIAPI * EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES)(IN EFI_HANDLE Handle,...)
Definition: UefiSpec.h:1267
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:748
EFI_TIMER_DELAY
Definition: UefiSpec.h:505
@ TimerCancel
Definition: UefiSpec.h:509
@ TimerRelative
Definition: UefiSpec.h:517
@ TimerPeriodic
Definition: UefiSpec.h:513
EFI_STATUS(EFIAPI * EFI_QUERY_VARIABLE_INFO)(IN UINT32 Attributes, OUT UINT64 *MaximumVariableStorageSize, OUT UINT64 *RemainingVariableStorageSize, OUT UINT64 *MaximumVariableSize)
Definition: UefiSpec.h:1769
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:1172
VOID(EFIAPI * EFI_COPY_MEM)(IN VOID *Destination, IN VOID *Source, IN UINTN Length)
Definition: UefiSpec.h:1118
EFI_STATUS(EFIAPI * EFI_LOCATE_PROTOCOL)(IN EFI_GUID *Protocol, IN VOID *Registration OPTIONAL, OUT VOID **Interface)
Definition: UefiSpec.h:1599
EFI_STATUS(EFIAPI * EFI_HANDLE_PROTOCOL)(IN EFI_HANDLE Handle, IN EFI_GUID *Protocol, OUT VOID **Interface)
Definition: UefiSpec.h:1289
EFI_STATUS(EFIAPI * EFI_EXIT_BOOT_SERVICES)(IN EFI_HANDLE ImageHandle, IN UINTN MapKey)
Definition: UefiSpec.h:984
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:1499
EFI_STATUS(EFIAPI * EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES)(IN OUT EFI_HANDLE *Handle,...)
Definition: UefiSpec.h:1197
EFI_STATUS(EFIAPI * EFI_UPDATE_CAPSULE)(IN EFI_CAPSULE_HEADER **CapsuleHeaderArray, IN UINTN CapsuleCount, IN EFI_PHYSICAL_ADDRESS ScatterGatherList OPTIONAL)
Definition: UefiSpec.h:1707
EFI_STATUS(EFIAPI * EFI_GET_NEXT_MONOTONIC_COUNT)(OUT UINT64 *Count)
Definition: UefiSpec.h:1065
EFI_TPL(EFIAPI * EFI_RAISE_TPL)(IN EFI_TPL NewTpl)
Definition: UefiSpec.h:628
EFI_STATUS(EFIAPI * EFI_REINSTALL_PROTOCOL_INTERFACE)(IN EFI_HANDLE Handle, IN EFI_GUID *Protocol, IN VOID *OldInterface, IN VOID *NewInterface)
Definition: UefiSpec.h:1222
EFI_STATUS(EFIAPI * EFI_SET_WATCHDOG_TIMER)(IN UINTN Timeout, IN UINT64 WatchdogCode, IN UINTN DataSize, IN CHAR16 *WatchdogData OPTIONAL)
Definition: UefiSpec.h:1022
EFI_STATUS(EFIAPI * EFI_SIGNAL_EVENT)(IN EFI_EVENT Event)
Definition: UefiSpec.h:554
EFI_STATUS(EFIAPI * EFI_WAIT_FOR_EVENT)(IN UINTN NumberOfEvents, IN EFI_EVENT *Event, OUT UINTN *Index)
Definition: UefiSpec.h:574
VOID(EFIAPI * EFI_SET_MEM)(IN VOID *Buffer, IN UINTN Size, IN UINT8 Value)
Definition: UefiSpec.h:1134
EFI_STATUS(EFIAPI * EFI_UNINSTALL_PROTOCOL_INTERFACE)(IN EFI_HANDLE Handle, IN EFI_GUID *Protocol, IN VOID *Interface)
Definition: UefiSpec.h:1248
EFI_STATUS(EFIAPI * EFI_IMAGE_ENTRY_POINT)(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
Definition: UefiSpec.h:2052
EFI_STATUS(EFIAPI * EFI_FREE_PAGES)(IN EFI_PHYSICAL_ADDRESS Memory, IN UINTN Pages)
Definition: UefiSpec.h:208
EFI_LOCATE_SEARCH_TYPE
Definition: UefiSpec.h:1459
@ ByProtocol
Definition: UefiSpec.h:1472
@ ByRegisterNotify
Definition: UefiSpec.h:1467
@ AllHandles
Definition: UefiSpec.h:1463
EFI_STATUS(EFIAPI * EFI_CLOSE_EVENT)(IN EFI_EVENT Event)
Definition: UefiSpec.h:590
EFI_STATUS(EFIAPI * EFI_GET_TIME)(OUT EFI_TIME *Time, OUT EFI_TIME_CAPABILITIES *Capabilities OPTIONAL)
Definition: UefiSpec.h:800
VOID(EFIAPI * EFI_RESET_SYSTEM)(IN EFI_RESET_TYPE ResetType, IN EFI_STATUS ResetStatus, IN UINTN DataSize, IN VOID *ResetData OPTIONAL)
Definition: UefiSpec.h:1046
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:311
EFI_STATUS(EFIAPI * EFI_SET_WAKEUP_TIME)(IN BOOLEAN Enable, IN EFI_TIME *Time OPTIONAL)
Definition: UefiSpec.h:860
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:187
EFI_STATUS(EFIAPI * EFI_FREE_POOL)(IN VOID *Buffer)
Definition: UefiSpec.h:286
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:1738
EFI_STATUS(EFIAPI * EFI_CHECK_EVENT)(IN EFI_EVENT Event)
Definition: UefiSpec.h:606
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:1572
EFI_STATUS(EFIAPI * EFI_GET_WAKEUP_TIME)(OUT BOOLEAN *Enabled, OUT BOOLEAN *Pending, OUT EFI_TIME *Time)
Definition: UefiSpec.h:838
EFI_STATUS(EFIAPI * EFI_GET_NEXT_VARIABLE_NAME)(IN OUT UINTN *VariableNameSize, IN OUT CHAR16 *VariableName, IN OUT EFI_GUID *VendorGuid)
Definition: UefiSpec.h:706
EFI_ALLOCATE_TYPE
Definition: UefiSpec.h:28
@ AllocateMaxAddress
Definition: UefiSpec.h:37
@ AllocateAddress
Definition: UefiSpec.h:41
@ AllocateAnyPages
Definition: UefiSpec.h:32
@ MaxAllocateType
Definition: UefiSpec.h:45
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:1331
EFI_STATUS(EFIAPI * EFI_SET_TIMER)(IN EFI_EVENT Event, IN EFI_TIMER_DELAY Type, IN UINT64 TriggerTime)
Definition: UefiSpec.h:538
EFI_STATUS(EFIAPI * EFI_REGISTER_PROTOCOL_NOTIFY)(IN EFI_GUID *Protocol, IN EFI_EVENT Event, OUT VOID **Registration)
Definition: UefiSpec.h:1450
UINT16 FilePathListLength
Definition: UefiSpec.h:2077
UINT32 Attributes
Definition: UefiSpec.h:2071
EFI_TABLE_HEADER Hdr
Definition: UefiSpec.h:1867
EFI_PHYSICAL_ADDRESS DataBlock
Definition: UefiSpec.h:1618
EFI_PHYSICAL_ADDRESS ContinuationPointer
Definition: UefiSpec.h:1625
UINT32 CapsuleImageSize
Definition: UefiSpec.h:1652
EFI_GUID CapsuleGuid
Definition: UefiSpec.h:1636
UINT32 CapsuleArrayNumber
Definition: UefiSpec.h:1664
UINT32 BootOptionCrc
Definition: UefiSpec.h:2180
UINT16 BootOption
Definition: UefiSpec.h:2185
EFI_BOOT_KEY_DATA KeyData
Definition: UefiSpec.h:2174
EFI_VIRTUAL_ADDRESS VirtualStart
Definition: UefiSpec.h:145
EFI_PHYSICAL_ADDRESS PhysicalStart
Definition: UefiSpec.h:139
EFI_TABLE_HEADER Hdr
Definition: UefiSpec.h:1816
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL * StdErr
Definition: UefiSpec.h:2019
EFI_BOOT_SERVICES * BootServices
Definition: UefiSpec.h:2027
EFI_CONFIGURATION_TABLE * ConfigurationTable
Definition: UefiSpec.h:2036
UINT32 FirmwareRevision
Definition: UefiSpec.h:1990
EFI_HANDLE ConsoleInHandle
Definition: UefiSpec.h:1995
EFI_HANDLE ConsoleOutHandle
Definition: UefiSpec.h:2004
EFI_RUNTIME_SERVICES * RuntimeServices
Definition: UefiSpec.h:2023
EFI_HANDLE StandardErrorHandle
Definition: UefiSpec.h:2014
EFI_SIMPLE_TEXT_INPUT_PROTOCOL * ConIn
Definition: UefiSpec.h:2000
CHAR16 * FirmwareVendor
Definition: UefiSpec.h:1985
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL * ConOut
Definition: UefiSpec.h:2009
EFI_TABLE_HEADER Hdr
Definition: UefiSpec.h:1980
UINTN NumberOfTableEntries
Definition: UefiSpec.h:2031
Definition: Base.h:213
UINT32 ControlPressed
Definition: UefiSpec.h:2138
UINT32 SysReqPressed
Definition: UefiSpec.h:2154
UINT32 MenuPressed
Definition: UefiSpec.h:2150
UINT32 LogoPressed
Definition: UefiSpec.h:2146
UINT32 InputKeyCount
Definition: UefiSpec.h:2161
UINT32 ShiftPressed
Definition: UefiSpec.h:2134