uefi.spec

Based on Uefi/UefiSpec.h, original notice:

Include file that supports UEFI.

This include file must contain things defined in the UEFI 2.5 specification. If a code construct is defined in the UEFI 2.5 specification it must be included by this include file.

Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved. This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License that accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php.

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Members

Aliases

EFI_ALLOCATE_PAGES
alias EFI_ALLOCATE_PAGES = EFI_STATUS function(EFI_ALLOCATE_TYPE Type, EFI_MEMORY_TYPE MemoryType, UINTN Pages, EFI_PHYSICAL_ADDRESS* Memory) @nogc nothrow

Allocates memory pages from the system.

EFI_ALLOCATE_POOL
alias EFI_ALLOCATE_POOL = EFI_STATUS function(EFI_MEMORY_TYPE PoolType, UINTN Size, void** Buffer) @nogc nothrow

Allocates pool memory.

EFI_ALLOCATE_TYPE
alias EFI_ALLOCATE_TYPE = UINT32

Enumeration of EFI memory allocation types.

EFI_CALCULATE_CRC32
alias EFI_CALCULATE_CRC32 = EFI_STATUS function(void* Data, UINTN DataSize, UINT32* Crc32) @nogc nothrow

Computes and returns a 32-bit CRC for a data buffer.

EFI_CHECK_EVENT
alias EFI_CHECK_EVENT = EFI_STATUS function(EFI_EVENT Event) @nogc nothrow

Checks whether an event is in the signaled state.

EFI_CLOSE_EVENT
alias EFI_CLOSE_EVENT = EFI_STATUS function(EFI_EVENT Event) @nogc nothrow

Closes an event.

EFI_CLOSE_PROTOCOL
alias EFI_CLOSE_PROTOCOL = EFI_STATUS function(EFI_HANDLE Handle, EFI_GUID* Protocol, EFI_HANDLE AgentHandle, EFI_HANDLE ControllerHandle) @nogc nothrow

Closes a protocol on a handle that was opened using OpenProtocol().

EFI_CONNECT_CONTROLLER
alias EFI_CONNECT_CONTROLLER = EFI_STATUS function(EFI_HANDLE ControllerHandle, EFI_HANDLE* DriverImageHandle, EFI_DEVICE_PATH_PROTOCOL* RemainingDevicePath, BOOLEAN Recursive) @nogc nothrow

Connects one or more drivers to a controller.

EFI_CONVERT_POINTER
alias EFI_CONVERT_POINTER = EFI_STATUS function(UINTN DebugDisposition, void** Address) @nogc nothrow

Determines the new virtual address that is to be used on subsequent memory accesses.

EFI_COPY_MEM
alias EFI_COPY_MEM = VOID function(void* Destination, void* Source, UINTN Length) @nogc nothrow

Copies the contents of one buffer to another buffer.

EFI_CREATE_EVENT
alias EFI_CREATE_EVENT = EFI_STATUS function(UINT32 Type, EFI_TPL NotifyTpl, EFI_EVENT_NOTIFY NotifyFunction, void* NotifyContext, EFI_EVENT* Event) @nogc nothrow

Creates an event.

EFI_CREATE_EVENT_EX
alias EFI_CREATE_EVENT_EX = EFI_STATUS function(UINT32 Type, EFI_TPL NotifyTpl, EFI_EVENT_NOTIFY NotifyFunction, const void* NotifyContext, const EFI_GUID* EventGroup, EFI_EVENT* Event) @nogc nothrow

Creates an event in a group.

EFI_DISCONNECT_CONTROLLER
alias EFI_DISCONNECT_CONTROLLER = EFI_STATUS function(EFI_HANDLE ControllerHandle, EFI_HANDLE DriverImageHandle, EFI_HANDLE ChildHandle) @nogc nothrow

Disconnects one or more drivers from a controller.

EFI_EVENT_NOTIFY
alias EFI_EVENT_NOTIFY = VOID function(EFI_EVENT Event, void* Context) @nogc nothrow

Invoke a notification event

