NeKernel dev
Loading...
Searching...
No Matches
EFI.h File Reference
#include <NeKit/Config.h>

Go to the source code of this file.

Classes

struct  EfiHandle
 Core Handle Kind Self is like NT's Win32 HANDLE type. More...
struct  EfiMemoryDescriptor
struct  EfiTableHeader
 Present in every header, used to identify a UEFI structure. More...
struct  EFI_SIMPLE_NETWORK_MODE
struct  EFI_SIMPLE_NETWORK_PROTOCOL
struct  EfiBitmask
struct  EfiGraphicsOutputBltPixel
struct  EfiGraphicsOutputProtocolModeInformation
struct  EfiGraphicsOutputProtocolMode
struct  EfiGraphicsOutputProtocol
struct  EfiLoadImageProtocol
struct  EfiLoadFileProtocol
struct  EfiDevicePathProtocol
struct  EfiFileDevicePathProtocol
struct  EFI_FINAL
 GUID type, something you can also find in CFKit. More...
struct  EfiBootServices
struct  EfiSimpleTextOutputProtocol
 PrintF like protocol. More...
struct  EfiInputKey
struct  EfiSimpleTextInputProtocol
struct  EfiSimpleFilesystemProtocol
struct  EfiRuntimeServices
struct  EfiSystemTable
 The Structure that they give you when booting. More...
struct  EfiIPV4
struct  EfiIPV6
struct  EfiIOToken
struct  EfiFileProtocol
struct  EfiTime
struct  _EfiCPUPhyiscalLocation
union  _EfiExtendedProcessorInformation
struct  _EfiProcessorInformation
struct  _EfiMpServicesProtocol

Macros

#define EFI_API   __attribute__((ms_abi))
#define EFIAPI   __attribute__((ms_abi))
#define IN
#define OUT
#define OPTIONAL
#define EFI_STATUS   EfiStatusType
#define EFI_FINAL   final
#define EFI_ACPI_TABLE_PROTOCOL_GUID    {0xffe06bdd, 0x6107, 0x46a6, {0x7b, 0xb2, 0x5a, 0x9c, 0x7e, 0xc5, 0x27, 0x5c}}
#define EFI_LOAD_FILE_PROTOCOL_GUID    {0x56EC3091, 0x954C, 0x11d2, {0x8e, 0x3f, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b}}
#define EFI_LOAD_FILE2_PROTOCOL_GUID    {0x4006c0c1, 0xfcb3, 0x403e, {0x99, 0x6d, 0x4a, 0x6c, 0x87, 0x24, 0xe0, 0x6d}}
#define EFI_LOADED_IMAGE_PROTOCOL_GUID    {0x5B1B31A1, 0x9562, 0x11d2, {0x8E, 0x3F, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B}}
#define EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID    {0x9042a9de, 0x23dc, 0x4a38, {0x96, 0xfb, 0x7a, 0xde, 0xd0, 0x80, 0x51, 0x6a}}
#define EFI_SIMPLE_NETWORK_PROTOCOL_GUID    {0xA19832B9, 0xAC25, 0x11D3, {0x9A, 0x2D, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}}
#define EFI_SIMPLE_NETWORK_PROTOCOL_REVISION   0x00010000
#define EFI_IP4_PROTOCOL_GUID    {0x41d94cd2, 0x35b6, 0x455a, {0x82, 0x58, 0xd4, 0xe5, 0x13, 0x34, 0xaa, 0xdd}}
#define EFI_LOADED_IMAGE_PROTOCOL_REVISION   0x1000
#define EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID    {0x0964e5b22, 0x6459, 0x11d2, {0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b}}
#define EFI_LOADED_IMAGE_DEVICE_PATH_PROTOCOL_GUID    {0xbc62157e, 0x3e33, 0x4fec, {0x99, 0x20, 0x2d, 0x3b, 0x36, 0xd7, 0x50, 0xdf}}
#define EFI_DEVICE_PATH_PROTOCOL_GUID    {0x9576e91, 0x6d3f, 0x11d2, {0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b}}
#define EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID    {0x0964e5b22, 0x6459, 0x11d2, {0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b}}
#define MAX_MCAST_FILTER_CNT   16
#define EFI_SIMPLE_TEXT_INPUT_PROTOCOL_GUID    {0x387477c1, 0x69c7, 0x11d2, {0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b}}
#define EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL   0x00000001
#define EFI_OPEN_PROTOCOL_GET_PROTOCOL   0x00000002
#define EFI_OPEN_PROTOCOL_TEST_PROTOCOL   0x00000004
#define EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER   0x00000008
#define EFI_OPEN_PROTOCOL_BY_DRIVER   0x00000010
#define EFI_OPEN_PROTOCOL_EXCLUSIVE   0x00000020

Typedefs

typedef UInt64 EfiStatusType
typedef Char16 EfiChar16Type
typedef struct EfiHandleEfiHandlePtr
 Core Handle Kind Self is like NT's Win32 HANDLE type.
