16#ifndef __UEFI_SPEC_H__
17#define __UEFI_SPEC_H__
55#define EFI_TIME_ADJUST_DAYLIGHT 0x01
56#define EFI_TIME_IN_DAYLIGHT 0x02
61#define EFI_UNSPECIFIED_TIMEZONE 0x07FF
66#define EFI_MEMORY_UC 0x0000000000000001ULL
67#define EFI_MEMORY_WC 0x0000000000000002ULL
68#define EFI_MEMORY_WT 0x0000000000000004ULL
69#define EFI_MEMORY_WB 0x0000000000000008ULL
70#define EFI_MEMORY_UCE 0x0000000000000010ULL
77#define EFI_MEMORY_WP 0x0000000000001000ULL
78#define EFI_MEMORY_RP 0x0000000000002000ULL
79#define EFI_MEMORY_XP 0x0000000000004000ULL
80#define EFI_MEMORY_RO 0x0000000000020000ULL
85#define EFI_MEMORY_NV 0x0000000000008000ULL
90#define EFI_MEMORY_MORE_RELIABLE 0x0000000000010000ULL
100#define EFI_MEMORY_SP 0x0000000000040000ULL
109#define EFI_MEMORY_CPU_CRYPTO 0x0000000000080000ULL
119#define EFI_MEMORY_HOT_PLUGGABLE 0x0000000000100000
124#define EFI_MEMORY_RUNTIME 0x8000000000000000ULL
131#define EFI_MEMORY_ISA_VALID 0x4000000000000000ULL
139#define EFI_MEMORY_ISA_MASK 0x0FFFF00000000000ULL
144#define EFI_CACHE_ATTRIBUTE_MASK (EFI_MEMORY_UC | EFI_MEMORY_WC | EFI_MEMORY_WT | EFI_MEMORY_WB | EFI_MEMORY_UCE | EFI_MEMORY_WP)
145#define EFI_MEMORY_ACCESS_MASK (EFI_MEMORY_RP | EFI_MEMORY_XP | EFI_MEMORY_RO)
146#define EFI_MEMORY_ATTRIBUTE_MASK (EFI_MEMORY_ACCESS_MASK | EFI_MEMORY_SP | EFI_MEMORY_CPU_CRYPTO)
151#define EFI_MEMORY_DESCRIPTOR_VERSION 1
419#define EFI_OPTIONAL_PTR 0x00000001
451#define EVT_TIMER 0x80000000
452#define EVT_RUNTIME 0x40000000
453#define EVT_NOTIFY_WAIT 0x00000100
454#define EVT_NOTIFY_SIGNAL 0x00000200
456#define EVT_SIGNAL_EXIT_BOOT_SERVICES 0x00000201
457#define EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE 0x60000202
464#define EVT_RUNTIME_CONTEXT 0x20000000
648#define TPL_APPLICATION 4
649#define TPL_CALLBACK 8
651#define TPL_HIGH_LEVEL 31
1354#define EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL 0x00000001
1355#define EFI_OPEN_PROTOCOL_GET_PROTOCOL 0x00000002
1356#define EFI_OPEN_PROTOCOL_TEST_PROTOCOL 0x00000004
1357#define EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER 0x00000008
1358#define EFI_OPEN_PROTOCOL_BY_DRIVER 0x00000010
1359#define EFI_OPEN_PROTOCOL_EXCLUSIVE 0x00000020
1730#define CAPSULE_FLAGS_PERSIST_ACROSS_RESET 0x00010000
1731#define CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE 0x00020000
1732#define CAPSULE_FLAGS_INITIATE_RESET 0x00040000
1837 OUT UINT64 *RemainingVariableStorageSize,
1844#define EFI_OS_INDICATIONS_BOOT_TO_FW_UI 0x0000000000000001
1845#define EFI_OS_INDICATIONS_TIMESTAMP_REVOCATION 0x0000000000000002
1846#define EFI_OS_INDICATIONS_FILE_CAPSULE_DELIVERY_SUPPORTED 0x0000000000000004
1847#define EFI_OS_INDICATIONS_FMP_CAPSULE_SUPPORTED 0x0000000000000008
1848#define EFI_OS_INDICATIONS_CAPSULE_RESULT_VAR_SUPPORTED 0x0000000000000010
1849#define EFI_OS_INDICATIONS_START_PLATFORM_RECOVERY 0x0000000000000040
1850#define EFI_OS_INDICATIONS_JSON_CONFIG_DATA_REFRESH 0x0000000000000080
1855#define EFI_SYSTEM_TABLE_SIGNATURE SIGNATURE_64 ('I','B','I',' ','S','Y','S','T')
1856#define EFI_2_110_SYSTEM_TABLE_REVISION ((2 << 16) | (110))
1857#define EFI_2_100_SYSTEM_TABLE_REVISION ((2 << 16) | (100))
1858#define EFI_2_90_SYSTEM_TABLE_REVISION ((2 << 16) | (90))
1859#define EFI_2_80_SYSTEM_TABLE_REVISION ((2 << 16) | (80))
1860#define EFI_2_70_SYSTEM_TABLE_REVISION ((2 << 16) | (70))
1861#define EFI_2_60_SYSTEM_TABLE_REVISION ((2 << 16) | (60))
1862#define EFI_2_50_SYSTEM_TABLE_REVISION ((2 << 16) | (50))
1863#define EFI_2_40_SYSTEM_TABLE_REVISION ((2 << 16) | (40))
1864#define EFI_2_31_SYSTEM_TABLE_REVISION ((2 << 16) | (31))
1865#define EFI_2_30_SYSTEM_TABLE_REVISION ((2 << 16) | (30))
1866#define EFI_2_20_SYSTEM_TABLE_REVISION ((2 << 16) | (20))
1867#define EFI_2_10_SYSTEM_TABLE_REVISION ((2 << 16) | (10))
1868#define EFI_2_00_SYSTEM_TABLE_REVISION ((2 << 16) | (00))
1869#define EFI_1_10_SYSTEM_TABLE_REVISION ((1 << 16) | (10))
1870#define EFI_1_02_SYSTEM_TABLE_REVISION ((1 << 16) | (02))
1871#define EFI_SYSTEM_TABLE_REVISION EFI_2_70_SYSTEM_TABLE_REVISION
1872#define EFI_SPECIFICATION_VERSION EFI_SYSTEM_TABLE_REVISION
1874#define EFI_RUNTIME_SERVICES_SIGNATURE SIGNATURE_64 ('R','U','N','T','S','E','R','V')
1875#define EFI_RUNTIME_SERVICES_REVISION EFI_SPECIFICATION_VERSION
1925#define EFI_BOOT_SERVICES_SIGNATURE SIGNATURE_64 ('B','O','O','T','S','E','R','V')
1926#define EFI_BOOT_SERVICES_REVISION EFI_SPECIFICATION_VERSION
2181#define LOAD_OPTION_ACTIVE 0x00000001
2182#define LOAD_OPTION_FORCE_RECONNECT 0x00000002
2183#define LOAD_OPTION_HIDDEN 0x00000008
2184#define LOAD_OPTION_CATEGORY 0x00001F00
2186#define LOAD_OPTION_CATEGORY_BOOT 0x00000000
2187#define LOAD_OPTION_CATEGORY_APP 0x00000100
2189#define EFI_BOOT_OPTION_SUPPORT_KEY 0x00000001
2190#define EFI_BOOT_OPTION_SUPPORT_APP 0x00000002
2191#define EFI_BOOT_OPTION_SUPPORT_SYSPREP 0x00000010
2192#define EFI_BOOT_OPTION_SUPPORT_COUNT 0x00000300
2270#define EFI_REMOVABLE_MEDIA_FILE_NAME_IA32 L"\\EFI\\BOOT\\BOOTIA32.EFI"
2271#define EFI_REMOVABLE_MEDIA_FILE_NAME_IA64 L"\\EFI\\BOOT\\BOOTIA64.EFI"
2272#define EFI_REMOVABLE_MEDIA_FILE_NAME_X64 L"\\EFI\\BOOT\\BOOTX64.EFI"
2273#define EFI_REMOVABLE_MEDIA_FILE_NAME_EBC L"\\EFI\\BOOT\\BOOTARM.EFI"
2274#define EFI_REMOVABLE_MEDIA_FILE_NAME_AARCH64 L"\\EFI\\BOOT\\BOOTAA64.EFI"
2275#define EFI_REMOVABLE_MEDIA_FILE_NAME_RISCV64 L"\\EFI\\BOOT\\BOOTRISCV64.EFI"
2276#define EFI_REMOVABLE_MEDIA_FILE_NAME_LOONGARCH64 L"\\EFI\\BOOT\\BOOTLOONGARCH64.EFI"
2278#if !defined (EFI_REMOVABLE_MEDIA_FILE_NAME)
2279 #if defined (MDE_CPU_IA32)
2280#define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_IA32
2281 #elif defined (MDE_CPU_X64)
2282#define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_X64
2283 #elif defined (MDE_CPU_EBC)
2284#define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_EBC
2285 #elif defined (MDE_CPU_AARCH64)
2286#define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_AARCH64
2287 #elif defined (MDE_CPU_RISCV64)
2288#define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_RISCV64
2289 #elif defined (MDE_CPU_LOONGARCH64)
2290#define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_LOONGARCH64
2292 #error Unknown Processor Type
2299#define EFI_CAPSULE_FILE_DIRECTORY L"\\EFI\\UpdateCapsule\\"
unsigned short UINT16
2-byte unsigned value.
unsigned char BOOLEAN
Logical Boolean.
UINT64 UINTN
Unsigned value of native width.
unsigned long long UINT64
8-byte unsigned value.
unsigned short CHAR16
2-byte Character.
unsigned char UINT8
1-byte unsigned value.
unsigned int UINT32
4-byte unsigned value.
#define CONST
Datum is read-only.
#define VOID
Undeclared type.
#define OPTIONAL
Passing the datum to the function is optional, and a NULL is passed if the value is not supplied.
The device path protocol as defined in UEFI 2.0.
Simple Text Input Ex protocol from the UEFI 2.0 specification.
Simple Text Input protocol from the UEFI 2.0 specification.
struct _EFI_SIMPLE_TEXT_INPUT_PROTOCOL EFI_SIMPLE_TEXT_INPUT_PROTOCOL
Simple Text Out protocol from the UEFI 2.0 specification.
struct _EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL
UINT64 EFI_PHYSICAL_ADDRESS
64-bit physical memory address.
UINT64 EFI_VIRTUAL_ADDRESS
64-bit virtual memory address.
RETURN_STATUS EFI_STATUS
Function return status for EFI API.
UINTN EFI_TPL
Task priority level.
GUID EFI_GUID
128-bit buffer containing a unique identifier value.
EFI Guid Partition Table Format Definition.
This includes some definitions introduced in UEFI that will be used in both PEI and DXE phases.
EFI_MEMORY_TYPE
Enumeration of memory types introduced in UEFI.
EFI_RESET_TYPE
Enumeration of reset types.
This header file contains all of the PXE type definitions, structure prototypes, global variables and...
EFI_STATUS(EFIAPI * EFI_CLOSE_PROTOCOL)(IN EFI_HANDLE Handle, IN EFI_GUID *Protocol, IN EFI_HANDLE AgentHandle, IN EFI_HANDLE ControllerHandle)
Closes a protocol on a handle that was opened using OpenProtocol().
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)
Retrieves the list of agents that currently have a protocol interface opened.
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)
Connects one or more drivers to a controller.
EFI_STATUS(EFIAPI * EFI_IMAGE_START)(IN EFI_HANDLE ImageHandle, OUT UINTN *ExitDataSize, OUT CHAR16 **ExitData OPTIONAL)
Transfers control to a loaded image's entry point.
EFI_STATUS(EFIAPI * EFI_CALCULATE_CRC32)(IN VOID *Data, IN UINTN DataSize, OUT UINT32 *Crc32)
Computes and returns a 32-bit CRC for a data buffer.
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)
Returns the value of a variable.
EFI_STATUS(EFIAPI * EFI_ALLOCATE_POOL)(IN EFI_MEMORY_TYPE PoolType, IN UINTN Size, OUT VOID **Buffer)
Allocates pool memory.
EFI_STATUS(EFIAPI * EFI_GET_NEXT_HIGH_MONO_COUNT)(OUT UINT32 *HighCount)
Returns the next high 32 bits of the platform's monotonic counter.
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)
Loads an EFI image into memory.
EFI_STATUS(EFIAPI * EFI_LOCATE_DEVICE_PATH)(IN EFI_GUID *Protocol, IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath, OUT EFI_HANDLE *Device)
Locates the handle to a device on the device path that supports the specified protocol.
EFI_STATUS(EFIAPI * EFI_IMAGE_UNLOAD)(IN EFI_HANDLE ImageHandle)
Unloads an image.
EFI_STATUS(EFIAPI * EFI_EXIT)(IN EFI_HANDLE ImageHandle, IN EFI_STATUS ExitStatus, IN UINTN ExitDataSize, IN CHAR16 *ExitData OPTIONAL)
Terminates a loaded EFI image and returns control to boot services.
VOID(EFIAPI * EFI_RESTORE_TPL)(IN EFI_TPL OldTpl)
Restores a task's priority level to its previous value.
EFI_STATUS(EFIAPI * EFI_INSTALL_CONFIGURATION_TABLE)(IN EFI_GUID *Guid, IN VOID *Table)
Adds, updates, or removes a configuration table entry from the EFI System Table.
EFI_STATUS(EFIAPI * EFI_PROTOCOLS_PER_HANDLE)(IN EFI_HANDLE Handle, OUT EFI_GUID ***ProtocolBuffer, OUT UINTN *ProtocolBufferCount)
Retrieves the list of protocol interface GUIDs that are installed on a handle in a buffer allocated f...
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)
Returns the current memory map.
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)
Creates an event.
EFI_INTERFACE_TYPE
Enumeration of EFI Interface Types.
@ EFI_NATIVE_INTERFACE
Indicates that the supplied protocol interface is supplied in native form.
EFI_STATUS(EFIAPI * EFI_SET_TIME)(IN EFI_TIME *Time)
Sets the current local time and date information.
EFI_STATUS(EFIAPI * EFI_DISCONNECT_CONTROLLER)(IN EFI_HANDLE ControllerHandle, IN EFI_HANDLE DriverImageHandle OPTIONAL, IN EFI_HANDLE ChildHandle OPTIONAL)
Disconnects one or more drivers from a controller.
EFI_STATUS(EFIAPI * EFI_STALL)(IN UINTN Microseconds)
Induces a fine-grained stall.
EFI_STATUS(EFIAPI * EFI_CONVERT_POINTER)(IN UINTN DebugDisposition, IN OUT VOID **Address)
Determines the new virtual address that is to be used on subsequent memory accesses.
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)
Creates an event in a group.
VOID(EFIAPI * EFI_EVENT_NOTIFY)(IN EFI_EVENT Event, IN VOID *Context)
Invoke a notification event.
struct _EFI_LOAD_OPTION EFI_LOAD_OPTION
EFI_STATUS(EFIAPI * EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES)(IN EFI_HANDLE Handle,...)
Removes one or more protocol interfaces into the boot services environment.
EFI_STATUS(EFIAPI * EFI_SET_VARIABLE)(IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN UINT32 Attributes, IN UINTN DataSize, IN VOID *Data)
Sets the value of a variable.
EFI_TIMER_DELAY
Timer delay types.
@ TimerCancel
An event's timer settings is to be cancelled and not trigger time is to be set/.
@ TimerRelative
An event is to be signaled once at a specified interval from the current time.
@ TimerPeriodic
An event is to be signaled periodically at a specified interval from the current time.
EFI_STATUS(EFIAPI * EFI_QUERY_VARIABLE_INFO)(IN UINT32 Attributes, OUT UINT64 *MaximumVariableStorageSize, OUT UINT64 *RemainingVariableStorageSize, OUT UINT64 *MaximumVariableSize)
Returns information about the EFI variables.
EFI_STATUS(EFIAPI * EFI_INSTALL_PROTOCOL_INTERFACE)(IN OUT EFI_HANDLE *Handle, IN EFI_GUID *Protocol, IN EFI_INTERFACE_TYPE InterfaceType, IN VOID *Interface)
Installs a protocol interface on a device handle.
VOID(EFIAPI * EFI_COPY_MEM)(IN VOID *Destination, IN VOID *Source, IN UINTN Length)
Copies the contents of one buffer to another buffer.
EFI_STATUS(EFIAPI * EFI_LOCATE_PROTOCOL)(IN EFI_GUID *Protocol, IN VOID *Registration OPTIONAL, OUT VOID **Interface)
Returns the first protocol instance that matches the given protocol.
EFI_STATUS(EFIAPI * EFI_HANDLE_PROTOCOL)(IN EFI_HANDLE Handle, IN EFI_GUID *Protocol, OUT VOID **Interface)
Queries a handle to determine if it supports a specified protocol.
EFI_STATUS(EFIAPI * EFI_EXIT_BOOT_SERVICES)(IN EFI_HANDLE ImageHandle, IN UINTN MapKey)
Terminates all boot services.
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)
Returns an array of handles that support a specified protocol.
EFI_STATUS(EFIAPI * EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES)(IN OUT EFI_HANDLE *Handle,...)
Installs one or more protocol interfaces into the boot services environment.
EFI_STATUS(EFIAPI * EFI_UPDATE_CAPSULE)(IN EFI_CAPSULE_HEADER **CapsuleHeaderArray, IN UINTN CapsuleCount, IN EFI_PHYSICAL_ADDRESS ScatterGatherList OPTIONAL)
Passes capsules to the firmware with both virtual and physical mapping.
EFI_STATUS(EFIAPI * EFI_GET_NEXT_MONOTONIC_COUNT)(OUT UINT64 *Count)
Returns a monotonically increasing count for the platform.
EFI_TPL(EFIAPI * EFI_RAISE_TPL)(IN EFI_TPL NewTpl)
Raises a task's priority level and returns its previous level.
EFI_STATUS(EFIAPI * EFI_REINSTALL_PROTOCOL_INTERFACE)(IN EFI_HANDLE Handle, IN EFI_GUID *Protocol, IN VOID *OldInterface, IN VOID *NewInterface)
Reinstalls a protocol interface on a device handle.
EFI_STATUS(EFIAPI * EFI_SET_WATCHDOG_TIMER)(IN UINTN Timeout, IN UINT64 WatchdogCode, IN UINTN DataSize, IN CHAR16 *WatchdogData OPTIONAL)
Sets the system's watchdog timer.
EFI_STATUS(EFIAPI * EFI_SIGNAL_EVENT)(IN EFI_EVENT Event)
Signals an event.
EFI_STATUS(EFIAPI * EFI_WAIT_FOR_EVENT)(IN UINTN NumberOfEvents, IN EFI_EVENT *Event, OUT UINTN *Index)
Stops execution until an event is signaled.
VOID(EFIAPI * EFI_SET_MEM)(IN VOID *Buffer, IN UINTN Size, IN UINT8 Value)
The SetMem() function fills a buffer with a specified value.
EFI_STATUS(EFIAPI * EFI_UNINSTALL_PROTOCOL_INTERFACE)(IN EFI_HANDLE Handle, IN EFI_GUID *Protocol, IN VOID *Interface)
Removes a protocol interface from a device handle.
EFI_STATUS(EFIAPI * EFI_IMAGE_ENTRY_POINT)(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
This is the declaration of an EFI image entry point.
EFI_STATUS(EFIAPI * EFI_FREE_PAGES)(IN EFI_PHYSICAL_ADDRESS Memory, IN UINTN Pages)
Frees memory pages.
EFI_LOCATE_SEARCH_TYPE
Enumeration of EFI Locate Search Types.
@ ByProtocol
Retrieve the set of handles from the handle database that support a specified protocol.
@ ByRegisterNotify
Retrieve the next handle fron a RegisterProtocolNotify() event.
@ AllHandles
Retrieve all the handles in the handle database.
EFI_STATUS(EFIAPI * EFI_CLOSE_EVENT)(IN EFI_EVENT Event)
Closes an event.
EFI_STATUS(EFIAPI * EFI_GET_TIME)(OUT EFI_TIME *Time, OUT EFI_TIME_CAPABILITIES *Capabilities OPTIONAL)
Returns the current time and date information, and the time-keeping capabilities of the hardware plat...
VOID(EFIAPI * EFI_RESET_SYSTEM)(IN EFI_RESET_TYPE ResetType, IN EFI_STATUS ResetStatus, IN UINTN DataSize, IN VOID *ResetData OPTIONAL)
Resets the entire platform.
EFI_STATUS(EFIAPI * EFI_SET_VIRTUAL_ADDRESS_MAP)(IN UINTN MemoryMapSize, IN UINTN DescriptorSize, IN UINT32 DescriptorVersion, IN EFI_MEMORY_DESCRIPTOR *VirtualMap)
Changes the runtime addressing mode of EFI firmware from physical to virtual.
EFI_STATUS(EFIAPI * EFI_SET_WAKEUP_TIME)(IN BOOLEAN Enable, IN EFI_TIME *Time OPTIONAL)
Sets the system wakeup alarm clock time.
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)
Allocates memory pages from the system.
EFI_STATUS(EFIAPI * EFI_FREE_POOL)(IN VOID *Buffer)
Returns pool memory to the system.
EFI_STATUS(EFIAPI * EFI_QUERY_CAPSULE_CAPABILITIES)(IN EFI_CAPSULE_HEADER **CapsuleHeaderArray, IN UINTN CapsuleCount, OUT UINT64 *MaximumCapsuleSize, OUT EFI_RESET_TYPE *ResetType)
Returns if the capsule can be supported via UpdateCapsule().
EFI_STATUS(EFIAPI * EFI_CHECK_EVENT)(IN EFI_EVENT Event)
Checks whether an event is in the signaled state.
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)
Returns an array of handles that support the requested protocol in a buffer allocated from pool.
EFI_STATUS(EFIAPI * EFI_GET_WAKEUP_TIME)(OUT BOOLEAN *Enabled, OUT BOOLEAN *Pending, OUT EFI_TIME *Time)
Returns the current wakeup alarm clock setting.
EFI_STATUS(EFIAPI * EFI_GET_NEXT_VARIABLE_NAME)(IN OUT UINTN *VariableNameSize, IN OUT CHAR16 *VariableName, IN OUT EFI_GUID *VendorGuid)
Enumerates the current variable names.
EFI_ALLOCATE_TYPE
Enumeration of EFI memory allocation types.
@ AllocateMaxAddress
Allocate any available range of pages whose uppermost address is less than or equal to a specified ma...
@ AllocateAddress
Allocate pages at a specified address.
@ AllocateAnyPages
Allocate any available range of pages that satisfies the request.
@ MaxAllocateType
Maximum enumeration value that may be used for bounds checking.
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)
Queries a handle to determine if it supports a specified protocol.
EFI_STATUS(EFIAPI * EFI_SET_TIMER)(IN EFI_EVENT Event, IN EFI_TIMER_DELAY Type, IN UINT64 TriggerTime)
Sets the type of timer and the trigger time for a timer event.
EFI_STATUS(EFIAPI * EFI_REGISTER_PROTOCOL_NOTIFY)(IN EFI_GUID *Protocol, IN EFI_EVENT Event, OUT VOID **Registration)
Creates an event that is to be signaled whenever an interface is installed for a specified protocol.
EFI_HANDLE ControllerHandle
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
UINT16_t BufferSize
Buffer size.
UINT8_t Protocol
Protocol.
SEGOFF16_t Buffer
Buffer address.
UINT8_t Length
Length of this structure.
UINT16_t Size
Size of structure.
EFI_ALLOCATE_PAGES AllocatePages
EFI_INSTALL_CONFIGURATION_TABLE InstallConfigurationTable
EFI_RESTORE_TPL RestoreTPL
EFI_IMAGE_START StartImage
EFI_LOCATE_HANDLE LocateHandle
EFI_OPEN_PROTOCOL_INFORMATION OpenProtocolInformation
EFI_CREATE_EVENT CreateEvent
EFI_IMAGE_UNLOAD UnloadImage
EFI_REINSTALL_PROTOCOL_INTERFACE ReinstallProtocolInterface
EFI_PROTOCOLS_PER_HANDLE ProtocolsPerHandle
EFI_INSTALL_PROTOCOL_INTERFACE InstallProtocolInterface
EFI_DISCONNECT_CONTROLLER DisconnectController
EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES UninstallMultipleProtocolInterfaces
EFI_TABLE_HEADER Hdr
The table header for the EFI Boot Services Table.
EFI_LOCATE_PROTOCOL LocateProtocol
EFI_CLOSE_EVENT CloseEvent
EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES InstallMultipleProtocolInterfaces
EFI_CLOSE_PROTOCOL CloseProtocol
EFI_SET_WATCHDOG_TIMER SetWatchdogTimer
EFI_HANDLE_PROTOCOL HandleProtocol
EFI_EXIT_BOOT_SERVICES ExitBootServices
EFI_ALLOCATE_POOL AllocatePool
EFI_LOCATE_DEVICE_PATH LocateDevicePath
EFI_CREATE_EVENT_EX CreateEventEx
EFI_CALCULATE_CRC32 CalculateCrc32
EFI_GET_MEMORY_MAP GetMemoryMap
EFI_REGISTER_PROTOCOL_NOTIFY RegisterProtocolNotify
EFI_OPEN_PROTOCOL OpenProtocol
EFI_SIGNAL_EVENT SignalEvent
EFI_WAIT_FOR_EVENT WaitForEvent
EFI_LOCATE_HANDLE_BUFFER LocateHandleBuffer
EFI_CHECK_EVENT CheckEvent
EFI_GET_NEXT_MONOTONIC_COUNT GetNextMonotonicCount
EFI_UNINSTALL_PROTOCOL_INTERFACE UninstallProtocolInterface
EFI_CONNECT_CONTROLLER ConnectController
EFI Capsule Block Descriptor.
UINT64 Length
Length in bytes of the data pointed to by DataBlock/ContinuationPointer.
EFI_PHYSICAL_ADDRESS DataBlock
Physical address of the data block.
EFI_PHYSICAL_ADDRESS ContinuationPointer
Physical address of another block of EFI_CAPSULE_BLOCK_DESCRIPTOR structures.
The EFI System Table entry must point to an array of capsules that contain the same CapsuleGuid value...
UINT32 CapsuleArrayNumber
the size of the array of capsules.
VOID * CapsulePtr[1]
Point to an array of capsules that contain the same CapsuleGuid value.
Contains a set of GUID/pointer pairs comprised of the ConfigurationTable field in the EFI System Tabl...
VOID * VendorTable
A pointer to the table associated with VendorGuid.
EFI_GUID VendorGuid
The 128-bit GUID value that uniquely identifies the system configuration table.
This protocol can be used on any device handle to obtain generic path/location information concerning...
UINT32 BootOptionCrc
The CRC-32 which should match the CRC-32 of the entire EFI_LOAD_OPTION to which BootOption refers.
UINT16 BootOption
The Boot#### option which will be invoked if this key is pressed and the boot option is active (LOAD_...
EFI_BOOT_KEY_DATA KeyData
Specifies options about how the key will be processed.
Definition of an EFI memory descriptor.
EFI_VIRTUAL_ADDRESS VirtualStart
Virtual address of the first byte in the memory region.
UINT64 Attribute
Attributes of the memory region that describe the bit mask of capabilities for that memory region,...
UINT64 NumberOfPages
NumberOfPagesNumber of 4 KiB pages in the memory region.
UINT32 Type
Type of the memory region.
EFI_PHYSICAL_ADDRESS PhysicalStart
Physical address of the first byte in the memory region.
EFI Oprn Protocol Information Entry.
EFI_HANDLE ControllerHandle
EFI Runtime Services Table.
EFI_QUERY_CAPSULE_CAPABILITIES QueryCapsuleCapabilities
EFI_CONVERT_POINTER ConvertPointer
EFI_TABLE_HEADER Hdr
The table header for the EFI Runtime Services Table.
EFI_UPDATE_CAPSULE UpdateCapsule
EFI_SET_VARIABLE SetVariable
EFI_SET_WAKEUP_TIME SetWakeupTime
EFI_GET_WAKEUP_TIME GetWakeupTime
EFI_GET_NEXT_VARIABLE_NAME GetNextVariableName
EFI_GET_NEXT_HIGH_MONO_COUNT GetNextHighMonotonicCount
EFI_QUERY_VARIABLE_INFO QueryVariableInfo
EFI_SET_VIRTUAL_ADDRESS_MAP SetVirtualAddressMap
EFI_GET_VARIABLE GetVariable
EFI_RESET_SYSTEM ResetSystem
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL * StdErr
A pointer to the EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL interface that is associated with StandardErrorHandl...
EFI_BOOT_SERVICES * BootServices
A pointer to the EFI Boot Services Table.
EFI_CONFIGURATION_TABLE * ConfigurationTable
A pointer to the system configuration tables.
UINT32 FirmwareRevision
A firmware vendor specific value that identifies the revision of the system firmware for the platform...
EFI_HANDLE ConsoleInHandle
The handle for the active console input device.
EFI_HANDLE ConsoleOutHandle
The handle for the active console output device.
EFI_RUNTIME_SERVICES * RuntimeServices
A pointer to the EFI Runtime Services Table.
EFI_HANDLE StandardErrorHandle
The handle for the active standard error console device.
EFI_SIMPLE_TEXT_INPUT_PROTOCOL * ConIn
A pointer to the EFI_SIMPLE_TEXT_INPUT_PROTOCOL interface that is associated with ConsoleInHandle.
CHAR16 * FirmwareVendor
A pointer to a null terminated string that identifies the vendor that produces the system firmware fo...
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL * ConOut
A pointer to the EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL interface that is associated with ConsoleOutHandle.
EFI_TABLE_HEADER Hdr
The table header for the EFI System Table.
UINTN NumberOfTableEntries
The number of system configuration tables in the buffer ConfigurationTable.
This provides the capabilities of the real time clock device as exposed through the EFI interfaces.
UINT32 Resolution
Provides the reporting resolution of the real-time clock device in counts per second.
UINT32 Accuracy
Provides the timekeeping accuracy of the real-time clock in an error rate of 1E-6 parts per million.
BOOLEAN SetsToZero
A TRUE indicates that a time set operation clears the device's time below the Resolution reporting le...
EFI Time Abstraction: Year: 1900 - 9999 Month: 1 - 12 Day: 1 - 31 Hour: 0 - 23 Minute: 0 - 59 Second:...
UINT16 FilePathListLength
Length in bytes of the FilePathList.
UINT32 Attributes
The attributes for this load option entry.
UINT32 ControlPressed
Either the left or right Control keys must be pressed (1) or must not be pressed (0).
UINT32 SysReqPressed
The SysReq key must be pressed (1) or must not be pressed (0).
UINT32 MenuPressed
The Menu key must be pressed (1) or must not be pressed (0).
UINT32 LogoPressed
Either the left or right Logo keys must be pressed (1) or must not be pressed (0).
UINT32 Revision
Indicates the revision of the EFI_KEY_OPTION structure.
UINT32 InputKeyCount
Specifies the actual number of entries in EFI_KEY_OPTION.Keys, from 0-3.
UINT32 ShiftPressed
Either the left or right Shift keys must be pressed (1) or must not be pressed (0).
UINT32 AltPressed
Either the left or right Alt keys must be pressed (1) or must not be pressed (0).