EFI_EXIT
alias EFI_EXIT = EFI_STATUS function(EFI_HANDLE ImageHandle, EFI_STATUS ExitStatus, UINTN ExitDataSize, CHAR16* ExitData) @nogc nothrow

Terminates a loaded EFI image and returns control to boot services.

EFI_EXIT_BOOT_SERVICES
alias EFI_EXIT_BOOT_SERVICES = EFI_STATUS function(EFI_HANDLE ImageHandle, UINTN MapKey) @nogc nothrow

Terminates all boot services.

EFI_FREE_PAGES
alias EFI_FREE_PAGES = EFI_STATUS function(EFI_PHYSICAL_ADDRESS Memory, UINTN Pages) @nogc nothrow

Frees memory pages.

EFI_FREE_POOL
alias EFI_FREE_POOL = EFI_STATUS function(void* Buffer) @nogc nothrow

Returns pool memory to the system.

EFI_GET_MEMORY_MAP
alias EFI_GET_MEMORY_MAP = EFI_STATUS function(UINTN* MemoryMapSize, EFI_MEMORY_DESCRIPTOR* MemoryMap, UINTN* MapKey, UINTN* DescriptorSize, UINT32* DescriptorVersion) @nogc nothrow

Returns the current memory map.

EFI_GET_NEXT_HIGH_MONO_COUNT
alias EFI_GET_NEXT_HIGH_MONO_COUNT = EFI_STATUS function(UINT32* HighCount) @nogc nothrow

Returns the next high 32 bits of the platform's monotonic counter.

EFI_GET_NEXT_MONOTONIC_COUNT
alias EFI_GET_NEXT_MONOTONIC_COUNT = EFI_STATUS function(UINT64* Count) @nogc nothrow

Returns a monotonically increasing count for the platform.

EFI_GET_NEXT_VARIABLE_NAME
alias EFI_GET_NEXT_VARIABLE_NAME = EFI_STATUS function(UINTN* VariableNameSize, CHAR16* VariableName, EFI_GUID* VendorGuid) @nogc nothrow

Enumerates the current variable names.

EFI_GET_TIME
alias EFI_GET_TIME = EFI_STATUS function(EFI_TIME* Time, EFI_TIME_CAPABILITIES* Capabilities) @nogc nothrow

Returns the current time and date information, and the time-keeping capabilities of the hardware platform.

EFI_GET_VARIABLE
alias EFI_GET_VARIABLE = EFI_STATUS function(CHAR16* VariableName, EFI_GUID* VendorGuid, UINT32* Attributes, UINTN* DataSize, void* Data) @nogc nothrow

Returns the value of a variable.

EFI_GET_WAKEUP_TIME
alias EFI_GET_WAKEUP_TIME = EFI_STATUS function(BOOLEAN* Enabled, BOOLEAN* Pending, EFI_TIME* Time) @nogc nothrow

Returns the current wakeup alarm clock setting.

EFI_HANDLE_PROTOCOL
alias EFI_HANDLE_PROTOCOL = EFI_STATUS function(EFI_HANDLE Handle, EFI_GUID* Protocol, void** Interface) @nogc nothrow

Queries a handle to determine if it supports a specified protocol.

EFI_IMAGE_ENTRY_POINT
alias EFI_IMAGE_ENTRY_POINT = EFI_STATUS function(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE* SystemTable) @nogc nothrow

This is the declaration of an EFI image entry point. This entry point is the same for UEFI Applications, UEFI OS Loaders, and UEFI Drivers including both device drivers and bus drivers.

EFI_IMAGE_LOAD
alias EFI_IMAGE_LOAD = EFI_STATUS function(BOOLEAN BootPolicy, EFI_HANDLE ParentImageHandle, EFI_DEVICE_PATH_PROTOCOL* DevicePath, void* SourceBuffer, UINTN SourceSize, EFI_HANDLE* ImageHandle) @nogc nothrow

Loads an EFI image into memory.

EFI_IMAGE_START
alias EFI_IMAGE_START = EFI_STATUS function(EFI_HANDLE ImageHandle, UINTN* ExitDataSize, CHAR16** ExitData) @nogc nothrow

Transfers control to a loaded image's entry point.