typedef WideChar EfiCharType
typedef UInt64 EfiPhysicalAddress
typedef UIntPtr EfiVirtualAddress
typedef UInt64(EFI_APIEfiTextString) (struct EfiSimpleTextOutputProtocol *Self, const WideChar *OutputString)
typedef UInt64(EFI_APIEfiTextAttrib) (struct EfiSimpleTextOutputProtocol *Self, const WideChar Attribute)
typedef UInt64(EFI_APIEfiTextClear) (struct EfiSimpleTextOutputProtocol *Self)
typedef UInt64(EFI_APIEfiLoadFile) (EfiLoadFileProtocol *Self, EfiFileDevicePathProtocol *FilePath, Boolean BootPolicy, UInt32 *BufferSize, VoidPtr Buffer)
typedef UInt64(EFI_APIEfiCopyMem) (VoidPtr DstBuf, VoidPtr SrcBuf, SizeT Length)
typedef UInt64(EFI_APIEfiSetMem) (VoidPtr DstBuf, Char Byte, SizeT Length)
typedef UInt64(EFI_APIEfiHandleProtocol) (EfiHandlePtr Handle, EFI_GUID *Guid, VoidPtr *Device)
typedef UInt64(EFI_APIEfiLocateDevicePath) (EFI_GUID *Protocol, EfiDevicePathProtocol **DevicePath, EfiHandlePtr Device)
typedef UInt64(EFI_APIEfiStartImage) (EfiHandlePtr Handle, VoidPtr ArgsSize, VoidPtr ArgsPtr)
typedef UInt64(EFI_APIEfiLoadImage) (Boolean BootPolicy, EfiHandlePtr ParentHandle, EfiFileDevicePathProtocol *DeviceFile, VoidPtr buffer, SizeT size, EfiHandlePtr *ppHandle)
typedef enum EfiMemoryType EfiMemoryType
 EFI pool helpers, taken from iPXE.
typedef enum EfiAllocateType EfiAllocateType
typedef struct EfiMemoryDescriptor EfiMemoryDescriptor
typedef UInt64(EFI_APIEfiAllocatePool) (EfiMemoryType PoolType, UInt32 Size, VoidPtr *Buffer)
typedef UInt64(EFI_APIEfiFreePool) (VoidPtr Buffer)
typedef UInt64(EFI_APIEfiCalculateCrc32) (VoidPtr Data, UInt32 DataSize, UInt32 *CrcOut)
typedef struct EfiTableHeader EfiTableHeader
 Present in every header, used to identify a UEFI structure.
typedef UInt64 EfiImageUnload(EfiHandlePtr ImageHandle)
typedef EFI_STATUS(EFI_APIEFI_SIMPLE_NETWORK_START) (IN EFI_SIMPLE_NETWORK_PROTOCOL *This)
typedef EFI_STATUS(EFI_APIEFI_SIMPLE_NETWORK_STOP) (IN EFI_SIMPLE_NETWORK_PROTOCOL *This)
typedef EFI_STATUS(EFI_APIEFI_SIMPLE_NETWORK_INITIALIZE) (IN EFI_SIMPLE_NETWORK_PROTOCOL *This, IN UInt32 ExtraRxBufferSize OPTIONAL, IN UInt32 ExtraTxBufferSize OPTIONAL)
typedef EFI_STATUS(EFIAPIEFI_SIMPLE_NETWORK_RESET) (IN EFI_SIMPLE_NETWORK_PROTOCOL *This, IN Boolean ExtendedVerification)
typedef EFI_STATUS(EFIAPIEFI_SIMPLE_NETWORK_SHUTDOWN) (IN EFI_SIMPLE_NETWORK_PROTOCOL *This)
typedef UInt8 EfiMacAddress[32]
typedef EFI_STATUS(EFIAPIEFI_SIMPLE_NETWORK_TRANSMIT) (IN EFI_SIMPLE_NETWORK_PROTOCOL *This, IN UInt32 HeaderSize, IN UInt32 BufferSize, IN Void *Buffer, IN EfiMacAddress *SrcAddr OPTIONAL, IN EfiMacAddress *DestAddr OPTIONAL, IN UInt16 *Protocol OPTIONAL)
typedef EFI_STATUS(EFIAPIEFI_SIMPLE_NETWORK_RECEIVE) (IN EFI_SIMPLE_NETWORK_PROTOCOL *This, OUT UInt32 *HeaderSize OPTIONAL, IN OUT UInt32 *BufferSize, OUT Void *Buffer, OUT EfiMacAddress *SrcAddr OPTIONAL, OUT EfiMacAddress *DestAddr OPTIONAL, OUT UInt16 *Protocol OPTIONAL)
typedef struct EFI_SIMPLE_NETWORK_PROTOCOL EFI_SIMPLE_NETWORK_PROTOCOL
typedef struct EfiBitmask EfiBitmask
typedef enum EfiGraphicsOutputProtocolBltOperation EfiGraphicsOutputProtocolBltOperation
typedef struct EfiGraphicsOutputProtocolModeInformation EfiGraphicsOutputProtocolModeInformation
typedef UInt64(EFI_APIEfiGraphicsOutputProtocolQueryMode) (EfiGraphicsOutputProtocol *Self, UInt32 ModeNumber, UInt32 *SizeOfInfo, EfiGraphicsOutputProtocolModeInformation **Info)
typedef UInt64(EFI_APIEfiGraphicsOutputProtocolSetMode) (EfiGraphicsOutputProtocol *Self, UInt32 ModeNumber)
typedef UInt64(EFI_APIEfiGraphicsOutputProtocolBlt) (EfiGraphicsOutputProtocol *Self, EfiGraphicsOutputBltPixel *BltBuffer, EfiGraphicsOutputProtocolBltOperation BltOperation, UInt32 SourceX, UInt32 SourceY, UInt32 DestinationX, UInt32 DestinationY, UInt32 Width, UInt32 Height, UInt32 Delta)
typedef struct EfiGraphicsOutputProtocol EfiGraphicsOutputProtocol
typedef struct EfiLoadImageProtocol EfiLoadImageProtocol
typedef struct EfiLoadFileProtocol EfiLoadFileProtocol
typedef struct EfiDevicePathProtocol EfiDevicePathProtocol
typedef struct EfiFileDevicePathProtocol EfiFileDevicePathProtocol
typedef UInt64(EFI_APIEfiExitBootServices) (VoidPtr ImageHandle, UInt32 MapKey)
typedef UInt64(EFI_APIEfiAllocatePages) (EfiAllocateType AllocType, EfiMemoryType MemType, UInt32 Count, EfiPhysicalAddress *Memory)
typedef UInt64(EFI_APIEfiFreePages) (EfiPhysicalAddress *Memory, UInt32 Pages)
typedef UInt64(EFI_APIEfiGetMemoryMap) (UInt32 *MapSize, EfiMemoryDescriptor *DescPtr, UInt32 *MapKey, UInt32 *DescSize, UInt32 *DescVersion)
typedef struct EFI_GUID EFI_FINAL EFI_GUID
 GUID type, something you can also find in CFKit.
