1*4a5d661aSToomas Soome #ifndef _EFI_API_H 2*4a5d661aSToomas Soome #define _EFI_API_H 3*4a5d661aSToomas Soome 4*4a5d661aSToomas Soome /*++ 5*4a5d661aSToomas Soome 6*4a5d661aSToomas Soome Copyright (c) 1999 - 2002 Intel Corporation. All rights reserved 7*4a5d661aSToomas Soome This software and associated documentation (if any) is furnished 8*4a5d661aSToomas Soome under a license and may only be used or copied in accordance 9*4a5d661aSToomas Soome with the terms of the license. Except as permitted by such 10*4a5d661aSToomas Soome license, no part of this software or documentation may be 11*4a5d661aSToomas Soome reproduced, stored in a retrieval system, or transmitted in any 12*4a5d661aSToomas Soome form or by any means without the express written consent of 13*4a5d661aSToomas Soome Intel Corporation. 14*4a5d661aSToomas Soome 15*4a5d661aSToomas Soome Module Name: 16*4a5d661aSToomas Soome 17*4a5d661aSToomas Soome efiapi.h 18*4a5d661aSToomas Soome 19*4a5d661aSToomas Soome Abstract: 20*4a5d661aSToomas Soome 21*4a5d661aSToomas Soome Global EFI runtime & boot service interfaces 22*4a5d661aSToomas Soome 23*4a5d661aSToomas Soome 24*4a5d661aSToomas Soome 25*4a5d661aSToomas Soome 26*4a5d661aSToomas Soome Revision History 27*4a5d661aSToomas Soome 28*4a5d661aSToomas Soome --*/ 29*4a5d661aSToomas Soome 30*4a5d661aSToomas Soome // 31*4a5d661aSToomas Soome // EFI Specification Revision 32*4a5d661aSToomas Soome // 33*4a5d661aSToomas Soome 34*4a5d661aSToomas Soome #define EFI_SPECIFICATION_MAJOR_REVISION 1 35*4a5d661aSToomas Soome #define EFI_SPECIFICATION_MINOR_REVISION 10 36*4a5d661aSToomas Soome 37*4a5d661aSToomas Soome // 38*4a5d661aSToomas Soome // Declare forward referenced data structures 39*4a5d661aSToomas Soome // 40*4a5d661aSToomas Soome 41*4a5d661aSToomas Soome INTERFACE_DECL(_EFI_SYSTEM_TABLE); 42*4a5d661aSToomas Soome 43*4a5d661aSToomas Soome // 44*4a5d661aSToomas Soome // EFI Memory 45*4a5d661aSToomas Soome // 46*4a5d661aSToomas Soome 47*4a5d661aSToomas Soome typedef 48*4a5d661aSToomas Soome EFI_STATUS 49*4a5d661aSToomas Soome (EFIAPI *EFI_ALLOCATE_PAGES) ( 50*4a5d661aSToomas Soome IN EFI_ALLOCATE_TYPE Type, 51*4a5d661aSToomas Soome IN EFI_MEMORY_TYPE MemoryType, 52*4a5d661aSToomas Soome IN UINTN NoPages, 53*4a5d661aSToomas Soome OUT EFI_PHYSICAL_ADDRESS *Memory 54*4a5d661aSToomas Soome ); 55*4a5d661aSToomas Soome 56*4a5d661aSToomas Soome typedef 57*4a5d661aSToomas Soome EFI_STATUS 58*4a5d661aSToomas Soome (EFIAPI *EFI_FREE_PAGES) ( 59*4a5d661aSToomas Soome IN EFI_PHYSICAL_ADDRESS Memory, 60*4a5d661aSToomas Soome IN UINTN NoPages 61*4a5d661aSToomas Soome ); 62*4a5d661aSToomas Soome 63*4a5d661aSToomas Soome typedef 64*4a5d661aSToomas Soome EFI_STATUS 65*4a5d661aSToomas Soome (EFIAPI *EFI_GET_MEMORY_MAP) ( 66*4a5d661aSToomas Soome IN OUT UINTN *MemoryMapSize, 67*4a5d661aSToomas Soome IN OUT EFI_MEMORY_DESCRIPTOR *MemoryMap, 68*4a5d661aSToomas Soome OUT UINTN *MapKey, 69*4a5d661aSToomas Soome OUT UINTN *DescriptorSize, 70*4a5d661aSToomas Soome OUT UINT32 *DescriptorVersion 71*4a5d661aSToomas Soome ); 72*4a5d661aSToomas Soome 73*4a5d661aSToomas Soome #define NextMemoryDescriptor(Ptr,Size) ((EFI_MEMORY_DESCRIPTOR *) (((UINT8 *) Ptr) + Size)) 74*4a5d661aSToomas Soome 75*4a5d661aSToomas Soome 76*4a5d661aSToomas Soome typedef 77*4a5d661aSToomas Soome EFI_STATUS 78*4a5d661aSToomas Soome (EFIAPI *EFI_ALLOCATE_POOL) ( 79*4a5d661aSToomas Soome IN EFI_MEMORY_TYPE PoolType, 80*4a5d661aSToomas Soome IN UINTN Size, 81*4a5d661aSToomas Soome OUT VOID **Buffer 82*4a5d661aSToomas Soome ); 83*4a5d661aSToomas Soome 84*4a5d661aSToomas Soome typedef 85*4a5d661aSToomas Soome EFI_STATUS 86*4a5d661aSToomas Soome (EFIAPI *EFI_FREE_POOL) ( 87*4a5d661aSToomas Soome IN VOID *Buffer 88*4a5d661aSToomas Soome ); 89*4a5d661aSToomas Soome 90*4a5d661aSToomas Soome typedef 91*4a5d661aSToomas Soome EFI_STATUS 92*4a5d661aSToomas Soome (EFIAPI *EFI_SET_VIRTUAL_ADDRESS_MAP) ( 93*4a5d661aSToomas Soome IN UINTN MemoryMapSize, 94*4a5d661aSToomas Soome IN UINTN DescriptorSize, 95*4a5d661aSToomas Soome IN UINT32 DescriptorVersion, 96*4a5d661aSToomas Soome IN EFI_MEMORY_DESCRIPTOR *VirtualMap 97*4a5d661aSToomas Soome ); 98*4a5d661aSToomas Soome 99*4a5d661aSToomas Soome 100*4a5d661aSToomas Soome #define EFI_OPTIONAL_PTR 0x00000001 101*4a5d661aSToomas Soome #define EFI_INTERNAL_FNC 0x00000002 // Pointer to internal runtime fnc 102*4a5d661aSToomas Soome #define EFI_INTERNAL_PTR 0x00000004 // Pointer to internal runtime data 103*4a5d661aSToomas Soome 104*4a5d661aSToomas Soome 105*4a5d661aSToomas Soome typedef 106*4a5d661aSToomas Soome EFI_STATUS 107*4a5d661aSToomas Soome (EFIAPI *EFI_CONVERT_POINTER) ( 108*4a5d661aSToomas Soome IN UINTN DebugDisposition, 109*4a5d661aSToomas Soome IN OUT VOID **Address 110*4a5d661aSToomas Soome ); 111*4a5d661aSToomas Soome 112*4a5d661aSToomas Soome 113*4a5d661aSToomas Soome // 114*4a5d661aSToomas Soome // EFI Events 115*4a5d661aSToomas Soome // 116*4a5d661aSToomas Soome 117*4a5d661aSToomas Soome 118*4a5d661aSToomas Soome 119*4a5d661aSToomas Soome #define EVT_TIMER 0x80000000 120*4a5d661aSToomas Soome #define EVT_RUNTIME 0x40000000 121*4a5d661aSToomas Soome #define EVT_RUNTIME_CONTEXT 0x20000000 122*4a5d661aSToomas Soome 123*4a5d661aSToomas Soome #define EVT_NOTIFY_WAIT 0x00000100 124*4a5d661aSToomas Soome #define EVT_NOTIFY_SIGNAL 0x00000200 125*4a5d661aSToomas Soome 126*4a5d661aSToomas Soome #define EVT_SIGNAL_EXIT_BOOT_SERVICES 0x00000201 127*4a5d661aSToomas Soome #define EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE 0x60000202 128*4a5d661aSToomas Soome 129*4a5d661aSToomas Soome #define EVT_EFI_SIGNAL_MASK 0x000000FF 130*4a5d661aSToomas Soome #define EVT_EFI_SIGNAL_MAX 2 131*4a5d661aSToomas Soome 132*4a5d661aSToomas Soome typedef 133*4a5d661aSToomas Soome VOID 134*4a5d661aSToomas Soome (EFIAPI *EFI_EVENT_NOTIFY) ( 135*4a5d661aSToomas Soome IN EFI_EVENT Event, 136*4a5d661aSToomas Soome IN VOID *Context 137*4a5d661aSToomas Soome ); 138*4a5d661aSToomas Soome 139*4a5d661aSToomas Soome typedef 140*4a5d661aSToomas Soome EFI_STATUS 141*4a5d661aSToomas Soome (EFIAPI *EFI_CREATE_EVENT) ( 142*4a5d661aSToomas Soome IN UINT32 Type, 143*4a5d661aSToomas Soome IN EFI_TPL NotifyTpl, 144*4a5d661aSToomas Soome IN EFI_EVENT_NOTIFY NotifyFunction, 145*4a5d661aSToomas Soome IN VOID *NotifyContext, 146*4a5d661aSToomas Soome OUT EFI_EVENT *Event 147*4a5d661aSToomas Soome ); 148*4a5d661aSToomas Soome 149*4a5d661aSToomas Soome typedef enum { 150*4a5d661aSToomas Soome TimerCancel, 151*4a5d661aSToomas Soome TimerPeriodic, 152*4a5d661aSToomas Soome TimerRelative, 153*4a5d661aSToomas Soome TimerTypeMax 154*4a5d661aSToomas Soome } EFI_TIMER_DELAY; 155*4a5d661aSToomas Soome 156*4a5d661aSToomas Soome typedef 157*4a5d661aSToomas Soome EFI_STATUS 158*4a5d661aSToomas Soome (EFIAPI *EFI_SET_TIMER) ( 159*4a5d661aSToomas Soome IN EFI_EVENT Event, 160*4a5d661aSToomas Soome IN EFI_TIMER_DELAY Type, 161*4a5d661aSToomas Soome IN UINT64 TriggerTime 162*4a5d661aSToomas Soome ); 163*4a5d661aSToomas Soome 164*4a5d661aSToomas Soome typedef 165*4a5d661aSToomas Soome EFI_STATUS 166*4a5d661aSToomas Soome (EFIAPI *EFI_SIGNAL_EVENT) ( 167*4a5d661aSToomas Soome IN EFI_EVENT Event 168*4a5d661aSToomas Soome ); 169*4a5d661aSToomas Soome 170*4a5d661aSToomas Soome typedef 171*4a5d661aSToomas Soome EFI_STATUS 172*4a5d661aSToomas Soome (EFIAPI *EFI_WAIT_FOR_EVENT) ( 173*4a5d661aSToomas Soome IN UINTN NumberOfEvents, 174*4a5d661aSToomas Soome IN EFI_EVENT *Event, 175*4a5d661aSToomas Soome OUT UINTN *Index 176*4a5d661aSToomas Soome ); 177*4a5d661aSToomas Soome 178*4a5d661aSToomas Soome typedef 179*4a5d661aSToomas Soome EFI_STATUS 180*4a5d661aSToomas Soome (EFIAPI *EFI_CLOSE_EVENT) ( 181*4a5d661aSToomas Soome IN EFI_EVENT Event 182*4a5d661aSToomas Soome ); 183*4a5d661aSToomas Soome 184*4a5d661aSToomas Soome typedef 185*4a5d661aSToomas Soome EFI_STATUS 186*4a5d661aSToomas Soome (EFIAPI *EFI_CHECK_EVENT) ( 187*4a5d661aSToomas Soome IN EFI_EVENT Event 188*4a5d661aSToomas Soome ); 189*4a5d661aSToomas Soome 190*4a5d661aSToomas Soome // 191*4a5d661aSToomas Soome // Task priority level 192*4a5d661aSToomas Soome // 193*4a5d661aSToomas Soome 194*4a5d661aSToomas Soome #define TPL_APPLICATION 4 195*4a5d661aSToomas Soome #define TPL_CALLBACK 8 196*4a5d661aSToomas Soome #define TPL_NOTIFY 16 197*4a5d661aSToomas Soome #define TPL_HIGH_LEVEL 31 198*4a5d661aSToomas Soome 199*4a5d661aSToomas Soome typedef 200*4a5d661aSToomas Soome EFI_TPL 201*4a5d661aSToomas Soome (EFIAPI *EFI_RAISE_TPL) ( 202*4a5d661aSToomas Soome IN EFI_TPL NewTpl 203*4a5d661aSToomas Soome ); 204*4a5d661aSToomas Soome 205*4a5d661aSToomas Soome typedef 206*4a5d661aSToomas Soome VOID 207*4a5d661aSToomas Soome (EFIAPI *EFI_RESTORE_TPL) ( 208*4a5d661aSToomas Soome IN EFI_TPL OldTpl 209*4a5d661aSToomas Soome ); 210*4a5d661aSToomas Soome 211*4a5d661aSToomas Soome 212*4a5d661aSToomas Soome // 213*4a5d661aSToomas Soome // EFI platform varibles 214*4a5d661aSToomas Soome // 215*4a5d661aSToomas Soome 216*4a5d661aSToomas Soome #define EFI_GLOBAL_VARIABLE \ 217*4a5d661aSToomas Soome { 0x8BE4DF61, 0x93CA, 0x11d2, {0xAA, 0x0D, 0x00, 0xE0, 0x98, 0x03, 0x2B, 0x8C} } 218*4a5d661aSToomas Soome 219*4a5d661aSToomas Soome // Variable attributes 220*4a5d661aSToomas Soome #define EFI_VARIABLE_NON_VOLATILE 0x00000001 221*4a5d661aSToomas Soome #define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x00000002 222*4a5d661aSToomas Soome #define EFI_VARIABLE_RUNTIME_ACCESS 0x00000004 223*4a5d661aSToomas Soome #define EFI_VARIABLE_HARDWARE_ERROR_RECORD 0x00000008 224*4a5d661aSToomas Soome #define EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS 0x00000010 225*4a5d661aSToomas Soome #define EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS 0x00000020 226*4a5d661aSToomas Soome #define EFI_VARIABLE_APPEND_WRITE 0x00000040 227*4a5d661aSToomas Soome 228*4a5d661aSToomas Soome // Variable size limitation 229*4a5d661aSToomas Soome #define EFI_MAXIMUM_VARIABLE_SIZE 1024 230*4a5d661aSToomas Soome 231*4a5d661aSToomas Soome typedef 232*4a5d661aSToomas Soome EFI_STATUS 233*4a5d661aSToomas Soome (EFIAPI *EFI_GET_VARIABLE) ( 234*4a5d661aSToomas Soome IN CHAR16 *VariableName, 235*4a5d661aSToomas Soome IN EFI_GUID *VendorGuid, 236*4a5d661aSToomas Soome OUT UINT32 *Attributes OPTIONAL, 237*4a5d661aSToomas Soome IN OUT UINTN *DataSize, 238*4a5d661aSToomas Soome OUT VOID *Data 239*4a5d661aSToomas Soome ); 240*4a5d661aSToomas Soome 241*4a5d661aSToomas Soome typedef 242*4a5d661aSToomas Soome EFI_STATUS 243*4a5d661aSToomas Soome (EFIAPI *EFI_GET_NEXT_VARIABLE_NAME) ( 244*4a5d661aSToomas Soome IN OUT UINTN *VariableNameSize, 245*4a5d661aSToomas Soome IN OUT CHAR16 *VariableName, 246*4a5d661aSToomas Soome IN OUT EFI_GUID *VendorGuid 247*4a5d661aSToomas Soome ); 248*4a5d661aSToomas Soome 249*4a5d661aSToomas Soome 250*4a5d661aSToomas Soome typedef 251*4a5d661aSToomas Soome EFI_STATUS 252*4a5d661aSToomas Soome (EFIAPI *EFI_SET_VARIABLE) ( 253*4a5d661aSToomas Soome IN CHAR16 *VariableName, 254*4a5d661aSToomas Soome IN EFI_GUID *VendorGuid, 255*4a5d661aSToomas Soome IN UINT32 Attributes, 256*4a5d661aSToomas Soome IN UINTN DataSize, 257*4a5d661aSToomas Soome IN VOID *Data 258*4a5d661aSToomas Soome ); 259*4a5d661aSToomas Soome 260*4a5d661aSToomas Soome 261*4a5d661aSToomas Soome // 262*4a5d661aSToomas Soome // EFI Time 263*4a5d661aSToomas Soome // 264*4a5d661aSToomas Soome 265*4a5d661aSToomas Soome typedef struct { 266*4a5d661aSToomas Soome UINT32 Resolution; // 1e-6 parts per million 267*4a5d661aSToomas Soome UINT32 Accuracy; // hertz 268*4a5d661aSToomas Soome BOOLEAN SetsToZero; // Set clears sub-second time 269*4a5d661aSToomas Soome } EFI_TIME_CAPABILITIES; 270*4a5d661aSToomas Soome 271*4a5d661aSToomas Soome 272*4a5d661aSToomas Soome typedef 273*4a5d661aSToomas Soome EFI_STATUS 274*4a5d661aSToomas Soome (EFIAPI *EFI_GET_TIME) ( 275*4a5d661aSToomas Soome OUT EFI_TIME *Time, 276*4a5d661aSToomas Soome OUT EFI_TIME_CAPABILITIES *Capabilities OPTIONAL 277*4a5d661aSToomas Soome ); 278*4a5d661aSToomas Soome 279*4a5d661aSToomas Soome typedef 280*4a5d661aSToomas Soome EFI_STATUS 281*4a5d661aSToomas Soome (EFIAPI *EFI_SET_TIME) ( 282*4a5d661aSToomas Soome IN EFI_TIME *Time 283*4a5d661aSToomas Soome ); 284*4a5d661aSToomas Soome 285*4a5d661aSToomas Soome typedef 286*4a5d661aSToomas Soome EFI_STATUS 287*4a5d661aSToomas Soome (EFIAPI *EFI_GET_WAKEUP_TIME) ( 288*4a5d661aSToomas Soome OUT BOOLEAN *Enabled, 289*4a5d661aSToomas Soome OUT BOOLEAN *Pending, 290*4a5d661aSToomas Soome OUT EFI_TIME *Time 291*4a5d661aSToomas Soome ); 292*4a5d661aSToomas Soome 293*4a5d661aSToomas Soome typedef 294*4a5d661aSToomas Soome EFI_STATUS 295*4a5d661aSToomas Soome (EFIAPI *EFI_SET_WAKEUP_TIME) ( 296*4a5d661aSToomas Soome IN BOOLEAN Enable, 297*4a5d661aSToomas Soome IN EFI_TIME *Time OPTIONAL 298*4a5d661aSToomas Soome ); 299*4a5d661aSToomas Soome 300*4a5d661aSToomas Soome 301*4a5d661aSToomas Soome // 302*4a5d661aSToomas Soome // Image functions 303*4a5d661aSToomas Soome // 304*4a5d661aSToomas Soome 305*4a5d661aSToomas Soome 306*4a5d661aSToomas Soome // PE32+ Subsystem type for EFI images 307*4a5d661aSToomas Soome 308*4a5d661aSToomas Soome #if !defined(IMAGE_SUBSYSTEM_EFI_APPLICATION) 309*4a5d661aSToomas Soome #define IMAGE_SUBSYSTEM_EFI_APPLICATION 10 310*4a5d661aSToomas Soome #define IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER 11 311*4a5d661aSToomas Soome #define IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER 12 312*4a5d661aSToomas Soome #endif 313*4a5d661aSToomas Soome 314*4a5d661aSToomas Soome // PE32+ Machine type for EFI images 315*4a5d661aSToomas Soome 316*4a5d661aSToomas Soome #if !defined(EFI_IMAGE_MACHINE_IA32) 317*4a5d661aSToomas Soome #define EFI_IMAGE_MACHINE_IA32 0x014c 318*4a5d661aSToomas Soome #endif 319*4a5d661aSToomas Soome 320*4a5d661aSToomas Soome #if !defined(EFI_IMAGE_MACHINE_EBC) 321*4a5d661aSToomas Soome #define EFI_IMAGE_MACHINE_EBC 0x0EBC 322*4a5d661aSToomas Soome #endif 323*4a5d661aSToomas Soome 324*4a5d661aSToomas Soome // Image Entry prototype 325*4a5d661aSToomas Soome 326*4a5d661aSToomas Soome typedef 327*4a5d661aSToomas Soome EFI_STATUS 328*4a5d661aSToomas Soome (EFIAPI *EFI_IMAGE_ENTRY_POINT) ( 329*4a5d661aSToomas Soome IN EFI_HANDLE ImageHandle, 330*4a5d661aSToomas Soome IN struct _EFI_SYSTEM_TABLE *SystemTable 331*4a5d661aSToomas Soome ); 332*4a5d661aSToomas Soome 333*4a5d661aSToomas Soome typedef 334*4a5d661aSToomas Soome EFI_STATUS 335*4a5d661aSToomas Soome (EFIAPI *EFI_IMAGE_LOAD) ( 336*4a5d661aSToomas Soome IN BOOLEAN BootPolicy, 337*4a5d661aSToomas Soome IN EFI_HANDLE ParentImageHandle, 338*4a5d661aSToomas Soome IN EFI_DEVICE_PATH *FilePath, 339*4a5d661aSToomas Soome IN VOID *SourceBuffer OPTIONAL, 340*4a5d661aSToomas Soome IN UINTN SourceSize, 341*4a5d661aSToomas Soome OUT EFI_HANDLE *ImageHandle 342*4a5d661aSToomas Soome ); 343*4a5d661aSToomas Soome 344*4a5d661aSToomas Soome typedef 345*4a5d661aSToomas Soome EFI_STATUS 346*4a5d661aSToomas Soome (EFIAPI *EFI_IMAGE_START) ( 347*4a5d661aSToomas Soome IN EFI_HANDLE ImageHandle, 348*4a5d661aSToomas Soome OUT UINTN *ExitDataSize, 349*4a5d661aSToomas Soome OUT CHAR16 **ExitData OPTIONAL 350*4a5d661aSToomas Soome ); 351*4a5d661aSToomas Soome 352*4a5d661aSToomas Soome typedef 353*4a5d661aSToomas Soome EFI_STATUS 354*4a5d661aSToomas Soome (EFIAPI *EFI_EXIT) ( 355*4a5d661aSToomas Soome IN EFI_HANDLE ImageHandle, 356*4a5d661aSToomas Soome IN EFI_STATUS ExitStatus, 357*4a5d661aSToomas Soome IN UINTN ExitDataSize, 358*4a5d661aSToomas Soome IN CHAR16 *ExitData OPTIONAL 359*4a5d661aSToomas Soome ); 360*4a5d661aSToomas Soome 361*4a5d661aSToomas Soome typedef 362*4a5d661aSToomas Soome EFI_STATUS 363*4a5d661aSToomas Soome (EFIAPI *EFI_IMAGE_UNLOAD) ( 364*4a5d661aSToomas Soome IN EFI_HANDLE ImageHandle 365*4a5d661aSToomas Soome ); 366*4a5d661aSToomas Soome 367*4a5d661aSToomas Soome 368*4a5d661aSToomas Soome // Image handle 369*4a5d661aSToomas Soome #define LOADED_IMAGE_PROTOCOL \ 370*4a5d661aSToomas Soome { 0x5B1B31A1, 0x9562, 0x11d2, {0x8E, 0x3F, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B} } 371*4a5d661aSToomas Soome 372*4a5d661aSToomas Soome #define EFI_LOADED_IMAGE_INFORMATION_REVISION 0x1000 373*4a5d661aSToomas Soome typedef struct { 374*4a5d661aSToomas Soome UINT32 Revision; 375*4a5d661aSToomas Soome EFI_HANDLE ParentHandle; 376*4a5d661aSToomas Soome struct _EFI_SYSTEM_TABLE *SystemTable; 377*4a5d661aSToomas Soome 378*4a5d661aSToomas Soome // Source location of image 379*4a5d661aSToomas Soome EFI_HANDLE DeviceHandle; 380*4a5d661aSToomas Soome EFI_DEVICE_PATH *FilePath; 381*4a5d661aSToomas Soome VOID *Reserved; 382*4a5d661aSToomas Soome 383*4a5d661aSToomas Soome // Images load options 384*4a5d661aSToomas Soome UINT32 LoadOptionsSize; 385*4a5d661aSToomas Soome VOID *LoadOptions; 386*4a5d661aSToomas Soome 387*4a5d661aSToomas Soome // Location of where image was loaded 388*4a5d661aSToomas Soome VOID *ImageBase; 389*4a5d661aSToomas Soome UINT64 ImageSize; 390*4a5d661aSToomas Soome EFI_MEMORY_TYPE ImageCodeType; 391*4a5d661aSToomas Soome EFI_MEMORY_TYPE ImageDataType; 392*4a5d661aSToomas Soome 393*4a5d661aSToomas Soome // If the driver image supports a dynamic unload request 394*4a5d661aSToomas Soome EFI_IMAGE_UNLOAD Unload; 395*4a5d661aSToomas Soome 396*4a5d661aSToomas Soome } EFI_LOADED_IMAGE; 397*4a5d661aSToomas Soome 398*4a5d661aSToomas Soome 399*4a5d661aSToomas Soome typedef 400*4a5d661aSToomas Soome EFI_STATUS 401*4a5d661aSToomas Soome (EFIAPI *EFI_EXIT_BOOT_SERVICES) ( 402*4a5d661aSToomas Soome IN EFI_HANDLE ImageHandle, 403*4a5d661aSToomas Soome IN UINTN MapKey 404*4a5d661aSToomas Soome ); 405*4a5d661aSToomas Soome 406*4a5d661aSToomas Soome // 407*4a5d661aSToomas Soome // Misc 408*4a5d661aSToomas Soome // 409*4a5d661aSToomas Soome 410*4a5d661aSToomas Soome 411*4a5d661aSToomas Soome typedef 412*4a5d661aSToomas Soome EFI_STATUS 413*4a5d661aSToomas Soome (EFIAPI *EFI_STALL) ( 414*4a5d661aSToomas Soome IN UINTN Microseconds 415*4a5d661aSToomas Soome ); 416*4a5d661aSToomas Soome 417*4a5d661aSToomas Soome typedef 418*4a5d661aSToomas Soome EFI_STATUS 419*4a5d661aSToomas Soome (EFIAPI *EFI_SET_WATCHDOG_TIMER) ( 420*4a5d661aSToomas Soome IN UINTN Timeout, 421*4a5d661aSToomas Soome IN UINT64 WatchdogCode, 422*4a5d661aSToomas Soome IN UINTN DataSize, 423*4a5d661aSToomas Soome IN CHAR16 *WatchdogData OPTIONAL 424*4a5d661aSToomas Soome ); 425*4a5d661aSToomas Soome 426*4a5d661aSToomas Soome 427*4a5d661aSToomas Soome typedef enum { 428*4a5d661aSToomas Soome EfiResetCold, 429*4a5d661aSToomas Soome EfiResetWarm, 430*4a5d661aSToomas Soome EfiResetShutdown 431*4a5d661aSToomas Soome } EFI_RESET_TYPE; 432*4a5d661aSToomas Soome 433*4a5d661aSToomas Soome typedef 434*4a5d661aSToomas Soome VOID 435*4a5d661aSToomas Soome (EFIAPI *EFI_RESET_SYSTEM) ( 436*4a5d661aSToomas Soome IN EFI_RESET_TYPE ResetType, 437*4a5d661aSToomas Soome IN EFI_STATUS ResetStatus, 438*4a5d661aSToomas Soome IN UINTN DataSize, 439*4a5d661aSToomas Soome IN CHAR16 *ResetData OPTIONAL 440*4a5d661aSToomas Soome ); 441*4a5d661aSToomas Soome 442*4a5d661aSToomas Soome typedef 443*4a5d661aSToomas Soome EFI_STATUS 444*4a5d661aSToomas Soome (EFIAPI *EFI_GET_NEXT_MONOTONIC_COUNT) ( 445*4a5d661aSToomas Soome OUT UINT64 *Count 446*4a5d661aSToomas Soome ); 447*4a5d661aSToomas Soome 448*4a5d661aSToomas Soome typedef 449*4a5d661aSToomas Soome EFI_STATUS 450*4a5d661aSToomas Soome (EFIAPI *EFI_GET_NEXT_HIGH_MONO_COUNT) ( 451*4a5d661aSToomas Soome OUT UINT32 *HighCount 452*4a5d661aSToomas Soome ); 453*4a5d661aSToomas Soome 454*4a5d661aSToomas Soome // 455*4a5d661aSToomas Soome // Protocol handler functions 456*4a5d661aSToomas Soome // 457*4a5d661aSToomas Soome 458*4a5d661aSToomas Soome typedef enum { 459*4a5d661aSToomas Soome EFI_NATIVE_INTERFACE 460*4a5d661aSToomas Soome } EFI_INTERFACE_TYPE; 461*4a5d661aSToomas Soome 462*4a5d661aSToomas Soome typedef 463*4a5d661aSToomas Soome EFI_STATUS 464*4a5d661aSToomas Soome (EFIAPI *EFI_INSTALL_PROTOCOL_INTERFACE) ( 465*4a5d661aSToomas Soome IN OUT EFI_HANDLE *Handle, 466*4a5d661aSToomas Soome IN EFI_GUID *Protocol, 467*4a5d661aSToomas Soome IN EFI_INTERFACE_TYPE InterfaceType, 468*4a5d661aSToomas Soome IN VOID *Interface 469*4a5d661aSToomas Soome ); 470*4a5d661aSToomas Soome 471*4a5d661aSToomas Soome typedef 472*4a5d661aSToomas Soome EFI_STATUS 473*4a5d661aSToomas Soome (EFIAPI *EFI_REINSTALL_PROTOCOL_INTERFACE) ( 474*4a5d661aSToomas Soome IN EFI_HANDLE Handle, 475*4a5d661aSToomas Soome IN EFI_GUID *Protocol, 476*4a5d661aSToomas Soome IN VOID *OldInterface, 477*4a5d661aSToomas Soome IN VOID *NewInterface 478*4a5d661aSToomas Soome ); 479*4a5d661aSToomas Soome 480*4a5d661aSToomas Soome typedef 481*4a5d661aSToomas Soome EFI_STATUS 482*4a5d661aSToomas Soome (EFIAPI *EFI_UNINSTALL_PROTOCOL_INTERFACE) ( 483*4a5d661aSToomas Soome IN EFI_HANDLE Handle, 484*4a5d661aSToomas Soome IN EFI_GUID *Protocol, 485*4a5d661aSToomas Soome IN VOID *Interface 486*4a5d661aSToomas Soome ); 487*4a5d661aSToomas Soome 488*4a5d661aSToomas Soome typedef 489*4a5d661aSToomas Soome EFI_STATUS 490*4a5d661aSToomas Soome (EFIAPI *EFI_HANDLE_PROTOCOL) ( 491*4a5d661aSToomas Soome IN EFI_HANDLE Handle, 492*4a5d661aSToomas Soome IN EFI_GUID *Protocol, 493*4a5d661aSToomas Soome OUT VOID **Interface 494*4a5d661aSToomas Soome ); 495*4a5d661aSToomas Soome 496*4a5d661aSToomas Soome typedef 497*4a5d661aSToomas Soome EFI_STATUS 498*4a5d661aSToomas Soome (EFIAPI *EFI_REGISTER_PROTOCOL_NOTIFY) ( 499*4a5d661aSToomas Soome IN EFI_GUID *Protocol, 500*4a5d661aSToomas Soome IN EFI_EVENT Event, 501*4a5d661aSToomas Soome OUT VOID **Registration 502*4a5d661aSToomas Soome ); 503*4a5d661aSToomas Soome 504*4a5d661aSToomas Soome typedef enum { 505*4a5d661aSToomas Soome AllHandles, 506*4a5d661aSToomas Soome ByRegisterNotify, 507*4a5d661aSToomas Soome ByProtocol 508*4a5d661aSToomas Soome } EFI_LOCATE_SEARCH_TYPE; 509*4a5d661aSToomas Soome 510*4a5d661aSToomas Soome typedef 511*4a5d661aSToomas Soome EFI_STATUS 512*4a5d661aSToomas Soome (EFIAPI *EFI_LOCATE_HANDLE) ( 513*4a5d661aSToomas Soome IN EFI_LOCATE_SEARCH_TYPE SearchType, 514*4a5d661aSToomas Soome IN EFI_GUID *Protocol OPTIONAL, 515*4a5d661aSToomas Soome IN VOID *SearchKey OPTIONAL, 516*4a5d661aSToomas Soome IN OUT UINTN *BufferSize, 517*4a5d661aSToomas Soome OUT EFI_HANDLE *Buffer 518*4a5d661aSToomas Soome ); 519*4a5d661aSToomas Soome 520*4a5d661aSToomas Soome typedef 521*4a5d661aSToomas Soome EFI_STATUS 522*4a5d661aSToomas Soome (EFIAPI *EFI_LOCATE_DEVICE_PATH) ( 523*4a5d661aSToomas Soome IN EFI_GUID *Protocol, 524*4a5d661aSToomas Soome IN OUT EFI_DEVICE_PATH **DevicePath, 525*4a5d661aSToomas Soome OUT EFI_HANDLE *Device 526*4a5d661aSToomas Soome ); 527*4a5d661aSToomas Soome 528*4a5d661aSToomas Soome typedef 529*4a5d661aSToomas Soome EFI_STATUS 530*4a5d661aSToomas Soome (EFIAPI *EFI_INSTALL_CONFIGURATION_TABLE) ( 531*4a5d661aSToomas Soome IN EFI_GUID *Guid, 532*4a5d661aSToomas Soome IN VOID *Table 533*4a5d661aSToomas Soome ); 534*4a5d661aSToomas Soome 535*4a5d661aSToomas Soome typedef 536*4a5d661aSToomas Soome EFI_STATUS 537*4a5d661aSToomas Soome (EFIAPI *EFI_RESERVED_SERVICE) ( 538*4a5d661aSToomas Soome VOID 539*4a5d661aSToomas Soome ); 540*4a5d661aSToomas Soome 541*4a5d661aSToomas Soome typedef 542*4a5d661aSToomas Soome EFI_STATUS 543*4a5d661aSToomas Soome (EFIAPI *EFI_CONNECT_CONTROLLER) ( 544*4a5d661aSToomas Soome IN EFI_HANDLE ControllerHandle, 545*4a5d661aSToomas Soome IN EFI_HANDLE *DriverImageHandle OPTIONAL, 546*4a5d661aSToomas Soome IN EFI_DEVICE_PATH *RemainingDevicePath OPTIONAL, 547*4a5d661aSToomas Soome IN BOOLEAN Recursive 548*4a5d661aSToomas Soome ); 549*4a5d661aSToomas Soome 550*4a5d661aSToomas Soome typedef 551*4a5d661aSToomas Soome EFI_STATUS 552*4a5d661aSToomas Soome (EFIAPI *EFI_DISCONNECT_CONTROLLER)( 553*4a5d661aSToomas Soome IN EFI_HANDLE ControllerHandle, 554*4a5d661aSToomas Soome IN EFI_HANDLE DriverImageHandle, OPTIONAL 555*4a5d661aSToomas Soome IN EFI_HANDLE ChildHandle OPTIONAL 556*4a5d661aSToomas Soome ); 557*4a5d661aSToomas Soome 558*4a5d661aSToomas Soome #define EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL 0x00000001 559*4a5d661aSToomas Soome #define EFI_OPEN_PROTOCOL_GET_PROTOCOL 0x00000002 560*4a5d661aSToomas Soome #define EFI_OPEN_PROTOCOL_TEST_PROTOCOL 0x00000004 561*4a5d661aSToomas Soome #define EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER 0x00000008 562*4a5d661aSToomas Soome #define EFI_OPEN_PROTOCOL_BY_DRIVER 0x00000010 563*4a5d661aSToomas Soome #define EFI_OPEN_PROTOCOL_EXCLUSIVE 0x00000020 564*4a5d661aSToomas Soome 565*4a5d661aSToomas Soome typedef 566*4a5d661aSToomas Soome EFI_STATUS 567*4a5d661aSToomas Soome (EFIAPI *EFI_OPEN_PROTOCOL) ( 568*4a5d661aSToomas Soome IN EFI_HANDLE Handle, 569*4a5d661aSToomas Soome IN EFI_GUID *Protocol, 570*4a5d661aSToomas Soome OUT VOID **Interface, 571*4a5d661aSToomas Soome IN EFI_HANDLE ImageHandle, 572*4a5d661aSToomas Soome IN EFI_HANDLE ControllerHandle, OPTIONAL 573*4a5d661aSToomas Soome IN UINT32 Attributes 574*4a5d661aSToomas Soome ); 575*4a5d661aSToomas Soome 576*4a5d661aSToomas Soome typedef 577*4a5d661aSToomas Soome EFI_STATUS 578*4a5d661aSToomas Soome (EFIAPI *EFI_CLOSE_PROTOCOL) ( 579*4a5d661aSToomas Soome IN EFI_HANDLE Handle, 580*4a5d661aSToomas Soome IN EFI_GUID *Protocol, 581*4a5d661aSToomas Soome IN EFI_HANDLE ImageHandle, 582*4a5d661aSToomas Soome IN EFI_HANDLE DeviceHandle 583*4a5d661aSToomas Soome ); 584*4a5d661aSToomas Soome 585*4a5d661aSToomas Soome typedef struct { 586*4a5d661aSToomas Soome EFI_HANDLE AgentHandle; 587*4a5d661aSToomas Soome EFI_HANDLE ControllerHandle; 588*4a5d661aSToomas Soome UINT32 Attributes; 589*4a5d661aSToomas Soome UINT32 OpenCount; 590*4a5d661aSToomas Soome } EFI_OPEN_PROTOCOL_INFORMATION_ENTRY; 591*4a5d661aSToomas Soome 592*4a5d661aSToomas Soome typedef 593*4a5d661aSToomas Soome EFI_STATUS 594*4a5d661aSToomas Soome (EFIAPI *EFI_OPEN_PROTOCOL_INFORMATION) ( 595*4a5d661aSToomas Soome IN EFI_HANDLE UserHandle, 596*4a5d661aSToomas Soome IN EFI_GUID *Protocol, 597*4a5d661aSToomas Soome IN EFI_OPEN_PROTOCOL_INFORMATION_ENTRY **EntryBuffer, 598*4a5d661aSToomas Soome OUT UINTN *EntryCount 599*4a5d661aSToomas Soome ); 600*4a5d661aSToomas Soome 601*4a5d661aSToomas Soome typedef 602*4a5d661aSToomas Soome EFI_STATUS 603*4a5d661aSToomas Soome (EFIAPI *EFI_PROTOCOLS_PER_HANDLE) ( 604*4a5d661aSToomas Soome IN EFI_HANDLE UserHandle, 605*4a5d661aSToomas Soome OUT EFI_GUID ***ProtocolBuffer, 606*4a5d661aSToomas Soome OUT UINTN *ProtocolBufferCount 607*4a5d661aSToomas Soome ); 608*4a5d661aSToomas Soome 609*4a5d661aSToomas Soome typedef 610*4a5d661aSToomas Soome EFI_STATUS 611*4a5d661aSToomas Soome (EFIAPI *EFI_LOCATE_HANDLE_BUFFER) ( 612*4a5d661aSToomas Soome IN EFI_LOCATE_SEARCH_TYPE SearchType, 613*4a5d661aSToomas Soome IN EFI_GUID *Protocol OPTIONAL, 614*4a5d661aSToomas Soome IN VOID *SearchKey OPTIONAL, 615*4a5d661aSToomas Soome IN OUT UINTN *NumberHandles, 616*4a5d661aSToomas Soome OUT EFI_HANDLE **Buffer 617*4a5d661aSToomas Soome ); 618*4a5d661aSToomas Soome 619*4a5d661aSToomas Soome typedef 620*4a5d661aSToomas Soome EFI_STATUS 621*4a5d661aSToomas Soome (EFIAPI *EFI_LOCATE_PROTOCOL) ( 622*4a5d661aSToomas Soome EFI_GUID *Protocol, 623*4a5d661aSToomas Soome VOID *Registration, OPTIONAL 624*4a5d661aSToomas Soome VOID **Interface 625*4a5d661aSToomas Soome ); 626*4a5d661aSToomas Soome 627*4a5d661aSToomas Soome typedef 628*4a5d661aSToomas Soome EFI_STATUS 629*4a5d661aSToomas Soome (EFIAPI *EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES) ( 630*4a5d661aSToomas Soome IN OUT EFI_HANDLE *Handle, 631*4a5d661aSToomas Soome ... 632*4a5d661aSToomas Soome ); 633*4a5d661aSToomas Soome 634*4a5d661aSToomas Soome typedef 635*4a5d661aSToomas Soome EFI_STATUS 636*4a5d661aSToomas Soome (EFIAPI *EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES) ( 637*4a5d661aSToomas Soome IN EFI_HANDLE Handle, 638*4a5d661aSToomas Soome ... 639*4a5d661aSToomas Soome ); 640*4a5d661aSToomas Soome 641*4a5d661aSToomas Soome typedef 642*4a5d661aSToomas Soome EFI_STATUS 643*4a5d661aSToomas Soome (EFIAPI *EFI_CALCULATE_CRC32) ( 644*4a5d661aSToomas Soome IN VOID *Data, 645*4a5d661aSToomas Soome IN UINTN DataSize, 646*4a5d661aSToomas Soome OUT UINT32 *Crc32 647*4a5d661aSToomas Soome ); 648*4a5d661aSToomas Soome 649*4a5d661aSToomas Soome typedef 650*4a5d661aSToomas Soome VOID 651*4a5d661aSToomas Soome (EFIAPI *EFI_COPY_MEM) ( 652*4a5d661aSToomas Soome IN VOID *Destination, 653*4a5d661aSToomas Soome IN VOID *Source, 654*4a5d661aSToomas Soome IN UINTN Length 655*4a5d661aSToomas Soome ); 656*4a5d661aSToomas Soome 657*4a5d661aSToomas Soome typedef 658*4a5d661aSToomas Soome VOID 659*4a5d661aSToomas Soome (EFIAPI *EFI_SET_MEM) ( 660*4a5d661aSToomas Soome IN VOID *Buffer, 661*4a5d661aSToomas Soome IN UINTN Size, 662*4a5d661aSToomas Soome IN UINT8 Value 663*4a5d661aSToomas Soome ); 664*4a5d661aSToomas Soome 665*4a5d661aSToomas Soome // 666*4a5d661aSToomas Soome // Standard EFI table header 667*4a5d661aSToomas Soome // 668*4a5d661aSToomas Soome 669*4a5d661aSToomas Soome typedef struct _EFI_TABLE_HEARDER { 670*4a5d661aSToomas Soome UINT64 Signature; 671*4a5d661aSToomas Soome UINT32 Revision; 672*4a5d661aSToomas Soome UINT32 HeaderSize; 673*4a5d661aSToomas Soome UINT32 CRC32; 674*4a5d661aSToomas Soome UINT32 Reserved; 675*4a5d661aSToomas Soome } EFI_TABLE_HEADER; 676*4a5d661aSToomas Soome 677*4a5d661aSToomas Soome 678*4a5d661aSToomas Soome // 679*4a5d661aSToomas Soome // EFI Runtime Serivces Table 680*4a5d661aSToomas Soome // 681*4a5d661aSToomas Soome 682*4a5d661aSToomas Soome #define EFI_RUNTIME_SERVICES_SIGNATURE 0x56524553544e5552 683*4a5d661aSToomas Soome #define EFI_RUNTIME_SERVICES_REVISION ((EFI_SPECIFICATION_MAJOR_REVISION<<16) | (EFI_SPECIFICATION_MINOR_REVISION)) 684*4a5d661aSToomas Soome 685*4a5d661aSToomas Soome typedef struct { 686*4a5d661aSToomas Soome EFI_TABLE_HEADER Hdr; 687*4a5d661aSToomas Soome 688*4a5d661aSToomas Soome // 689*4a5d661aSToomas Soome // Time services 690*4a5d661aSToomas Soome // 691*4a5d661aSToomas Soome 692*4a5d661aSToomas Soome EFI_GET_TIME GetTime; 693*4a5d661aSToomas Soome EFI_SET_TIME SetTime; 694*4a5d661aSToomas Soome EFI_GET_WAKEUP_TIME GetWakeupTime; 695*4a5d661aSToomas Soome EFI_SET_WAKEUP_TIME SetWakeupTime; 696*4a5d661aSToomas Soome 697*4a5d661aSToomas Soome // 698*4a5d661aSToomas Soome // Virtual memory services 699*4a5d661aSToomas Soome // 700*4a5d661aSToomas Soome 701*4a5d661aSToomas Soome EFI_SET_VIRTUAL_ADDRESS_MAP SetVirtualAddressMap; 702*4a5d661aSToomas Soome EFI_CONVERT_POINTER ConvertPointer; 703*4a5d661aSToomas Soome 704*4a5d661aSToomas Soome // 705*4a5d661aSToomas Soome // Variable serviers 706*4a5d661aSToomas Soome // 707*4a5d661aSToomas Soome 708*4a5d661aSToomas Soome EFI_GET_VARIABLE GetVariable; 709*4a5d661aSToomas Soome EFI_GET_NEXT_VARIABLE_NAME GetNextVariableName; 710*4a5d661aSToomas Soome EFI_SET_VARIABLE SetVariable; 711*4a5d661aSToomas Soome 712*4a5d661aSToomas Soome // 713*4a5d661aSToomas Soome // Misc 714*4a5d661aSToomas Soome // 715*4a5d661aSToomas Soome 716*4a5d661aSToomas Soome EFI_GET_NEXT_HIGH_MONO_COUNT GetNextHighMonotonicCount; 717*4a5d661aSToomas Soome EFI_RESET_SYSTEM ResetSystem; 718*4a5d661aSToomas Soome 719*4a5d661aSToomas Soome } EFI_RUNTIME_SERVICES; 720*4a5d661aSToomas Soome 721*4a5d661aSToomas Soome 722*4a5d661aSToomas Soome // 723*4a5d661aSToomas Soome // EFI Boot Services Table 724*4a5d661aSToomas Soome // 725*4a5d661aSToomas Soome 726*4a5d661aSToomas Soome #define EFI_BOOT_SERVICES_SIGNATURE 0x56524553544f4f42 727*4a5d661aSToomas Soome #define EFI_BOOT_SERVICES_REVISION ((EFI_SPECIFICATION_MAJOR_REVISION<<16) | (EFI_SPECIFICATION_MINOR_REVISION)) 728*4a5d661aSToomas Soome 729*4a5d661aSToomas Soome typedef struct { 730*4a5d661aSToomas Soome 731*4a5d661aSToomas Soome EFI_TABLE_HEADER Hdr; 732*4a5d661aSToomas Soome 733*4a5d661aSToomas Soome // 734*4a5d661aSToomas Soome // Task priority functions 735*4a5d661aSToomas Soome // 736*4a5d661aSToomas Soome 737*4a5d661aSToomas Soome EFI_RAISE_TPL RaiseTPL; 738*4a5d661aSToomas Soome EFI_RESTORE_TPL RestoreTPL; 739*4a5d661aSToomas Soome 740*4a5d661aSToomas Soome // 741*4a5d661aSToomas Soome // Memory functions 742*4a5d661aSToomas Soome // 743*4a5d661aSToomas Soome 744*4a5d661aSToomas Soome EFI_ALLOCATE_PAGES AllocatePages; 745*4a5d661aSToomas Soome EFI_FREE_PAGES FreePages; 746*4a5d661aSToomas Soome EFI_GET_MEMORY_MAP GetMemoryMap; 747*4a5d661aSToomas Soome EFI_ALLOCATE_POOL AllocatePool; 748*4a5d661aSToomas Soome EFI_FREE_POOL FreePool; 749*4a5d661aSToomas Soome 750*4a5d661aSToomas Soome // 751*4a5d661aSToomas Soome // Event & timer functions 752*4a5d661aSToomas Soome // 753*4a5d661aSToomas Soome 754*4a5d661aSToomas Soome EFI_CREATE_EVENT CreateEvent; 755*4a5d661aSToomas Soome EFI_SET_TIMER SetTimer; 756*4a5d661aSToomas Soome EFI_WAIT_FOR_EVENT WaitForEvent; 757*4a5d661aSToomas Soome EFI_SIGNAL_EVENT SignalEvent; 758*4a5d661aSToomas Soome EFI_CLOSE_EVENT CloseEvent; 759*4a5d661aSToomas Soome EFI_CHECK_EVENT CheckEvent; 760*4a5d661aSToomas Soome 761*4a5d661aSToomas Soome // 762*4a5d661aSToomas Soome // Protocol handler functions 763*4a5d661aSToomas Soome // 764*4a5d661aSToomas Soome 765*4a5d661aSToomas Soome EFI_INSTALL_PROTOCOL_INTERFACE InstallProtocolInterface; 766*4a5d661aSToomas Soome EFI_REINSTALL_PROTOCOL_INTERFACE ReinstallProtocolInterface; 767*4a5d661aSToomas Soome EFI_UNINSTALL_PROTOCOL_INTERFACE UninstallProtocolInterface; 768*4a5d661aSToomas Soome EFI_HANDLE_PROTOCOL HandleProtocol; 769*4a5d661aSToomas Soome VOID *Reserved; 770*4a5d661aSToomas Soome EFI_REGISTER_PROTOCOL_NOTIFY RegisterProtocolNotify; 771*4a5d661aSToomas Soome EFI_LOCATE_HANDLE LocateHandle; 772*4a5d661aSToomas Soome EFI_LOCATE_DEVICE_PATH LocateDevicePath; 773*4a5d661aSToomas Soome EFI_INSTALL_CONFIGURATION_TABLE InstallConfigurationTable; 774*4a5d661aSToomas Soome 775*4a5d661aSToomas Soome // 776*4a5d661aSToomas Soome // Image functions 777*4a5d661aSToomas Soome // 778*4a5d661aSToomas Soome 779*4a5d661aSToomas Soome EFI_IMAGE_LOAD LoadImage; 780*4a5d661aSToomas Soome EFI_IMAGE_START StartImage; 781*4a5d661aSToomas Soome EFI_EXIT Exit; 782*4a5d661aSToomas Soome EFI_IMAGE_UNLOAD UnloadImage; 783*4a5d661aSToomas Soome EFI_EXIT_BOOT_SERVICES ExitBootServices; 784*4a5d661aSToomas Soome 785*4a5d661aSToomas Soome // 786*4a5d661aSToomas Soome // Misc functions 787*4a5d661aSToomas Soome // 788*4a5d661aSToomas Soome 789*4a5d661aSToomas Soome EFI_GET_NEXT_MONOTONIC_COUNT GetNextMonotonicCount; 790*4a5d661aSToomas Soome EFI_STALL Stall; 791*4a5d661aSToomas Soome EFI_SET_WATCHDOG_TIMER SetWatchdogTimer; 792*4a5d661aSToomas Soome 793*4a5d661aSToomas Soome // 794*4a5d661aSToomas Soome // DriverSupport Services 795*4a5d661aSToomas Soome // 796*4a5d661aSToomas Soome EFI_CONNECT_CONTROLLER ConnectController; 797*4a5d661aSToomas Soome EFI_DISCONNECT_CONTROLLER DisconnectController; 798*4a5d661aSToomas Soome 799*4a5d661aSToomas Soome // 800*4a5d661aSToomas Soome // Open and Close Protocol Services 801*4a5d661aSToomas Soome // 802*4a5d661aSToomas Soome EFI_OPEN_PROTOCOL OpenProtocol; 803*4a5d661aSToomas Soome EFI_CLOSE_PROTOCOL CloseProtocol; 804*4a5d661aSToomas Soome EFI_OPEN_PROTOCOL_INFORMATION OpenProtocolInformation; 805*4a5d661aSToomas Soome 806*4a5d661aSToomas Soome // 807*4a5d661aSToomas Soome // Library Services to reduce size of drivers 808*4a5d661aSToomas Soome // 809*4a5d661aSToomas Soome EFI_PROTOCOLS_PER_HANDLE ProtocolsPerHandle; 810*4a5d661aSToomas Soome EFI_LOCATE_HANDLE_BUFFER LocateHandleBuffer; 811*4a5d661aSToomas Soome EFI_LOCATE_PROTOCOL LocateProtocol; 812*4a5d661aSToomas Soome 813*4a5d661aSToomas Soome EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES InstallMultipleProtocolInterfaces; 814*4a5d661aSToomas Soome EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES UninstallMultipleProtocolInterfaces; 815*4a5d661aSToomas Soome 816*4a5d661aSToomas Soome // 817*4a5d661aSToomas Soome // CRC32 services 818*4a5d661aSToomas Soome // 819*4a5d661aSToomas Soome EFI_CALCULATE_CRC32 CalculateCrc32; 820*4a5d661aSToomas Soome 821*4a5d661aSToomas Soome // 822*4a5d661aSToomas Soome // Memory Utility Services 823*4a5d661aSToomas Soome // 824*4a5d661aSToomas Soome EFI_COPY_MEM CopyMem; 825*4a5d661aSToomas Soome EFI_SET_MEM SetMem; 826*4a5d661aSToomas Soome 827*4a5d661aSToomas Soome } EFI_BOOT_SERVICES; 828*4a5d661aSToomas Soome 829*4a5d661aSToomas Soome 830*4a5d661aSToomas Soome // 831*4a5d661aSToomas Soome // EFI Configuration Table and GUID definitions 832*4a5d661aSToomas Soome // 833*4a5d661aSToomas Soome 834*4a5d661aSToomas Soome #define MPS_TABLE_GUID \ 835*4a5d661aSToomas Soome { 0xeb9d2d2f, 0x2d88, 0x11d3, {0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } 836*4a5d661aSToomas Soome 837*4a5d661aSToomas Soome #define ACPI_TABLE_GUID \ 838*4a5d661aSToomas Soome { 0xeb9d2d30, 0x2d88, 0x11d3, {0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } 839*4a5d661aSToomas Soome 840*4a5d661aSToomas Soome #define ACPI_20_TABLE_GUID \ 841*4a5d661aSToomas Soome { 0x8868e871, 0xe4f1, 0x11d3, {0xbc, 0x22, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81} } 842*4a5d661aSToomas Soome 843*4a5d661aSToomas Soome #define SMBIOS_TABLE_GUID \ 844*4a5d661aSToomas Soome { 0xeb9d2d31, 0x2d88, 0x11d3, {0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } 845*4a5d661aSToomas Soome 846*4a5d661aSToomas Soome #define SAL_SYSTEM_TABLE_GUID \ 847*4a5d661aSToomas Soome { 0xeb9d2d32, 0x2d88, 0x11d3, {0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } 848*4a5d661aSToomas Soome 849*4a5d661aSToomas Soome #define SMBIOS3_TABLE_GUID \ 850*4a5d661aSToomas Soome { 0xf2fd1544, 0x9794, 0x4a2c, {0x99, 0x2e, 0xe5, 0xbb, 0xcf, 0x20, 0xe3, 0x94 } } 851*4a5d661aSToomas Soome 852*4a5d661aSToomas Soome #define FDT_TABLE_GUID \ 853*4a5d661aSToomas Soome { 0xb1b621d5, 0xf19c, 0x41a5, {0x83, 0x0b, 0xd9, 0x15, 0x2c, 0x69, 0xaa, 0xe0} } 854*4a5d661aSToomas Soome 855*4a5d661aSToomas Soome #define DXE_SERVICES_TABLE_GUID \ 856*4a5d661aSToomas Soome { 0x5ad34ba, 0x6f02, 0x4214, {0x95, 0x2e, 0x4d, 0xa0, 0x39, 0x8e, 0x2b, 0xb9} } 857*4a5d661aSToomas Soome 858*4a5d661aSToomas Soome #define HOB_LIST_TABLE_GUID \ 859*4a5d661aSToomas Soome { 0x7739f24c, 0x93d7, 0x11d4, {0x9a, 0x3a, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } 860*4a5d661aSToomas Soome 861*4a5d661aSToomas Soome #define DEBUG_IMAGE_INFO_TABLE_GUID \ 862*4a5d661aSToomas Soome { 0x49152e77, 0x1ada, 0x4764, {0xb7, 0xa2, 0x7a, 0xfe, 0xfe, 0xd9, 0x5e, 0x8b} } 863*4a5d661aSToomas Soome 864*4a5d661aSToomas Soome typedef struct _EFI_CONFIGURATION_TABLE { 865*4a5d661aSToomas Soome EFI_GUID VendorGuid; 866*4a5d661aSToomas Soome VOID *VendorTable; 867*4a5d661aSToomas Soome } EFI_CONFIGURATION_TABLE; 868*4a5d661aSToomas Soome 869*4a5d661aSToomas Soome 870*4a5d661aSToomas Soome // 871*4a5d661aSToomas Soome // EFI System Table 872*4a5d661aSToomas Soome // 873*4a5d661aSToomas Soome 874*4a5d661aSToomas Soome 875*4a5d661aSToomas Soome #define EFI_SYSTEM_TABLE_SIGNATURE 0x5453595320494249 876*4a5d661aSToomas Soome #define EFI_SYSTEM_TABLE_REVISION ((EFI_SPECIFICATION_MAJOR_REVISION<<16) | (EFI_SPECIFICATION_MINOR_REVISION)) 877*4a5d661aSToomas Soome #define EFI_1_10_SYSTEM_TABLE_REVISION ((1<<16) | 10) 878*4a5d661aSToomas Soome #define EFI_1_02_SYSTEM_TABLE_REVISION ((1<<16) | 02) 879*4a5d661aSToomas Soome 880*4a5d661aSToomas Soome typedef struct _EFI_SYSTEM_TABLE { 881*4a5d661aSToomas Soome EFI_TABLE_HEADER Hdr; 882*4a5d661aSToomas Soome 883*4a5d661aSToomas Soome CHAR16 *FirmwareVendor; 884*4a5d661aSToomas Soome UINT32 FirmwareRevision; 885*4a5d661aSToomas Soome 886*4a5d661aSToomas Soome EFI_HANDLE ConsoleInHandle; 887*4a5d661aSToomas Soome SIMPLE_INPUT_INTERFACE *ConIn; 888*4a5d661aSToomas Soome 889*4a5d661aSToomas Soome EFI_HANDLE ConsoleOutHandle; 890*4a5d661aSToomas Soome SIMPLE_TEXT_OUTPUT_INTERFACE *ConOut; 891*4a5d661aSToomas Soome 892*4a5d661aSToomas Soome EFI_HANDLE StandardErrorHandle; 893*4a5d661aSToomas Soome SIMPLE_TEXT_OUTPUT_INTERFACE *StdErr; 894*4a5d661aSToomas Soome 895*4a5d661aSToomas Soome EFI_RUNTIME_SERVICES *RuntimeServices; 896*4a5d661aSToomas Soome EFI_BOOT_SERVICES *BootServices; 897*4a5d661aSToomas Soome 898*4a5d661aSToomas Soome UINTN NumberOfTableEntries; 899*4a5d661aSToomas Soome EFI_CONFIGURATION_TABLE *ConfigurationTable; 900*4a5d661aSToomas Soome 901*4a5d661aSToomas Soome } EFI_SYSTEM_TABLE; 902*4a5d661aSToomas Soome 903*4a5d661aSToomas Soome /* 904*4a5d661aSToomas Soome * unlisted GUID's.. 905*4a5d661aSToomas Soome */ 906*4a5d661aSToomas Soome #define EFI_EBC_INTERPRETER_PROTOCOL_GUID \ 907*4a5d661aSToomas Soome { 0x13AC6DD1, 0x73D0, 0x11D4, {0xB0, 0x6B, 0x00, 0xAA, 0x00, 0xBD, 0x6D, 0xE7} } 908*4a5d661aSToomas Soome 909*4a5d661aSToomas Soome #define EFI_DRIVER_CONFIGURATION2_PROTOCOL_GUID \ 910*4a5d661aSToomas Soome { 0xbfd7dc1d, 0x24f1, 0x40d9, {0x82, 0xe7, 0x2e, 0x09, 0xbb, 0x6b, 0x4e, 0xbe} } 911*4a5d661aSToomas Soome 912*4a5d661aSToomas Soome #define EFI_DRIVER_CONFIGURATION_PROTOCOL_GUID \ 913*4a5d661aSToomas Soome { 0x107a772b, 0xd5e1, 0x11d4, {0x9a, 0x46, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } 914*4a5d661aSToomas Soome 915*4a5d661aSToomas Soome #define EFI_DRIVER_BINDING_PROTOCOL_GUID \ 916*4a5d661aSToomas Soome { 0x18A031AB, 0xB443, 0x4D1A, \ 917*4a5d661aSToomas Soome { 0xA5, 0xC0, 0x0C, 0x09, 0x26, 0x1E, 0x9F, 0x71 } \ 918*4a5d661aSToomas Soome } 919*4a5d661aSToomas Soome 920*4a5d661aSToomas Soome #define EFI_TAPE_IO_PROTOCOL_GUID \ 921*4a5d661aSToomas Soome { 0x1e93e633, 0xd65a, 0x459e, \ 922*4a5d661aSToomas Soome { 0xab, 0x84, 0x93, 0xd9, 0xec, 0x26, 0x6d, 0x18 } \ 923*4a5d661aSToomas Soome } 924*4a5d661aSToomas Soome 925*4a5d661aSToomas Soome #define EFI_SCSI_IO_PROTOCOL_GUID \ 926*4a5d661aSToomas Soome { 0x932f47e6, 0x2362, 0x4002, \ 927*4a5d661aSToomas Soome { 0x80, 0x3e, 0x3c, 0xd5, 0x4b, 0x13, 0x8f, 0x85 } \ 928*4a5d661aSToomas Soome } 929*4a5d661aSToomas Soome 930*4a5d661aSToomas Soome #define EFI_USB2_HC_PROTOCOL_GUID \ 931*4a5d661aSToomas Soome { 0x3e745226, 0x9818, 0x45b6, \ 932*4a5d661aSToomas Soome { 0xa2, 0xac, 0xd7, 0xcd, 0x0e, 0x8b, 0xa2, 0xbc } \ 933*4a5d661aSToomas Soome } 934*4a5d661aSToomas Soome 935*4a5d661aSToomas Soome #define EFI_DEBUG_SUPPORT_PROTOCOL_GUID \ 936*4a5d661aSToomas Soome { 0x2755590C, 0x6F3C, 0x42FA, \ 937*4a5d661aSToomas Soome { 0x9E, 0xA4, 0xA3, 0xBA, 0x54, 0x3C, 0xDA, 0x25 } \ 938*4a5d661aSToomas Soome } 939*4a5d661aSToomas Soome 940*4a5d661aSToomas Soome #define EFI_DEBUGPORT_PROTOCOL_GUID \ 941*4a5d661aSToomas Soome { 0xEBA4E8D2, 0x3858, 0x41EC, \ 942*4a5d661aSToomas Soome { 0xA2, 0x81, 0x26, 0x47, 0xBA, 0x96, 0x60, 0xD0 } \ 943*4a5d661aSToomas Soome } 944*4a5d661aSToomas Soome 945*4a5d661aSToomas Soome #define EFI_DECOMPRESS_PROTOCOL_GUID \ 946*4a5d661aSToomas Soome { 0xd8117cfe, 0x94a6, 0x11d4, \ 947*4a5d661aSToomas Soome { 0x9a, 0x3a, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d } \ 948*4a5d661aSToomas Soome } 949*4a5d661aSToomas Soome 950*4a5d661aSToomas Soome #define EFI_ACPI_TABLE_PROTOCOL_GUID \ 951*4a5d661aSToomas Soome { 0xffe06bdd, 0x6107, 0x46a6, \ 952*4a5d661aSToomas Soome { 0x7b, 0xb2, 0x5a, 0x9c, 0x7e, 0xc5, 0x27, 0x5c} \ 953*4a5d661aSToomas Soome } 954*4a5d661aSToomas Soome 955*4a5d661aSToomas Soome #define EFI_HII_CONFIG_ROUTING_PROTOCOL_GUID \ 956*4a5d661aSToomas Soome { 0x587e72d7, 0xcc50, 0x4f79, \ 957*4a5d661aSToomas Soome { 0x82, 0x09, 0xca, 0x29, 0x1f, 0xc1, 0xa1, 0x0f } \ 958*4a5d661aSToomas Soome } 959*4a5d661aSToomas Soome 960*4a5d661aSToomas Soome #define EFI_HII_DATABASE_PROTOCOL_GUID \ 961*4a5d661aSToomas Soome { 0xef9fc172, 0xa1b2, 0x4693, \ 962*4a5d661aSToomas Soome { 0xb3, 0x27, 0x6d, 0x32, 0xfc, 0x41, 0x60, 0x42 } \ 963*4a5d661aSToomas Soome } 964*4a5d661aSToomas Soome 965*4a5d661aSToomas Soome #define EFI_HII_STRING_PROTOCOL_GUID \ 966*4a5d661aSToomas Soome { 0xfd96974, 0x23aa, 0x4cdc, \ 967*4a5d661aSToomas Soome { 0xb9, 0xcb, 0x98, 0xd1, 0x77, 0x50, 0x32, 0x2a } \ 968*4a5d661aSToomas Soome } 969*4a5d661aSToomas Soome 970*4a5d661aSToomas Soome #define EFI_HII_IMAGE_PROTOCOL_GUID \ 971*4a5d661aSToomas Soome { 0x31a6406a, 0x6bdf, 0x4e46, \ 972*4a5d661aSToomas Soome { 0xb2, 0xa2, 0xeb, 0xaa, 0x89, 0xc4, 0x9, 0x20 } \ 973*4a5d661aSToomas Soome } 974*4a5d661aSToomas Soome 975*4a5d661aSToomas Soome #define EFI_HII_FONT_PROTOCOL_GUID \ 976*4a5d661aSToomas Soome { 0xe9ca4775, 0x8657, 0x47fc, \ 977*4a5d661aSToomas Soome { 0x97, 0xe7, 0x7e, 0xd6, 0x5a, 0x8, 0x43, 0x24 } \ 978*4a5d661aSToomas Soome } 979*4a5d661aSToomas Soome #define EFI_HII_CONFIGURATION_ACCESS_PROTOCOL_GUID \ 980*4a5d661aSToomas Soome { 0x330d4706, 0xf2a0, 0x4e4f, \ 981*4a5d661aSToomas Soome { 0xa3, 0x69, 0xb6, 0x6f, 0xa8, 0xd5, 0x43, 0x85 } \ 982*4a5d661aSToomas Soome } 983*4a5d661aSToomas Soome 984*4a5d661aSToomas Soome #define EFI_COMPONENT_NAME_PROTOCOL_GUID \ 985*4a5d661aSToomas Soome { 0x107a772c, 0xd5e1, 0x11d4, {0x9a, 0x46, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } 986*4a5d661aSToomas Soome 987*4a5d661aSToomas Soome #define EFI_COMPONENT_NAME2_PROTOCOL_GUID \ 988*4a5d661aSToomas Soome { 0x6a7a5cff, 0xe8d9, 0x4f70, \ 989*4a5d661aSToomas Soome { 0xba, 0xda, 0x75, 0xab, 0x30, 0x25, 0xce, 0x14} \ 990*4a5d661aSToomas Soome } 991*4a5d661aSToomas Soome 992*4a5d661aSToomas Soome #define EFI_USB_IO_PROTOCOL_GUID \ 993*4a5d661aSToomas Soome { 0x2B2F68D6, 0x0CD2, 0x44cf, \ 994*4a5d661aSToomas Soome { 0x8E, 0x8B, 0xBB, 0xA2, 0x0B, 0x1B, 0x5B, 0x75 } \ 995*4a5d661aSToomas Soome } 996*4a5d661aSToomas Soome #define EFI_HCDP_TABLE_GUID \ 997*4a5d661aSToomas Soome { 0xf951938d, 0x620b, 0x42ef, \ 998*4a5d661aSToomas Soome { 0x82, 0x79, 0xa8, 0x4b, 0x79, 0x61, 0x78, 0x98 } \ 999*4a5d661aSToomas Soome } 1000*4a5d661aSToomas Soome 1001*4a5d661aSToomas Soome #define EFI_DEVICE_TREE_GUID \ 1002*4a5d661aSToomas Soome { 0xb1b621d5, 0xf19c, 0x41a5, \ 1003*4a5d661aSToomas Soome { 0x83, 0x0b, 0xd9, 0x15, 0x2c, 0x69, 0xaa, 0xe0 } \ 1004*4a5d661aSToomas Soome } 1005*4a5d661aSToomas Soome 1006*4a5d661aSToomas Soome #define EFI_VENDOR_APPLE_GUID \ 1007*4a5d661aSToomas Soome { 0x2B0585EB, 0xD8B8, 0x49A9, \ 1008*4a5d661aSToomas Soome { 0x8B, 0x8C, 0xE2, 0x1B, 0x01, 0xAE, 0xF2, 0xB7 } \ 1009*4a5d661aSToomas Soome } 1010*4a5d661aSToomas Soome 1011*4a5d661aSToomas Soome #define EFI_CONSOLE_IN_DEVICE_GUID \ 1012*4a5d661aSToomas Soome { 0xd3b36f2b, 0xd551, 0x11d4, {0x9a, 0x46, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } 1013*4a5d661aSToomas Soome 1014*4a5d661aSToomas Soome #define EFI_CONSOLE_OUT_DEVICE_GUID \ 1015*4a5d661aSToomas Soome { 0xd3b36f2c, 0xd551, 0x11d4, {0x9a, 0x46, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } 1016*4a5d661aSToomas Soome 1017*4a5d661aSToomas Soome #define EFI_STANDARD_ERROR_DEVICE_GUID \ 1018*4a5d661aSToomas Soome { 0xd3b36f2d, 0xd551, 0x11d4, {0x9a, 0x46, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } 1019*4a5d661aSToomas Soome 1020*4a5d661aSToomas Soome #define EFI_UNICODE_COLLATION2_PROTOCOL_GUID \ 1021*4a5d661aSToomas Soome { 0xa4c751fc, 0x23ae, 0x4c3e, {0x92, 0xe9, 0x49, 0x64, 0xcf, 0x63, 0xf3, 0x49} } 1022*4a5d661aSToomas Soome 1023*4a5d661aSToomas Soome #define EFI_FORM_BROWSER2_PROTOCOL_GUID \ 1024*4a5d661aSToomas Soome { 0xb9d4c360, 0xbcfb, 0x4f9b, {0x92, 0x98, 0x53, 0xc1, 0x36, 0x98, 0x22, 0x58} } 1025*4a5d661aSToomas Soome 1026*4a5d661aSToomas Soome #define EFI_ARP_SERVICE_BINDING_PROTOCOL_GUID \ 1027*4a5d661aSToomas Soome { 0xf44c00ee, 0x1f2c, 0x4a00, {0xaa, 0x9, 0x1c, 0x9f, 0x3e, 0x8, 0x0, 0xa3} } 1028*4a5d661aSToomas Soome 1029*4a5d661aSToomas Soome #define EFI_ARP_PROTOCOL_GUID \ 1030*4a5d661aSToomas Soome { 0xf4b427bb, 0xba21, 0x4f16, {0xbc, 0x4e, 0x43, 0xe4, 0x16, 0xab, 0x61, 0x9c} } 1031*4a5d661aSToomas Soome 1032*4a5d661aSToomas Soome #define EFI_IP4_CONFIG_PROTOCOL_GUID \ 1033*4a5d661aSToomas Soome { 0x3b95aa31, 0x3793, 0x434b, {0x86, 0x67, 0xc8, 0x07, 0x08, 0x92, 0xe0, 0x5e} } 1034*4a5d661aSToomas Soome 1035*4a5d661aSToomas Soome #define EFI_IP6_CONFIG_PROTOCOL_GUID \ 1036*4a5d661aSToomas Soome { 0x937fe521, 0x95ae, 0x4d1a, {0x89, 0x29, 0x48, 0xbc, 0xd9, 0x0a, 0xd3, 0x1a} } 1037*4a5d661aSToomas Soome 1038*4a5d661aSToomas Soome #define EFI_MANAGED_NETWORK_SERVICE_BINDING_PROTOCOL_GUID \ 1039*4a5d661aSToomas Soome { 0xf36ff770, 0xa7e1, 0x42cf, {0x9e, 0xd2, 0x56, 0xf0, 0xf2, 0x71, 0xf4, 0x4c} } 1040*4a5d661aSToomas Soome 1041*4a5d661aSToomas Soome #define EFI_MANAGED_NETWORK_PROTOCOL_GUID \ 1042*4a5d661aSToomas Soome { 0x7ab33a91, 0xace5, 0x4326, {0xb5, 0x72, 0xe7, 0xee, 0x33, 0xd3, 0x9f, 0x16} } 1043*4a5d661aSToomas Soome 1044*4a5d661aSToomas Soome #define EFI_MTFTP4_SERVICE_BINDING_PROTOCOL_GUID \ 1045*4a5d661aSToomas Soome { 0x2FE800BE, 0x8F01, 0x4aa6, {0x94, 0x6B, 0xD7, 0x13, 0x88, 0xE1, 0x83, 0x3F} } 1046*4a5d661aSToomas Soome 1047*4a5d661aSToomas Soome #define EFI_MTFTP4_PROTOCOL_GUID \ 1048*4a5d661aSToomas Soome { 0x78247c57, 0x63db, 0x4708, {0x99, 0xc2, 0xa8, 0xb4, 0xa9, 0xa6, 0x1f, 0x6b} } 1049*4a5d661aSToomas Soome 1050*4a5d661aSToomas Soome #define EFI_MTFTP6_SERVICE_BINDING_PROTOCOL_GUID \ 1051*4a5d661aSToomas Soome { 0xd9760ff3, 0x3cca, 0x4267, {0x80, 0xf9, 0x75, 0x27, 0xfa, 0xfa, 0x42, 0x23} } 1052*4a5d661aSToomas Soome 1053*4a5d661aSToomas Soome #define EFI_MTFTP6_PROTOCOL_GUID \ 1054*4a5d661aSToomas Soome { 0xbf0a78ba, 0xec29, 0x49cf, {0xa1, 0xc9, 0x7a, 0xe5, 0x4e, 0xab, 0x6a, 0x51} } 1055*4a5d661aSToomas Soome 1056*4a5d661aSToomas Soome #define EFI_DHCP4_PROTOCOL_GUID \ 1057*4a5d661aSToomas Soome { 0x8a219718, 0x4ef5, 0x4761, {0x91, 0xc8, 0xc0, 0xf0, 0x4b, 0xda, 0x9e, 0x56} } 1058*4a5d661aSToomas Soome 1059*4a5d661aSToomas Soome #define EFI_DHCP4_SERVICE_BINDING_PROTOCOL_GUID \ 1060*4a5d661aSToomas Soome { 0x9d9a39d8, 0xbd42, 0x4a73, {0xa4, 0xd5, 0x8e, 0xe9, 0x4b, 0xe1, 0x13, 0x80} } 1061*4a5d661aSToomas Soome 1062*4a5d661aSToomas Soome #define EFI_DHCP6_SERVICE_BINDING_PROTOCOL_GUID \ 1063*4a5d661aSToomas Soome { 0x9fb9a8a1, 0x2f4a, 0x43a6, {0x88, 0x9c, 0xd0, 0xf7, 0xb6, 0xc4, 0x7a, 0xd5} } 1064*4a5d661aSToomas Soome 1065*4a5d661aSToomas Soome #define EFI_DHCP6_PROTOCOL_GUID \ 1066*4a5d661aSToomas Soome { 0x87c8bad7, 0x595, 0x4053, {0x82, 0x97, 0xde, 0xde, 0x39, 0x5f, 0x5d, 0x5b} } 1067*4a5d661aSToomas Soome 1068*4a5d661aSToomas Soome #define EFI_SCSI_PASS_THRU_PROTOCOL_GUID \ 1069*4a5d661aSToomas Soome { 0xa59e8fcf, 0xbda0, 0x43bb, {0x90, 0xb1, 0xd3, 0x73, 0x2e, 0xca, 0xa8, 0x77} } 1070*4a5d661aSToomas Soome 1071*4a5d661aSToomas Soome #define EFI_EXT_SCSI_PASS_THRU_PROTOCOL_GUID \ 1072*4a5d661aSToomas Soome { 0x143b7632, 0xb81b, 0x4cb7, {0xab, 0xd3, 0xb6, 0x25, 0xa5, 0xb9, 0xbf, 0xfe} } 1073*4a5d661aSToomas Soome 1074*4a5d661aSToomas Soome #define EFI_DISK_INFO_PROTOCOL_GUID \ 1075*4a5d661aSToomas Soome { 0xd432a67f, 0x14dc, 0x484b, {0xb3, 0xbb, 0x3f, 0x2, 0x91, 0x84, 0x93, 0x27} } 1076*4a5d661aSToomas Soome 1077*4a5d661aSToomas Soome #define EFI_ISA_IO_PROTOCOL_GUID \ 1078*4a5d661aSToomas Soome { 0x7ee2bd44, 0x3da0, 0x11d4, { 0x9a, 0x38, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } 1079*4a5d661aSToomas Soome 1080*4a5d661aSToomas Soome #define EFI_VLAN_CONFIG_PROTOCOL_GUID \ 1081*4a5d661aSToomas Soome { 0x9e23d768, 0xd2f3, 0x4366, {0x9f, 0xc3, 0x3a, 0x7a, 0xba, 0x86, 0x43, 0x74} } 1082*4a5d661aSToomas Soome 1083*4a5d661aSToomas Soome #define EFI_IDE_CONTROLLER_INIT_PROTOCOL_GUID \ 1084*4a5d661aSToomas Soome { 0xa1e37052, 0x80d9, 0x4e65, {0xa3, 0x17, 0x3e, 0x9a, 0x55, 0xc4, 0x3e, 0xc9} } 1085*4a5d661aSToomas Soome 1086*4a5d661aSToomas Soome #define EFI_ISA_ACPI_PROTOCOL_GUID \ 1087*4a5d661aSToomas Soome { 0x64a892dc, 0x5561, 0x4536, {0x92, 0xc7, 0x79, 0x9b, 0xfc, 0x18, 0x33, 0x55} } 1088*4a5d661aSToomas Soome 1089*4a5d661aSToomas Soome #define EFI_PCI_ENUMERATION_COMPLETE_GUID \ 1090*4a5d661aSToomas Soome { 0x30cfe3e7, 0x3de1, 0x4586, {0xbe, 0x20, 0xde, 0xab, 0xa1, 0xb3, 0xb7, 0x93} } 1091*4a5d661aSToomas Soome 1092*4a5d661aSToomas Soome #define EFI_DRIVER_DIAGNOSTICS_PROTOCOL_GUID \ 1093*4a5d661aSToomas Soome { 0x0784924f, 0xe296, 0x11d4, {0x9a, 0x49, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } } 1094*4a5d661aSToomas Soome 1095*4a5d661aSToomas Soome #define EFI_DRIVER_DIAGNOSTICS2_PROTOCOL_GUID \ 1096*4a5d661aSToomas Soome { 0x4d330321, 0x025f, 0x4aac, {0x90, 0xd8, 0x5e, 0xd9, 0x00, 0x17, 0x3b, 0x63} } 1097*4a5d661aSToomas Soome 1098*4a5d661aSToomas Soome #define EFI_CAPSULE_ARCH_PROTOCOL_GUID \ 1099*4a5d661aSToomas Soome { 0x5053697e, 0x2cbc, 0x4819, {0x90, 0xd9, 0x05, 0x80, 0xde, 0xee, 0x57, 0x54} } 1100*4a5d661aSToomas Soome 1101*4a5d661aSToomas Soome #define EFI_MONOTONIC_COUNTER_ARCH_PROTOCOL_GUID \ 1102*4a5d661aSToomas Soome {0x1da97072, 0xbddc, 0x4b30, {0x99, 0xf1, 0x72, 0xa0, 0xb5, 0x6f, 0xff, 0x2a} } 1103*4a5d661aSToomas Soome 1104*4a5d661aSToomas Soome #define EFI_REALTIME_CLOCK_ARCH_PROTOCOL_GUID \ 1105*4a5d661aSToomas Soome {0x27cfac87, 0x46cc, 0x11d4, {0x9a, 0x38, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } 1106*4a5d661aSToomas Soome 1107*4a5d661aSToomas Soome #define EFI_MP_SERVICES_PROTOCOL_GUID \ 1108*4a5d661aSToomas Soome { 0x3fdda605, 0xa76e, 0x4f46, {0xad, 0x29, 0x12, 0xf4, 0x53, 0x1b, 0x3d, 0x08} } 1109*4a5d661aSToomas Soome 1110*4a5d661aSToomas Soome #define EFI_VARIABLE_ARCH_PROTOCOL_GUID \ 1111*4a5d661aSToomas Soome { 0x1e5668e2, 0x8481, 0x11d4, {0xbc, 0xf1, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } } 1112*4a5d661aSToomas Soome 1113*4a5d661aSToomas Soome #define EFI_VARIABLE_WRITE_ARCH_PROTOCOL_GUID \ 1114*4a5d661aSToomas Soome { 0x6441f818, 0x6362, 0x4e44, {0xb5, 0x70, 0x7d, 0xba, 0x31, 0xdd, 0x24, 0x53} } 1115*4a5d661aSToomas Soome 1116*4a5d661aSToomas Soome #define EFI_WATCHDOG_TIMER_ARCH_PROTOCOL_GUID \ 1117*4a5d661aSToomas Soome { 0x6441f818, 0x6362, 0x4e44, {0xb5, 0x70, 0x7d, 0xba, 0x31, 0xdd, 0x24, 0x53} } 1118*4a5d661aSToomas Soome 1119*4a5d661aSToomas Soome #define EFI_ACPI_SUPPORT_PROTOCOL_GUID \ 1120*4a5d661aSToomas Soome { 0x6441f818, 0x6362, 0x4e44, {0xb5, 0x70, 0x7d, 0xba, 0x31, 0xdd, 0x24, 0x53} } 1121*4a5d661aSToomas Soome 1122*4a5d661aSToomas Soome #define EFI_BDS_ARCH_PROTOCOL_GUID \ 1123*4a5d661aSToomas Soome { 0x665e3ff6, 0x46cc, 0x11d4, {0x9a, 0x38, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } 1124*4a5d661aSToomas Soome 1125*4a5d661aSToomas Soome #define EFI_METRONOME_ARCH_PROTOCOL_GUID \ 1126*4a5d661aSToomas Soome { 0x26baccb2, 0x6f42, 0x11d4, {0xbc, 0xe7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } } 1127*4a5d661aSToomas Soome 1128*4a5d661aSToomas Soome #define EFI_TIMER_ARCH_PROTOCOL_GUID \ 1129*4a5d661aSToomas Soome { 0x26baccb3, 0x6f42, 0x11d4, {0xbc, 0xe7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } } 1130*4a5d661aSToomas Soome 1131*4a5d661aSToomas Soome #define EFI_DPC_PROTOCOL_GUID \ 1132*4a5d661aSToomas Soome { 0x480f8ae9, 0xc46, 0x4aa9, { 0xbc, 0x89, 0xdb, 0x9f, 0xba, 0x61, 0x98, 0x6} } 1133*4a5d661aSToomas Soome 1134*4a5d661aSToomas Soome #define EFI_PRINT2_PROTOCOL_GUID \ 1135*4a5d661aSToomas Soome { 0xf05976ef, 0x83f1, 0x4f3d, {0x86, 0x19, 0xf7, 0x59, 0x5d, 0x41, 0xe5, 0x38} } 1136*4a5d661aSToomas Soome 1137*4a5d661aSToomas Soome #define EFI_RESET_ARCH_PROTOCOL_GUID \ 1138*4a5d661aSToomas Soome { 0x27cfac88, 0x46cc, 0x11d4, {0x9a, 0x38, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } 1139*4a5d661aSToomas Soome 1140*4a5d661aSToomas Soome #define EFI_CPU_ARCH_PROTOCOL_GUID \ 1141*4a5d661aSToomas Soome { 0x26baccb1, 0x6f42, 0x11d4, {0xbc, 0xe7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } } 1142*4a5d661aSToomas Soome 1143*4a5d661aSToomas Soome #define EFI_CPU_IO2_PROTOCOL_GUID \ 1144*4a5d661aSToomas Soome { 0xad61f191, 0xae5f, 0x4c0e, {0xb9, 0xfa, 0xe8, 0x69, 0xd2, 0x88, 0xc6, 0x4f} } 1145*4a5d661aSToomas Soome 1146*4a5d661aSToomas Soome #define EFI_LEGACY_8259_PROTOCOL_GUID \ 1147*4a5d661aSToomas Soome { 0x38321dba, 0x4fe0, 0x4e17, {0x8a, 0xec, 0x41, 0x30, 0x55, 0xea, 0xed, 0xc1} } 1148*4a5d661aSToomas Soome 1149*4a5d661aSToomas Soome #define EFI_SECURITY_ARCH_PROTOCOL_GUID \ 1150*4a5d661aSToomas Soome { 0xa46423e3, 0x4617, 0x49f1, {0xb9, 0xff, 0xd1, 0xbf, 0xa9, 0x11, 0x58, 0x39} } 1151*4a5d661aSToomas Soome 1152*4a5d661aSToomas Soome #define EFI_SECURITY2_ARCH_PROTOCOL_GUID \ 1153*4a5d661aSToomas Soome { 0x94ab2f58, 0x1438, 0x4ef1, {0x91, 0x52, 0x18, 0x94, 0x1a, 0x3a, 0x0e, 0x68} } 1154*4a5d661aSToomas Soome 1155*4a5d661aSToomas Soome #define EFI_RUNTIME_ARCH_PROTOCOL_GUID \ 1156*4a5d661aSToomas Soome { 0xb7dfb4e1, 0x52f, 0x449f, {0x87, 0xbe, 0x98, 0x18, 0xfc, 0x91, 0xb7, 0x33} } 1157*4a5d661aSToomas Soome 1158*4a5d661aSToomas Soome #define EFI_STATUS_CODE_RUNTIME_PROTOCOL_GUID \ 1159*4a5d661aSToomas Soome { 0xd2b2b828, 0x826, 0x48a7, {0xb3, 0xdf, 0x98, 0x3c, 0x0, 0x60, 0x24, 0xf0} } 1160*4a5d661aSToomas Soome 1161*4a5d661aSToomas Soome #define EFI_DATA_HUB_PROTOCOL_GUID \ 1162*4a5d661aSToomas Soome { 0xae80d021, 0x618e, 0x11d4, {0xbc, 0xd7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81} } 1163*4a5d661aSToomas Soome 1164*4a5d661aSToomas Soome #define PCD_PROTOCOL_GUID \ 1165*4a5d661aSToomas Soome { 0x11b34006, 0xd85b, 0x4d0a, { 0xa2, 0x90, 0xd5, 0xa5, 0x71, 0x31, 0xe, 0xf7} } 1166*4a5d661aSToomas Soome 1167*4a5d661aSToomas Soome #define EFI_PCD_PROTOCOL_GUID \ 1168*4a5d661aSToomas Soome { 0x13a3f0f6, 0x264a, 0x3ef0, {0xf2, 0xe0, 0xde, 0xc5, 0x12, 0x34, 0x2f, 0x34} } 1169*4a5d661aSToomas Soome 1170*4a5d661aSToomas Soome #define EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL_GUID \ 1171*4a5d661aSToomas Soome { 0x8f644fa9, 0xe850, 0x4db1, {0x9c, 0xe2, 0xb, 0x44, 0x69, 0x8e, 0x8d, 0xa4 } } 1172*4a5d661aSToomas Soome 1173*4a5d661aSToomas Soome #define EFI_FIRMWARE_VOLUME2_PROTOCOL_GUID \ 1174*4a5d661aSToomas Soome { 0x220e73b6, 0x6bdb, 0x4413, { 0x84, 0x5, 0xb9, 0x74, 0xb1, 0x8, 0x61, 0x9a } } 1175*4a5d661aSToomas Soome 1176*4a5d661aSToomas Soome #define EFI_FIRMWARE_VOLUME_DISPATCH_PROTOCOL_GUID \ 1177*4a5d661aSToomas Soome { 0x7aa35a69, 0x506c, 0x444f, {0xa7, 0xaf, 0x69, 0x4b, 0xf5, 0x6f, 0x71, 0xc8} } 1178*4a5d661aSToomas Soome 1179*4a5d661aSToomas Soome #define LZMA_COMPRESS_GUID \ 1180*4a5d661aSToomas Soome { 0xee4e5898, 0x3914, 0x4259, {0x9d, 0x6e, 0xdc, 0x7b, 0xd7, 0x94, 0x03, 0xcf} } 1181*4a5d661aSToomas Soome 1182*4a5d661aSToomas Soome #endif 1183