EFI_IMAGE_UNLOAD
alias EFI_IMAGE_UNLOAD = EFI_STATUS function(EFI_HANDLE ImageHandle) @nogc nothrow

Unloads an image.

EFI_INSTALL_CONFIGURATION_TABLE
alias EFI_INSTALL_CONFIGURATION_TABLE = EFI_STATUS function(EFI_GUID* Guid, void* Table) @nogc nothrow

Adds, updates, or removes a configuration table entry from the EFI System Table.

EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES
alias EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES = EFI_STATUS function(EFI_HANDLE* Handle, ...) @nogc nothrow

Installs one or more protocol interfaces into the boot services environment.

EFI_INSTALL_PROTOCOL_INTERFACE
alias EFI_INSTALL_PROTOCOL_INTERFACE = EFI_STATUS function(EFI_HANDLE* Handle, EFI_GUID* Protocol, EFI_INTERFACE_TYPE InterfaceType, void* Interface) @nogc nothrow

Installs a protocol interface on a device handle. If the handle does not exist, it is created and added to the list of handles in the system. InstallMultipleProtocolInterfaces() performs more error checking than InstallProtocolInterface(), so it is recommended that InstallMultipleProtocolInterfaces() be used in place of InstallProtocolInterface()

EFI_INTERFACE_TYPE
alias EFI_INTERFACE_TYPE = UINT32

Enumeration of EFI Interface Types

EFI_LOCATE_DEVICE_PATH
alias EFI_LOCATE_DEVICE_PATH = EFI_STATUS function(EFI_GUID* Protocol, EFI_DEVICE_PATH_PROTOCOL** DevicePath, EFI_HANDLE* Device) @nogc nothrow

Locates the handle to a device on the device path that supports the specified protocol.

EFI_LOCATE_HANDLE
alias EFI_LOCATE_HANDLE = EFI_STATUS function(EFI_LOCATE_SEARCH_TYPE SearchType, EFI_GUID* Protocol, void* SearchKey, UINTN* BufferSize, EFI_HANDLE* Buffer) @nogc nothrow

Returns an array of handles that support a specified protocol.

EFI_LOCATE_HANDLE_BUFFER
alias EFI_LOCATE_HANDLE_BUFFER = EFI_STATUS function(EFI_LOCATE_SEARCH_TYPE SearchType, EFI_GUID* Protocol, void* SearchKey, UINTN* NoHandles, EFI_HANDLE** Buffer) @nogc nothrow

Returns an array of handles that support the requested protocol in a buffer allocated from pool.

EFI_LOCATE_PROTOCOL
alias EFI_LOCATE_PROTOCOL = EFI_STATUS function(EFI_GUID* Protocol, void* Registration, void** Interface) @nogc nothrow

Returns the first protocol instance that matches the given protocol.

EFI_LOCATE_SEARCH_TYPE
alias EFI_LOCATE_SEARCH_TYPE = UINT32

Enumeration of EFI Locate Search Types

EFI_OPEN_PROTOCOL
alias EFI_OPEN_PROTOCOL = EFI_STATUS function(EFI_HANDLE Handle, EFI_GUID* Protocol, void** Interface, EFI_HANDLE AgentHandle, EFI_HANDLE ControllerHandle, UINT32 Attributes) @nogc nothrow

Queries a handle to determine if it supports a specified protocol. If the protocol is supported by the handle, it opens the protocol on behalf of the calling agent.

EFI_OPEN_PROTOCOL_INFORMATION
alias EFI_OPEN_PROTOCOL_INFORMATION = EFI_STATUS function(EFI_HANDLE Handle, EFI_GUID* Protocol, EFI_OPEN_PROTOCOL_INFORMATION_ENTRY** EntryBuffer, UINTN* EntryCount) @nogc nothrow

Retrieves the list of agents that currently have a protocol interface opened.

EFI_PROTOCOLS_PER_HANDLE
alias EFI_PROTOCOLS_PER_HANDLE = EFI_STATUS function(EFI_HANDLE Handle, EFI_GUID*** ProtocolBuffer, UINTN* ProtocolBufferCount) @nogc nothrow