typedef UInt64(EFI_APIEfiLocateProtocol) (EFI_GUID *Protocol, VoidPtr Registration, VoidPtr *Interface)
typedef UInt64(EFI_APIEfiOpenProtocol) (EfiHandlePtr Handle, EFI_GUID *Guid, VoidPtr *Interface, EfiHandlePtr AgentHandle, EfiHandlePtr ControllerHandle, UInt32 Attributes)
typedef UInt64(EFI_APIEfiEnableCursor) (EfiSimpleTextOutputProtocol *Self, Boolean Visible)

Enumerations

enum  EfiMemoryType {
  EfiReservedMemoryType , EfiLoaderCode , EfiLoaderData , EfiBootServicesCode ,
  EfiBootServicesData , EfiRuntimeServicesCode , EfiRuntimeServicesData , EfiConventionalMemory ,
  EfiUnusableMemory , EfiACPIReclaimMemory , EfiACPIMemoryNVS , EfiMemoryMappedIO ,
  EfiMemoryMappedIOPortSpace , EfiPalCode , EfiPersistentMemory , EfiUnacceptedMemoryType ,
  EfiMaxMemoryType
}
 EFI pool helpers, taken from iPXE. More...
enum  EfiAllocateType { AllocateAnyPages , AllocateMaxAddress , AllocateAddress , MaxAllocateType }
enum  {
  kPixelRedGreenBlueReserved8BitPerColor , kPixelBlueGreenRedReserved8BitPerColor , kPixelBitMask , kPixelBltOnly ,
  kPixelFormatMax
}
enum  EfiGraphicsOutputProtocolBltOperation {
  EfiBltVideoFill , EfiBltVideoToBltBuffer , EfiBltBufferToVideo , EfiBltVideoToVideo ,
  EfiGraphicsOutputBltOperationMax
}

EfiBootServices

UEFI Boot Services record, it contains functions necessary to a firmware level application.

#define kEntireDevPath   0xFF
#define kThisInstancePath   0x01
#define kEfiOk   0
#define kEfiFail   -1
#define kBufferTooSmall   5
#define EFI_EXTERN_C   extern "C"
#define kEFIYellow   (0x01 | 0x02 | 0x04 | 0x08)
#define END_DEVICE_PATH_TYPE   0x7f
#define END_ENTIRE_DEVICE_PATH_SUBTYPE   0xFF
#define END_INSTANCE_DEVICE_PATH_SUBTYPE   0x01
#define kEfiOffsetOf(T, F)
#define kEFIFileRead   0x0000000000000001
 File I/O macros.
#define kEFIFileWrite   0x0000000000000002
#define kEFIFileCreate   0x0000000000000000
#define kEFIReadOnly   0x01
#define kEFIHidden   0x02
#define kEFISystem   0x04
#define kEFIReserved   0x08
#define kEFIDirectory   0x10
#define kEFIArchive   0x20
#define EFI_FILE_PROTOCOL_REVISION   0x00010000
#define EFI_FILE_PROTOCOL_REVISION2   0x00020000
#define EFI_FILE_PROTOCOL_LATEST_REVISION   EFI_FILE_PROTOCOL_REVISION2
#define EFI_EXTRA_DESCRIPTOR_SIZE   8
#define EFI_MP_SERVICES_PROTOCOL_GUID    {0x3fdda605, 0xa76e, 0x4f46, {0xad, 0x29, 0x12, 0xf4, 0x53, 0x1b, 0x3d, 0x08}}
#define PROCESSOR_AS_BSP_BIT   0x00000001
#define PROCESSOR_ENABLED_BIT   0x00000002
#define PROCESSOR_HEALTH_STATUS_BIT   0x00000004
#define END_OF_CPU_LIST   0xffffffff
#define EFI_FILE_INFO_GUID    {0x09576e92, 0x6d3f, 0x11d2, {0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b}}
enum  {
  kEFIHwDevicePath = 0x01 , kEFIAcpiDevicePath = 0x02 , kEFIMessaingDevicePath = 0x03 , kEFIMediaDevicePath = 0x04 ,
  kEFIBiosBootPath = 0x05 , kEFIEndOfPath = 0x06 , kEFICount = 6
}
typedef struct EfiBootServices EfiBootServices
typedef struct EfiSimpleTextOutputProtocol EfiSimpleTextOutputProtocol
 PrintF like protocol.
typedef EfiStatusType(EFI_APIEfiInputReadKey) (IN EfiSimpleTextInputProtocol *This, OUT EfiInputKey *Key)
typedef EfiStatusType(EFI_APIEfiInputReset) (IN EfiSimpleTextInputProtocol *This, IN Boolean ExtendedChk)
typedef EfiStatusType(EFI_APIEfiWaitForEvent) (IN UInt32 NumberOfEvents, IN VoidPtr Event, OUT UInt32 *Index)
typedef struct EfiSimpleTextInputProtocol EfiSimpleTextInputProtocol
typedef UInt64(EFI_APIEfiOpenVolume) (struct EfiSimpleFilesystemProtocol *, struct EfiFileProtocol **)
 @biref Open Volume procedure ptr.
typedef struct EfiRuntimeServices EfiRuntimeServices
typedef struct EfiSystemTable EfiSystemTable
 The Structure that they give you when booting.
typedef struct EfiIPV4 EfiIPV4
typedef struct EfiIPV6 EfiIPV6
typedef struct EfiIOToken EfiIOToken
typedef struct EfiFileProtocol EfiFileProtocol
typedef struct EfiFileProtocolEfiFileProtocolPtr
typedef UInt64 EfiCursorType
typedef struct EfiTime EfiTime
typedef struct _EfiCPUPhyiscalLocation EfiCPUPhyiscalLocation
typedef union _EfiExtendedProcessorInformation EfiExtendedProcessorInformation
typedef struct _EfiProcessorInformation EfiProcessorInformation
typedef EfiStatusType EFI_API(* EfiMpServicesGetNumberOfProcessors) (IN struct _EfiMpServicesProtocol *Self, OUT UInt32 *NumberOfProcessors, OUT UInt32 *NumberOfEnabledProcessors)
typedef EfiStatusType EFI_API(* EfiMpServicesGetProcessorInfo) (IN struct _EfiMpServicesProtocol *Self, IN UInt32 *ProcessorNumber, OUT struct _EfiProcessorInformation *NumberOfEnabledProcessors)
typedef void EFI_API(* EFI_AP_PROCEDURE) (IN VoidPtr ProcedureArgument)
typedef EfiStatusType EFI_API(* EfiMpServicesStartupAllAPS) (IN struct _EfiMpServicesProtocol *Self, IN EFI_AP_PROCEDURE Procedure, IN Boolean SingleThread, IN VoidPtr WaitEvent OPTIONAL, IN UInt32 TimeoutInMicroSeconds, IN Void *ProcedureArgument OPTIONAL, OUT UInt32 **FailedCpuList OPTIONAL)
typedef EfiStatusType EFI_API(* EfiMpServicesSwitchBSP) (IN struct _EfiMpServicesProtocol *Self, IN UInt32 ProcessorNumber, IN Boolean EnableOldBSP)
typedef EfiStatusType EFI_API(* EfiMpServicesStartupThisAP) (IN struct _EfiMpServicesProtocol *Self, IN EFI_AP_PROCEDURE Procedure, IN UInt32 ProcessorNumber, IN VoidPtr WaitEvent OPTIONAL, IN UInt32 TimeoutInMicroseconds, IN Void *ProcedureArgument OPTIONAL, OUT Boolean *Finished OPTIONAL)
typedef EfiStatusType EFI_API(* EfiMpServicesDisableThisAP) (IN struct _EfiMpServicesProtocol *Self, IN UInt32 ProcessorNumber, IN Boolean EnableAP, IN UInt32 *HealthFlag OPTIONAL)
typedef EfiStatusType EFI_API(* EfiMpServicesWhoAmI) (IN struct _EfiMpServicesProtocol *Self, OUT UInt32 *ProcessorNumber)
typedef struct _EfiMpServicesProtocol EfiMpServicesProtocol

Macro Definition Documentation

◆ EFI_ACPI_TABLE_PROTOCOL_GUID

#define EFI_ACPI_TABLE_PROTOCOL_GUID    {0xffe06bdd, 0x6107, 0x46a6, {0x7b, 0xb2, 0x5a, 0x9c, 0x7e, 0xc5, 0x27, 0x5c}}

◆ EFI_API

#define EFI_API   __attribute__((ms_abi))

◆ EFI_DEVICE_PATH_PROTOCOL_GUID

#define EFI_DEVICE_PATH_PROTOCOL_GUID    {0x9576e91, 0x6d3f, 0x11d2, {0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b}}

◆ EFI_EXTERN_C

#define EFI_EXTERN_C   extern "C"

◆ EFI_EXTRA_DESCRIPTOR_SIZE

#define EFI_EXTRA_DESCRIPTOR_SIZE   8

◆ EFI_FILE_INFO_GUID

#define EFI_FILE_INFO_GUID    {0x09576e92, 0x6d3f, 0x11d2, {0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b}}

◆ EFI_FILE_PROTOCOL_LATEST_REVISION

#define EFI_FILE_PROTOCOL_LATEST_REVISION   EFI_FILE_PROTOCOL_REVISION2

◆ EFI_FILE_PROTOCOL_REVISION

#define EFI_FILE_PROTOCOL_REVISION   0x00010000

◆ EFI_FILE_PROTOCOL_REVISION2

#define EFI_FILE_PROTOCOL_REVISION2   0x00020000

◆ EFI_FINAL

#define EFI_FINAL   final

◆ EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID

#define EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID    {0x9042a9de, 0x23dc, 0x4a38, {0x96, 0xfb, 0x7a, 0xde, 0xd0, 0x80, 0x51, 0x6a}}

◆ EFI_IP4_PROTOCOL_GUID

#define EFI_IP4_PROTOCOL_GUID    {0x41d94cd2, 0x35b6, 0x455a, {0x82, 0x58, 0xd4, 0xe5, 0x13, 0x34, 0xaa, 0xdd}}

◆ EFI_LOAD_FILE2_PROTOCOL_GUID

#define EFI_LOAD_FILE2_PROTOCOL_GUID    {0x4006c0c1, 0xfcb3, 0x403e, {0x99, 0x6d, 0x4a, 0x6c, 0x87, 0x24, 0xe0, 0x6d}}

◆ EFI_LOAD_FILE_PROTOCOL_GUID