Retrieves the list of protocol interface GUIDs that are installed on a handle in a buffer allocated from pool.

EFI_QUERY_CAPSULE_CAPABILITIES
alias EFI_QUERY_CAPSULE_CAPABILITIES = EFI_STATUS function(EFI_CAPSULE_HEADER** CapsuleHeaderArray, UINTN CapsuleCount, UINT64* MaximumCapsuleSize, EFI_RESET_TYPE* ResetType) @nogc nothrow

Returns if the capsule can be supported via UpdateCapsule().

EFI_QUERY_VARIABLE_INFO
alias EFI_QUERY_VARIABLE_INFO = EFI_STATUS function(UINT32 Attributes, UINT64* MaximumVariableStorageSize, UINT64* RemainingVariableStorageSize, UINT64* MaximumVariableSize) @nogc nothrow

Returns information about the EFI variables.

EFI_RAISE_TPL
alias EFI_RAISE_TPL = EFI_TPL function(EFI_TPL NewTpl) @nogc nothrow

Raises a task's priority level and returns its previous level.

EFI_REGISTER_PROTOCOL_NOTIFY
alias EFI_REGISTER_PROTOCOL_NOTIFY = EFI_STATUS function(EFI_GUID* Protocol, EFI_EVENT Event, void** Registration) @nogc nothrow

Creates an event that is to be signaled whenever an interface is installed for a specified protocol.

EFI_REINSTALL_PROTOCOL_INTERFACE
alias EFI_REINSTALL_PROTOCOL_INTERFACE = EFI_STATUS function(EFI_HANDLE Handle, EFI_GUID* Protocol, void* OldInterface, void* NewInterface) @nogc nothrow

Reinstalls a protocol interface on a device handle.

EFI_RESET_SYSTEM
alias EFI_RESET_SYSTEM = VOID function(EFI_RESET_TYPE ResetType, EFI_STATUS ResetStatus, UINTN DataSize, void* ResetData) @nogc nothrow

Resets the entire platform.

EFI_RESTORE_TPL
alias EFI_RESTORE_TPL = VOID function(EFI_TPL OldTpl) @nogc nothrow

Restores a task's priority level to its previous value.

EFI_SET_MEM
alias EFI_SET_MEM = VOID function(void* Buffer, UINTN Size, UINT8 Value) @nogc nothrow

The SetMem() function fills a buffer with a specified value.

EFI_SET_TIME
alias EFI_SET_TIME = EFI_STATUS function(EFI_TIME* Time) @nogc nothrow

Sets the current local time and date information.

EFI_SET_TIMER
alias EFI_SET_TIMER = EFI_STATUS function(EFI_EVENT Event, EFI_TIMER_DELAY Type, UINT64 TriggerTime) @nogc nothrow

Sets the type of timer and the trigger time for a timer event.

EFI_SET_VARIABLE
alias EFI_SET_VARIABLE = EFI_STATUS function(CHAR16* VariableName, EFI_GUID* VendorGuid, UINT32 Attributes, UINTN DataSize, void* Data) @nogc nothrow

Sets the value of a variable.

EFI_SET_VIRTUAL_ADDRESS_MAP
alias EFI_SET_VIRTUAL_ADDRESS_MAP = EFI_STATUS function(UINTN MemoryMapSize, UINTN DescriptorSize, UINT32 DescriptorVersion, EFI_MEMORY_DESCRIPTOR* VirtualMap) @nogc nothrow

Changes the runtime addressing mode of EFI firmware from physical to virtual.

EFI_SET_WAKEUP_TIME
alias EFI_SET_WAKEUP_TIME = EFI_STATUS function(BOOLEAN Enable, EFI_TIME* Time) @nogc nothrow

Sets the system wakeup alarm clock time.

EFI_SET_WATCHDOG_TIMER
alias EFI_SET_WATCHDOG_TIMER = EFI_STATUS function(UINTN Timeout, UINT64 WatchdogCode, UINTN DataSize, CHAR16* WatchdogData) @nogc nothrow

Sets the system's watchdog timer.