#define EFI_LOAD_FILE_PROTOCOL_GUID    {0x56EC3091, 0x954C, 0x11d2, {0x8e, 0x3f, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b}}

◆ EFI_LOADED_IMAGE_DEVICE_PATH_PROTOCOL_GUID

#define EFI_LOADED_IMAGE_DEVICE_PATH_PROTOCOL_GUID    {0xbc62157e, 0x3e33, 0x4fec, {0x99, 0x20, 0x2d, 0x3b, 0x36, 0xd7, 0x50, 0xdf}}

◆ EFI_LOADED_IMAGE_PROTOCOL_GUID

#define EFI_LOADED_IMAGE_PROTOCOL_GUID    {0x5B1B31A1, 0x9562, 0x11d2, {0x8E, 0x3F, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B}}

◆ EFI_LOADED_IMAGE_PROTOCOL_REVISION

#define EFI_LOADED_IMAGE_PROTOCOL_REVISION   0x1000

◆ EFI_MP_SERVICES_PROTOCOL_GUID

#define EFI_MP_SERVICES_PROTOCOL_GUID    {0x3fdda605, 0xa76e, 0x4f46, {0xad, 0x29, 0x12, 0xf4, 0x53, 0x1b, 0x3d, 0x08}}

◆ EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER

#define EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER   0x00000008

◆ EFI_OPEN_PROTOCOL_BY_DRIVER

#define EFI_OPEN_PROTOCOL_BY_DRIVER   0x00000010

◆ EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL

#define EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL   0x00000001

some helpers

◆ EFI_OPEN_PROTOCOL_EXCLUSIVE

#define EFI_OPEN_PROTOCOL_EXCLUSIVE   0x00000020

◆ EFI_OPEN_PROTOCOL_GET_PROTOCOL

#define EFI_OPEN_PROTOCOL_GET_PROTOCOL   0x00000002

◆ EFI_OPEN_PROTOCOL_TEST_PROTOCOL

#define EFI_OPEN_PROTOCOL_TEST_PROTOCOL   0x00000004

◆ EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID [1/2]

#define EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID    {0x0964e5b22, 0x6459, 0x11d2, {0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b}}

◆ EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID [2/2]

#define EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID    {0x0964e5b22, 0x6459, 0x11d2, {0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b}}

◆ EFI_SIMPLE_NETWORK_PROTOCOL_GUID

#define EFI_SIMPLE_NETWORK_PROTOCOL_GUID    {0xA19832B9, 0xAC25, 0x11D3, {0x9A, 0x2D, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}}

◆ EFI_SIMPLE_NETWORK_PROTOCOL_REVISION

#define EFI_SIMPLE_NETWORK_PROTOCOL_REVISION   0x00010000

◆ EFI_SIMPLE_TEXT_INPUT_PROTOCOL_GUID

#define EFI_SIMPLE_TEXT_INPUT_PROTOCOL_GUID    {0x387477c1, 0x69c7, 0x11d2, {0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b}}

◆ EFI_STATUS

#define EFI_STATUS   EfiStatusType

◆ EFIAPI

#define EFIAPI   __attribute__((ms_abi))

◆ END_DEVICE_PATH_TYPE

#define END_DEVICE_PATH_TYPE   0x7f

◆ END_ENTIRE_DEVICE_PATH_SUBTYPE

#define END_ENTIRE_DEVICE_PATH_SUBTYPE   0xFF

◆ END_INSTANCE_DEVICE_PATH_SUBTYPE

#define END_INSTANCE_DEVICE_PATH_SUBTYPE   0x01

◆ END_OF_CPU_LIST

#define END_OF_CPU_LIST   0xffffffff

◆ IN

#define IN

◆ kBufferTooSmall

#define kBufferTooSmall   5

◆ kEFIArchive

#define kEFIArchive   0x20

◆ kEFIDirectory

#define kEFIDirectory   0x10

◆ kEfiFail

#define kEfiFail   -1

◆ kEFIFileCreate

#define kEFIFileCreate   0x0000000000000000

◆ kEFIFileRead

#define kEFIFileRead   0x0000000000000001

File I/O macros.

◆ kEFIFileWrite

#define kEFIFileWrite   0x0000000000000002

◆ kEFIHidden

#define kEFIHidden   0x02

◆ kEfiOffsetOf

#define kEfiOffsetOf ( T,
F )
Value:
__builtin_offsetof(T, F)

◆ kEfiOk

#define kEfiOk   0

◆ kEFIReadOnly

#define kEFIReadOnly   0x01

◆ kEFIReserved

#define kEFIReserved   0x08

◆ kEFISystem

#define kEFISystem   0x04

◆ kEFIYellow

#define kEFIYellow   (0x01 | 0x02 | 0x04 | 0x08)

◆ kEntireDevPath

#define kEntireDevPath   0xFF

◆ kThisInstancePath

#define kThisInstancePath   0x01

◆ MAX_MCAST_FILTER_CNT

#define MAX_MCAST_FILTER_CNT   16

◆ OPTIONAL

#define OPTIONAL

◆ OUT

#define OUT

◆ PROCESSOR_AS_BSP_BIT

#define PROCESSOR_AS_BSP_BIT   0x00000001

◆ PROCESSOR_ENABLED_BIT

#define PROCESSOR_ENABLED_BIT   0x00000002

◆ PROCESSOR_HEALTH_STATUS_BIT

#define PROCESSOR_HEALTH_STATUS_BIT   0x00000004

Typedef Documentation

◆ EFI_AP_PROCEDURE

typedef void EFI_API(* EFI_AP_PROCEDURE) (IN VoidPtr ProcedureArgument)

◆ EFI_GUID

typedef struct EFI_GUID EFI_FINAL EFI_GUID

GUID type, something you can also find in CFKit.

◆ EFI_SIMPLE_NETWORK_INITIALIZE

typedef EFI_STATUS(EFI_API * EFI_SIMPLE_NETWORK_INITIALIZE) (IN EFI_SIMPLE_NETWORK_PROTOCOL *This, IN UInt32 ExtraRxBufferSize OPTIONAL, IN UInt32 ExtraTxBufferSize OPTIONAL)

◆ EFI_SIMPLE_NETWORK_PROTOCOL

typedef struct EFI_SIMPLE_NETWORK_PROTOCOL EFI_SIMPLE_NETWORK_PROTOCOL

◆ EFI_SIMPLE_NETWORK_RECEIVE

typedef EFI_STATUS(EFIAPI * EFI_SIMPLE_NETWORK_RECEIVE) (IN EFI_SIMPLE_NETWORK_PROTOCOL *This, OUT UInt32 *HeaderSize OPTIONAL, IN OUT UInt32 *BufferSize, OUT Void *Buffer, OUT EfiMacAddress *SrcAddr OPTIONAL, OUT EfiMacAddress *DestAddr OPTIONAL, OUT UInt16 *Protocol OPTIONAL)

◆ EFI_SIMPLE_NETWORK_RESET

typedef EFI_STATUS(EFIAPI * EFI_SIMPLE_NETWORK_RESET) (IN EFI_SIMPLE_NETWORK_PROTOCOL *This, IN Boolean ExtendedVerification)

◆ EFI_SIMPLE_NETWORK_SHUTDOWN

typedef EFI_STATUS(EFIAPI * EFI_SIMPLE_NETWORK_SHUTDOWN) (IN EFI_SIMPLE_NETWORK_PROTOCOL *This)

◆ EFI_SIMPLE_NETWORK_START

typedef EFI_STATUS(EFI_API * EFI_SIMPLE_NETWORK_START) (IN EFI_SIMPLE_NETWORK_PROTOCOL *This)

◆ EFI_SIMPLE_NETWORK_STOP

typedef EFI_STATUS(EFI_API * EFI_SIMPLE_NETWORK_STOP) (IN EFI_SIMPLE_NETWORK_PROTOCOL *This)

◆ EFI_SIMPLE_NETWORK_TRANSMIT

typedef EFI_STATUS(EFIAPI * EFI_SIMPLE_NETWORK_TRANSMIT) (IN EFI_SIMPLE_NETWORK_PROTOCOL *This, IN UInt32 HeaderSize, IN UInt32 BufferSize, IN Void *Buffer, IN EfiMacAddress *SrcAddr OPTIONAL, IN EfiMacAddress *DestAddr OPTIONAL, IN UInt16 *Protocol OPTIONAL)

◆ EfiAllocatePages

typedef UInt64(EFI_API * EfiAllocatePages) (EfiAllocateType AllocType, EfiMemoryType MemType, UInt32 Count, EfiPhysicalAddress *Memory)

◆ EfiAllocatePool

typedef UInt64(EFI_API * EfiAllocatePool) (EfiMemoryType PoolType, UInt32 Size, VoidPtr *Buffer)

◆ EfiAllocateType

◆ EfiBitmask

typedef struct EfiBitmask EfiBitmask

◆ EfiBootServices

typedef struct EfiBootServices EfiBootServices

◆ EfiCalculateCrc32

typedef UInt64(EFI_API * EfiCalculateCrc32) (VoidPtr Data, UInt32 DataSize, UInt32 *CrcOut)

◆ EfiChar16Type

◆ EfiCharType

◆ EfiCopyMem

typedef UInt64(EFI_API * EfiCopyMem) (VoidPtr DstBuf, VoidPtr SrcBuf, SizeT Length)

◆ EfiCPUPhyiscalLocation

◆ EfiCursorType

◆ EfiDevicePathProtocol

typedef struct EfiDevicePathProtocol EfiDevicePathProtocol

◆ EfiEnableCursor

typedef UInt64(EFI_API * EfiEnableCursor) (EfiSimpleTextOutputProtocol *Self, Boolean Visible)

◆ EfiExitBootServices

typedef UInt64(EFI_API * EfiExitBootServices) (VoidPtr ImageHandle, UInt32 MapKey)

◆ EfiExtendedProcessorInformation

◆ EfiFileDevicePathProtocol

typedef struct EfiFileDevicePathProtocol EfiFileDevicePathProtocol

◆ EfiFileProtocol

typedef struct EfiFileProtocol EfiFileProtocol

◆ EfiFileProtocolPtr

◆ EfiFreePages

typedef UInt64(EFI_API * EfiFreePages) (EfiPhysicalAddress *Memory, UInt32 Pages)

◆ EfiFreePool

typedef UInt64(EFI_API * EfiFreePool) (VoidPtr Buffer)

◆ EfiGetMemoryMap

typedef UInt64(EFI_API * EfiGetMemoryMap) (UInt32 *MapSize, EfiMemoryDescriptor *DescPtr, UInt32 *MapKey, UInt32 *DescSize, UInt32 *DescVersion)

◆ EfiGraphicsOutputProtocol

typedef struct EfiGraphicsOutputProtocol EfiGraphicsOutputProtocol

◆ EfiGraphicsOutputProtocolBlt

typedef UInt64(EFI_API * EfiGraphicsOutputProtocolBlt) (EfiGraphicsOutputProtocol *Self, EfiGraphicsOutputBltPixel *BltBuffer, EfiGraphicsOutputProtocolBltOperation BltOperation, UInt32 SourceX, UInt32 SourceY, UInt32 DestinationX, UInt32 DestinationY, UInt32 Width, UInt32 Height, UInt32 Delta)