EFI_SIGNAL_EVENT
alias EFI_SIGNAL_EVENT = EFI_STATUS function(EFI_EVENT Event) @nogc nothrow

Signals an event.

EFI_STALL
alias EFI_STALL = EFI_STATUS function(UINTN Microseconds) @nogc nothrow

Induces a fine-grained stall.

EFI_TIMER_DELAY
alias EFI_TIMER_DELAY = UINT32

Timer delay types

EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES
alias EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES = EFI_STATUS function(EFI_HANDLE Handle, ...) @nogc nothrow

Removes one or more protocol interfaces into the boot services environment.

EFI_UNINSTALL_PROTOCOL_INTERFACE
alias EFI_UNINSTALL_PROTOCOL_INTERFACE = EFI_STATUS function(EFI_HANDLE Handle, EFI_GUID* Protocol, void* Interface) @nogc nothrow

Removes a protocol interface from a device handle. It is recommended that UninstallMultipleProtocolInterfaces() be used in place of UninstallProtocolInterface().

EFI_UPDATE_CAPSULE
alias EFI_UPDATE_CAPSULE = EFI_STATUS function(EFI_CAPSULE_HEADER** CapsuleHeaderArray, UINTN CapsuleCount, EFI_PHYSICAL_ADDRESS ScatterGatherList) @nogc nothrow

Passes capsules to the firmware with both virtual and physical mapping. Depending on the intended consumption, the firmware may process the capsule immediately. If the payload should persist across a system reset, the reset value returned from EFI_QueryCapsuleCapabilities must be passed into ResetSystem() and will cause the capsule to be processed by the firmware as part of the reset process.

EFI_WAIT_FOR_EVENT
alias EFI_WAIT_FOR_EVENT = EFI_STATUS function(UINTN NumberOfEvents, EFI_EVENT* Event, UINTN* Index) @nogc nothrow

Stops execution until an event is signaled.

Manifest constants

EFI_MEMORY_DESCRIPTOR_VERSION
enum EFI_MEMORY_DESCRIPTOR_VERSION;

Memory descriptor version number.

EFI_UNSPECIFIED_TIMEZONE
enum EFI_UNSPECIFIED_TIMEZONE;

Value definition for EFI_TIME.TimeZone.

Structs

EFI_BOOT_SERVICES
struct EFI_BOOT_SERVICES

EFI Boot Services Table.

EFI_CAPSULE_BLOCK_DESCRIPTOR
struct EFI_CAPSULE_BLOCK_DESCRIPTOR

EFI Capsule Block Descriptor

EFI_CAPSULE_HEADER
struct EFI_CAPSULE_HEADER

EFI Capsule Header.

EFI_CAPSULE_TABLE
struct EFI_CAPSULE_TABLE

The EFI System Table entry must point to an array of capsules that contain the same CapsuleGuid value. The array must be prefixed by a UINT32 that represents the size of the array of capsules.

EFI_CONFIGURATION_TABLE
struct EFI_CONFIGURATION_TABLE

Contains a set of GUID/pointer pairs comprised of the ConfigurationTable field in the EFI System Table.

EFI_KEY_OPTION
struct EFI_KEY_OPTION

EFI Key Option.

EFI_LOAD_OPTION
struct EFI_LOAD_OPTION
EFI_MEMORY_DESCRIPTOR
struct EFI_MEMORY_DESCRIPTOR

Definition of an EFI memory descriptor.

EFI_OPEN_PROTOCOL_INFORMATION_ENTRY
struct EFI_OPEN_PROTOCOL_INFORMATION_ENTRY

EFI Oprn Protocol Information Entry

EFI_RUNTIME_SERVICES
struct EFI_RUNTIME_SERVICES

EFI Runtime Services Table.

EFI_SYSTEM_TABLE
struct EFI_SYSTEM_TABLE

EFI System Table

EFI_TIME_CAPABILITIES
struct EFI_TIME_CAPABILITIES

This provides the capabilities of the real time clock device as exposed through the EFI interfaces.

Unions

EFI_BOOT_KEY_DATA
union EFI_BOOT_KEY_DATA

EFI Boot Key Data

Meta