◆ EfiGraphicsOutputProtocolBltOperation

◆ EfiGraphicsOutputProtocolModeInformation

typedef struct EfiGraphicsOutputProtocolModeInformation EfiGraphicsOutputProtocolModeInformation

◆ EfiGraphicsOutputProtocolQueryMode

typedef UInt64(EFI_API * EfiGraphicsOutputProtocolQueryMode) (EfiGraphicsOutputProtocol *Self, UInt32 ModeNumber, UInt32 *SizeOfInfo, EfiGraphicsOutputProtocolModeInformation **Info)

◆ EfiGraphicsOutputProtocolSetMode

typedef UInt64(EFI_API * EfiGraphicsOutputProtocolSetMode) (EfiGraphicsOutputProtocol *Self, UInt32 ModeNumber)

◆ EfiHandleProtocol

typedef UInt64(EFI_API * EfiHandleProtocol) (EfiHandlePtr Handle, EFI_GUID *Guid, VoidPtr *Device)

◆ EfiHandlePtr

typedef struct EfiHandle* EfiHandlePtr

Core Handle Kind Self is like NT's Win32 HANDLE type.

◆ EfiImageUnload

typedef UInt64 EfiImageUnload(EfiHandlePtr ImageHandle)

◆ EfiInputReadKey

typedef EfiStatusType(EFI_API * EfiInputReadKey) (IN EfiSimpleTextInputProtocol *This, OUT EfiInputKey *Key)

◆ EfiInputReset

typedef EfiStatusType(EFI_API * EfiInputReset) (IN EfiSimpleTextInputProtocol *This, IN Boolean ExtendedChk)

◆ EfiIOToken

typedef struct EfiIOToken EfiIOToken

◆ EfiIPV4

typedef struct EfiIPV4 EfiIPV4

◆ EfiIPV6

typedef struct EfiIPV6 EfiIPV6

16-byte buffer. An IPv6 internet protocol address.

◆ EfiLoadFile

typedef UInt64(EFI_API * EfiLoadFile) (EfiLoadFileProtocol *Self, EfiFileDevicePathProtocol *FilePath, Boolean BootPolicy, UInt32 *BufferSize, VoidPtr Buffer)

◆ EfiLoadFileProtocol

typedef struct EfiLoadFileProtocol EfiLoadFileProtocol

◆ EfiLoadImage

typedef UInt64(EFI_API * EfiLoadImage) (Boolean BootPolicy, EfiHandlePtr ParentHandle, EfiFileDevicePathProtocol *DeviceFile, VoidPtr buffer, SizeT size, EfiHandlePtr *ppHandle)

◆ EfiLoadImageProtocol

typedef struct EfiLoadImageProtocol EfiLoadImageProtocol

◆ EfiLocateDevicePath

typedef UInt64(EFI_API * EfiLocateDevicePath) (EFI_GUID *Protocol, EfiDevicePathProtocol **DevicePath, EfiHandlePtr Device)

◆ EfiLocateProtocol

typedef UInt64(EFI_API * EfiLocateProtocol) (EFI_GUID *Protocol, VoidPtr Registration, VoidPtr *Interface)

◆ EfiMacAddress

typedef UInt8 EfiMacAddress[32]

◆ EfiMemoryDescriptor

typedef struct EfiMemoryDescriptor EfiMemoryDescriptor

◆ EfiMemoryType

EFI pool helpers, taken from iPXE.

◆ EfiMpServicesDisableThisAP

typedef EfiStatusType EFI_API(* EfiMpServicesDisableThisAP) (IN struct _EfiMpServicesProtocol *Self, IN UInt32 ProcessorNumber, IN Boolean EnableAP, IN UInt32 *HealthFlag OPTIONAL)

◆ EfiMpServicesGetNumberOfProcessors

typedef EfiStatusType EFI_API(* EfiMpServicesGetNumberOfProcessors) (IN struct _EfiMpServicesProtocol *Self, OUT UInt32 *NumberOfProcessors, OUT UInt32 *NumberOfEnabledProcessors)

◆ EfiMpServicesGetProcessorInfo

typedef EfiStatusType EFI_API(* EfiMpServicesGetProcessorInfo) (IN struct _EfiMpServicesProtocol *Self, IN UInt32 *ProcessorNumber, OUT struct _EfiProcessorInformation *NumberOfEnabledProcessors)

◆ EfiMpServicesProtocol

◆ EfiMpServicesStartupAllAPS

typedef EfiStatusType EFI_API(* EfiMpServicesStartupAllAPS) (IN struct _EfiMpServicesProtocol *Self, IN EFI_AP_PROCEDURE Procedure, IN Boolean SingleThread, IN VoidPtr WaitEvent OPTIONAL, IN UInt32 TimeoutInMicroSeconds, IN Void *ProcedureArgument OPTIONAL, OUT UInt32 **FailedCpuList OPTIONAL)

◆ EfiMpServicesStartupThisAP

typedef EfiStatusType EFI_API(* EfiMpServicesStartupThisAP) (IN struct _EfiMpServicesProtocol *Self, IN EFI_AP_PROCEDURE Procedure, IN UInt32 ProcessorNumber, IN VoidPtr WaitEvent OPTIONAL, IN UInt32 TimeoutInMicroseconds, IN Void *ProcedureArgument OPTIONAL, OUT Boolean *Finished OPTIONAL)

◆ EfiMpServicesSwitchBSP

typedef EfiStatusType EFI_API(* EfiMpServicesSwitchBSP) (IN struct _EfiMpServicesProtocol *Self, IN UInt32 ProcessorNumber, IN Boolean EnableOldBSP)

◆ EfiMpServicesWhoAmI

typedef EfiStatusType EFI_API(* EfiMpServicesWhoAmI) (IN struct _EfiMpServicesProtocol *Self, OUT UInt32 *ProcessorNumber)

◆ EfiOpenProtocol

typedef UInt64(EFI_API * EfiOpenProtocol) (EfiHandlePtr Handle, EFI_GUID *Guid, VoidPtr *Interface, EfiHandlePtr AgentHandle, EfiHandlePtr ControllerHandle, UInt32 Attributes)

◆ EfiOpenVolume

typedef UInt64(EFI_API * EfiOpenVolume) (struct EfiSimpleFilesystemProtocol *, struct EfiFileProtocol **)

@biref Open Volume procedure ptr.

◆ EfiPhysicalAddress

◆ EfiProcessorInformation

◆ EfiRuntimeServices

typedef struct EfiRuntimeServices EfiRuntimeServices

◆ EfiSetMem

typedef UInt64(EFI_API * EfiSetMem) (VoidPtr DstBuf, Char Byte, SizeT Length)

◆ EfiSimpleTextInputProtocol

typedef struct EfiSimpleTextInputProtocol EfiSimpleTextInputProtocol

◆ EfiSimpleTextOutputProtocol

typedef struct EfiSimpleTextOutputProtocol EfiSimpleTextOutputProtocol

PrintF like protocol.

◆ EfiStartImage

typedef UInt64(EFI_API * EfiStartImage) (EfiHandlePtr Handle, VoidPtr ArgsSize, VoidPtr ArgsPtr)

◆ EfiStatusType

◆ EfiSystemTable

typedef struct EfiSystemTable EfiSystemTable

The Structure that they give you when booting.

◆ EfiTableHeader

typedef struct EfiTableHeader EfiTableHeader

Present in every header, used to identify a UEFI structure.

◆ EfiTextAttrib

typedef UInt64(EFI_API * EfiTextAttrib) (struct EfiSimpleTextOutputProtocol *Self, const WideChar Attribute)

◆ EfiTextClear

typedef UInt64(EFI_API * EfiTextClear) (struct EfiSimpleTextOutputProtocol *Self)

◆ EfiTextString

typedef UInt64(EFI_API * EfiTextString) (struct EfiSimpleTextOutputProtocol *Self, const WideChar *OutputString)

What's BootBolicy? If TRUE, indicates that the request originates from the boot manager, and that the boot manager is attempting to load FilePath as a boot selection. If FALSE, then FilePath must match an exact file to be loaded.

◆ EfiTime

typedef struct EfiTime EfiTime

◆ EfiVirtualAddress

◆ EfiWaitForEvent

typedef EfiStatusType(EFI_API * EfiWaitForEvent) (IN UInt32 NumberOfEvents, IN VoidPtr Event, OUT UInt32 *Index)

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
kEFIHwDevicePath 
kEFIAcpiDevicePath 
kEFIMessaingDevicePath 
kEFIMediaDevicePath 
kEFIBiosBootPath 
kEFIEndOfPath 
kEFICount 

◆ anonymous enum

anonymous enum
Enumerator
kPixelRedGreenBlueReserved8BitPerColor 
kPixelBlueGreenRedReserved8BitPerColor 
kPixelBitMask 
kPixelBltOnly 
kPixelFormatMax 

◆ EfiAllocateType

Enumerator
AllocateAnyPages 

Anything that satisfy the request.

AllocateMaxAddress 
AllocateAddress 

Allocate pages at a specified address.

MaxAllocateType 

Maximum enumeration value that may be used for bounds checking.

◆ EfiGraphicsOutputProtocolBltOperation

Enumerator
EfiBltVideoFill 
EfiBltVideoToBltBuffer 
EfiBltBufferToVideo 
EfiBltVideoToVideo 
EfiGraphicsOutputBltOperationMax 

◆ EfiMemoryType

EFI pool helpers, taken from iPXE.

Enumerator
EfiReservedMemoryType 

Not used.

EfiLoaderCode 

The code portions of a loaded application. (Note that UEFI OS loaders are UEFI applications.)

EfiLoaderData 

The data portions of a loaded application and the default data allocation type used by an application to allocate pool memory.

EfiBootServicesCode 

The code portions of a loaded Boot Services Driver.

EfiBootServicesData 

The data portions of a loaded Boot Serves Driver, and the default data allocation type used by a Boot Services Driver to allocate pool memory.

EfiRuntimeServicesCode 

The code portions of a loaded Runtime Services Driver.

EfiRuntimeServicesData 

The data portions of a loaded Runtime Services Driver and the default data allocation type used by a Runtime Services Driver to allocate pool memory.

EfiConventionalMemory 

Free (unallocated) memory.

EfiUnusableMemory 

Memory in which errors have been detected.

EfiACPIReclaimMemory 

Memory that holds the ACPI tables.

EfiACPIMemoryNVS 

Address space reserved for use by the firmware.

EfiMemoryMappedIO 

Used by system firmware to request that a memory-mapped IO region be mapped by the OS to a virtual address so it can be accessed by EFI runtime services.

EfiMemoryMappedIOPortSpace 

System memory-mapped IO region that is used to translate memory cycles to IO cycles by the processor.

EfiPalCode 

Address space reserved by the firmware for code that is part of the processor.

EfiPersistentMemory 

A memory region that operates as EfiConventionalMemory, however it happens to also support byte-addressable non-volatility.

EfiUnacceptedMemoryType 

A memory region that describes system memory that has not been accepted by a corresponding call to the underlying isolation architecture.

EfiMaxMemoryType 

The last type of memory. Not a real type.