1ca987d46SWarner Losh #ifndef _EFI_API_H 2ca987d46SWarner Losh #define _EFI_API_H 3ca987d46SWarner Losh 4ca987d46SWarner Losh /*++ 5ca987d46SWarner Losh 6ca987d46SWarner Losh Copyright (c) 1999 - 2002 Intel Corporation. All rights reserved 7ca987d46SWarner Losh This software and associated documentation (if any) is furnished 8ca987d46SWarner Losh under a license and may only be used or copied in accordance 9ca987d46SWarner Losh with the terms of the license. Except as permitted by such 10ca987d46SWarner Losh license, no part of this software or documentation may be 11ca987d46SWarner Losh reproduced, stored in a retrieval system, or transmitted in any 12ca987d46SWarner Losh form or by any means without the express written consent of 13ca987d46SWarner Losh Intel Corporation. 14ca987d46SWarner Losh 15ca987d46SWarner Losh Module Name: 16ca987d46SWarner Losh 17ca987d46SWarner Losh efiapi.h 18ca987d46SWarner Losh 19ca987d46SWarner Losh Abstract: 20ca987d46SWarner Losh 21ca987d46SWarner Losh Global EFI runtime & boot service interfaces 22ca987d46SWarner Losh 23ca987d46SWarner Losh 24ca987d46SWarner Losh 25ca987d46SWarner Losh 26ca987d46SWarner Losh Revision History 27ca987d46SWarner Losh 28ca987d46SWarner Losh --*/ 29ca987d46SWarner Losh 30ca987d46SWarner Losh // 31ca987d46SWarner Losh // EFI Specification Revision 32ca987d46SWarner Losh // 33ca987d46SWarner Losh 34ca987d46SWarner Losh #define EFI_SPECIFICATION_MAJOR_REVISION 1 35ca987d46SWarner Losh #define EFI_SPECIFICATION_MINOR_REVISION 10 36ca987d46SWarner Losh 37ca987d46SWarner Losh // 38ca987d46SWarner Losh // Declare forward referenced data structures 39ca987d46SWarner Losh // 40ca987d46SWarner Losh 41ca987d46SWarner Losh INTERFACE_DECL(_EFI_SYSTEM_TABLE); 42ca987d46SWarner Losh 43ca987d46SWarner Losh // 44ca987d46SWarner Losh // EFI Memory 45ca987d46SWarner Losh // 46ca987d46SWarner Losh 47ca987d46SWarner Losh typedef 48ca987d46SWarner Losh EFI_STATUS 49ca987d46SWarner Losh (EFIAPI *EFI_ALLOCATE_PAGES) ( 50ca987d46SWarner Losh IN EFI_ALLOCATE_TYPE Type, 51ca987d46SWarner Losh IN EFI_MEMORY_TYPE MemoryType, 52ca987d46SWarner Losh IN UINTN NoPages, 53ca987d46SWarner Losh OUT EFI_PHYSICAL_ADDRESS *Memory 54ca987d46SWarner Losh ); 55ca987d46SWarner Losh 56ca987d46SWarner Losh typedef 57ca987d46SWarner Losh EFI_STATUS 58ca987d46SWarner Losh (EFIAPI *EFI_FREE_PAGES) ( 59ca987d46SWarner Losh IN EFI_PHYSICAL_ADDRESS Memory, 60ca987d46SWarner Losh IN UINTN NoPages 61ca987d46SWarner Losh ); 62ca987d46SWarner Losh 63ca987d46SWarner Losh typedef 64ca987d46SWarner Losh EFI_STATUS 65ca987d46SWarner Losh (EFIAPI *EFI_GET_MEMORY_MAP) ( 66ca987d46SWarner Losh IN OUT UINTN *MemoryMapSize, 67ca987d46SWarner Losh IN OUT EFI_MEMORY_DESCRIPTOR *MemoryMap, 68ca987d46SWarner Losh OUT UINTN *MapKey, 69ca987d46SWarner Losh OUT UINTN *DescriptorSize, 70ca987d46SWarner Losh OUT UINT32 *DescriptorVersion 71ca987d46SWarner Losh ); 72ca987d46SWarner Losh 73ca987d46SWarner Losh #define NextMemoryDescriptor(Ptr,Size) ((EFI_MEMORY_DESCRIPTOR *) (((UINT8 *) Ptr) + Size)) 74ca987d46SWarner Losh 75ca987d46SWarner Losh 76ca987d46SWarner Losh typedef 77ca987d46SWarner Losh EFI_STATUS 78ca987d46SWarner Losh (EFIAPI *EFI_ALLOCATE_POOL) ( 79ca987d46SWarner Losh IN EFI_MEMORY_TYPE PoolType, 80ca987d46SWarner Losh IN UINTN Size, 81ca987d46SWarner Losh OUT VOID **Buffer 82ca987d46SWarner Losh ); 83ca987d46SWarner Losh 84ca987d46SWarner Losh typedef 85ca987d46SWarner Losh EFI_STATUS 86ca987d46SWarner Losh (EFIAPI *EFI_FREE_POOL) ( 87ca987d46SWarner Losh IN VOID *Buffer 88ca987d46SWarner Losh ); 89ca987d46SWarner Losh 90ca987d46SWarner Losh typedef 91ca987d46SWarner Losh EFI_STATUS 92ca987d46SWarner Losh (EFIAPI *EFI_SET_VIRTUAL_ADDRESS_MAP) ( 93ca987d46SWarner Losh IN UINTN MemoryMapSize, 94ca987d46SWarner Losh IN UINTN DescriptorSize, 95ca987d46SWarner Losh IN UINT32 DescriptorVersion, 96ca987d46SWarner Losh IN EFI_MEMORY_DESCRIPTOR *VirtualMap 97ca987d46SWarner Losh ); 98ca987d46SWarner Losh 99ca987d46SWarner Losh 100ca987d46SWarner Losh #define EFI_OPTIONAL_PTR 0x00000001 101ca987d46SWarner Losh #define EFI_INTERNAL_FNC 0x00000002 // Pointer to internal runtime fnc 102ca987d46SWarner Losh #define EFI_INTERNAL_PTR 0x00000004 // Pointer to internal runtime data 103ca987d46SWarner Losh 104ca987d46SWarner Losh 105ca987d46SWarner Losh typedef 106ca987d46SWarner Losh EFI_STATUS 107ca987d46SWarner Losh (EFIAPI *EFI_CONVERT_POINTER) ( 108ca987d46SWarner Losh IN UINTN DebugDisposition, 109ca987d46SWarner Losh IN OUT VOID **Address 110ca987d46SWarner Losh ); 111ca987d46SWarner Losh 112ca987d46SWarner Losh 113ca987d46SWarner Losh // 114ca987d46SWarner Losh // EFI Events 115ca987d46SWarner Losh // 116ca987d46SWarner Losh 117ca987d46SWarner Losh 118ca987d46SWarner Losh 119ca987d46SWarner Losh #define EVT_TIMER 0x80000000 120ca987d46SWarner Losh #define EVT_RUNTIME 0x40000000 121ca987d46SWarner Losh #define EVT_RUNTIME_CONTEXT 0x20000000 122ca987d46SWarner Losh 123ca987d46SWarner Losh #define EVT_NOTIFY_WAIT 0x00000100 124ca987d46SWarner Losh #define EVT_NOTIFY_SIGNAL 0x00000200 125ca987d46SWarner Losh 126ca987d46SWarner Losh #define EVT_SIGNAL_EXIT_BOOT_SERVICES 0x00000201 127ca987d46SWarner Losh #define EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE 0x60000202 128ca987d46SWarner Losh 129ca987d46SWarner Losh #define EVT_EFI_SIGNAL_MASK 0x000000FF 130ca987d46SWarner Losh #define EVT_EFI_SIGNAL_MAX 2 131ca987d46SWarner Losh 132ca987d46SWarner Losh typedef 133ca987d46SWarner Losh VOID 134ca987d46SWarner Losh (EFIAPI *EFI_EVENT_NOTIFY) ( 135ca987d46SWarner Losh IN EFI_EVENT Event, 136ca987d46SWarner Losh IN VOID *Context 137ca987d46SWarner Losh ); 138ca987d46SWarner Losh 139ca987d46SWarner Losh typedef 140ca987d46SWarner Losh EFI_STATUS 141ca987d46SWarner Losh (EFIAPI *EFI_CREATE_EVENT) ( 142ca987d46SWarner Losh IN UINT32 Type, 143ca987d46SWarner Losh IN EFI_TPL NotifyTpl, 144ca987d46SWarner Losh IN EFI_EVENT_NOTIFY NotifyFunction, 145ca987d46SWarner Losh IN VOID *NotifyContext, 146ca987d46SWarner Losh OUT EFI_EVENT *Event 147ca987d46SWarner Losh ); 148ca987d46SWarner Losh 149ca987d46SWarner Losh typedef enum { 150ca987d46SWarner Losh TimerCancel, 151ca987d46SWarner Losh TimerPeriodic, 152ca987d46SWarner Losh TimerRelative, 153ca987d46SWarner Losh TimerTypeMax 154ca987d46SWarner Losh } EFI_TIMER_DELAY; 155ca987d46SWarner Losh 156ca987d46SWarner Losh typedef 157ca987d46SWarner Losh EFI_STATUS 158ca987d46SWarner Losh (EFIAPI *EFI_SET_TIMER) ( 159ca987d46SWarner Losh IN EFI_EVENT Event, 160ca987d46SWarner Losh IN EFI_TIMER_DELAY Type, 161ca987d46SWarner Losh IN UINT64 TriggerTime 162ca987d46SWarner Losh ); 163ca987d46SWarner Losh 164ca987d46SWarner Losh typedef 165ca987d46SWarner Losh EFI_STATUS 166ca987d46SWarner Losh (EFIAPI *EFI_SIGNAL_EVENT) ( 167ca987d46SWarner Losh IN EFI_EVENT Event 168ca987d46SWarner Losh ); 169ca987d46SWarner Losh 170ca987d46SWarner Losh typedef 171ca987d46SWarner Losh EFI_STATUS 172ca987d46SWarner Losh (EFIAPI *EFI_WAIT_FOR_EVENT) ( 173ca987d46SWarner Losh IN UINTN NumberOfEvents, 174ca987d46SWarner Losh IN EFI_EVENT *Event, 175ca987d46SWarner Losh OUT UINTN *Index 176ca987d46SWarner Losh ); 177ca987d46SWarner Losh 178ca987d46SWarner Losh typedef 179ca987d46SWarner Losh EFI_STATUS 180ca987d46SWarner Losh (EFIAPI *EFI_CLOSE_EVENT) ( 181ca987d46SWarner Losh IN EFI_EVENT Event 182ca987d46SWarner Losh ); 183ca987d46SWarner Losh 184ca987d46SWarner Losh typedef 185ca987d46SWarner Losh EFI_STATUS 186ca987d46SWarner Losh (EFIAPI *EFI_CHECK_EVENT) ( 187ca987d46SWarner Losh IN EFI_EVENT Event 188ca987d46SWarner Losh ); 189ca987d46SWarner Losh 190ca987d46SWarner Losh // 191ca987d46SWarner Losh // Task priority level 192ca987d46SWarner Losh // 193ca987d46SWarner Losh 194ca987d46SWarner Losh #define TPL_APPLICATION 4 195ca987d46SWarner Losh #define TPL_CALLBACK 8 196ca987d46SWarner Losh #define TPL_NOTIFY 16 197ca987d46SWarner Losh #define TPL_HIGH_LEVEL 31 198ca987d46SWarner Losh 199ca987d46SWarner Losh typedef 200ca987d46SWarner Losh EFI_TPL 201ca987d46SWarner Losh (EFIAPI *EFI_RAISE_TPL) ( 202ca987d46SWarner Losh IN EFI_TPL NewTpl 203ca987d46SWarner Losh ); 204ca987d46SWarner Losh 205ca987d46SWarner Losh typedef 206ca987d46SWarner Losh VOID 207ca987d46SWarner Losh (EFIAPI *EFI_RESTORE_TPL) ( 208ca987d46SWarner Losh IN EFI_TPL OldTpl 209ca987d46SWarner Losh ); 210ca987d46SWarner Losh 211ca987d46SWarner Losh 212ca987d46SWarner Losh // 213ca987d46SWarner Losh // EFI platform varibles 214ca987d46SWarner Losh // 215ca987d46SWarner Losh 216ca987d46SWarner Losh #define EFI_GLOBAL_VARIABLE \ 217ca987d46SWarner Losh { 0x8BE4DF61, 0x93CA, 0x11d2, {0xAA, 0x0D, 0x00, 0xE0, 0x98, 0x03, 0x2B, 0x8C} } 218ca987d46SWarner Losh 219ca987d46SWarner Losh // Variable attributes 220ca987d46SWarner Losh #define EFI_VARIABLE_NON_VOLATILE 0x00000001 221ca987d46SWarner Losh #define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x00000002 222ca987d46SWarner Losh #define EFI_VARIABLE_RUNTIME_ACCESS 0x00000004 22365641822SToomas Soome #define EFI_VARIABLE_HARDWARE_ERROR_RECORD 0x00000008 22465641822SToomas Soome #define EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS 0x00000010 22565641822SToomas Soome #define EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS 0x00000020 22665641822SToomas Soome #define EFI_VARIABLE_APPEND_WRITE 0x00000040 227ca987d46SWarner Losh 228ca987d46SWarner Losh // Variable size limitation 229ca987d46SWarner Losh #define EFI_MAXIMUM_VARIABLE_SIZE 1024 230ca987d46SWarner Losh 231ca987d46SWarner Losh typedef 232ca987d46SWarner Losh EFI_STATUS 233ca987d46SWarner Losh (EFIAPI *EFI_GET_VARIABLE) ( 234ca987d46SWarner Losh IN CHAR16 *VariableName, 235ca987d46SWarner Losh IN EFI_GUID *VendorGuid, 236ca987d46SWarner Losh OUT UINT32 *Attributes OPTIONAL, 237ca987d46SWarner Losh IN OUT UINTN *DataSize, 238ca987d46SWarner Losh OUT VOID *Data 239ca987d46SWarner Losh ); 240ca987d46SWarner Losh 241ca987d46SWarner Losh typedef 242ca987d46SWarner Losh EFI_STATUS 243ca987d46SWarner Losh (EFIAPI *EFI_GET_NEXT_VARIABLE_NAME) ( 244ca987d46SWarner Losh IN OUT UINTN *VariableNameSize, 245ca987d46SWarner Losh IN OUT CHAR16 *VariableName, 246ca987d46SWarner Losh IN OUT EFI_GUID *VendorGuid 247ca987d46SWarner Losh ); 248ca987d46SWarner Losh 249ca987d46SWarner Losh 250ca987d46SWarner Losh typedef 251ca987d46SWarner Losh EFI_STATUS 252ca987d46SWarner Losh (EFIAPI *EFI_SET_VARIABLE) ( 253ca987d46SWarner Losh IN const CHAR16 *VariableName, 254ca987d46SWarner Losh IN EFI_GUID *VendorGuid, 255ca987d46SWarner Losh IN UINT32 Attributes, 256ca987d46SWarner Losh IN UINTN DataSize, 257ca987d46SWarner Losh IN VOID *Data 258ca987d46SWarner Losh ); 259ca987d46SWarner Losh 260ca987d46SWarner Losh 261ca987d46SWarner Losh // 262ca987d46SWarner Losh // EFI Time 263ca987d46SWarner Losh // 264ca987d46SWarner Losh 265ca987d46SWarner Losh typedef struct { 266ca987d46SWarner Losh UINT32 Resolution; // 1e-6 parts per million 267ca987d46SWarner Losh UINT32 Accuracy; // hertz 268ca987d46SWarner Losh BOOLEAN SetsToZero; // Set clears sub-second time 269ca987d46SWarner Losh } EFI_TIME_CAPABILITIES; 270ca987d46SWarner Losh 271ca987d46SWarner Losh 272ca987d46SWarner Losh typedef 273ca987d46SWarner Losh EFI_STATUS 274ca987d46SWarner Losh (EFIAPI *EFI_GET_TIME) ( 275ca987d46SWarner Losh OUT EFI_TIME *Time, 276ca987d46SWarner Losh OUT EFI_TIME_CAPABILITIES *Capabilities OPTIONAL 277ca987d46SWarner Losh ); 278ca987d46SWarner Losh 279ca987d46SWarner Losh typedef 280ca987d46SWarner Losh EFI_STATUS 281ca987d46SWarner Losh (EFIAPI *EFI_SET_TIME) ( 282ca987d46SWarner Losh IN EFI_TIME *Time 283ca987d46SWarner Losh ); 284ca987d46SWarner Losh 285ca987d46SWarner Losh typedef 286ca987d46SWarner Losh EFI_STATUS 287ca987d46SWarner Losh (EFIAPI *EFI_GET_WAKEUP_TIME) ( 288ca987d46SWarner Losh OUT BOOLEAN *Enabled, 289ca987d46SWarner Losh OUT BOOLEAN *Pending, 290ca987d46SWarner Losh OUT EFI_TIME *Time 291ca987d46SWarner Losh ); 292ca987d46SWarner Losh 293ca987d46SWarner Losh typedef 294ca987d46SWarner Losh EFI_STATUS 295ca987d46SWarner Losh (EFIAPI *EFI_SET_WAKEUP_TIME) ( 296ca987d46SWarner Losh IN BOOLEAN Enable, 297ca987d46SWarner Losh IN EFI_TIME *Time OPTIONAL 298ca987d46SWarner Losh ); 299ca987d46SWarner Losh 300ca987d46SWarner Losh 301ca987d46SWarner Losh // 302ca987d46SWarner Losh // Image functions 303ca987d46SWarner Losh // 304ca987d46SWarner Losh 305ca987d46SWarner Losh 306ca987d46SWarner Losh // PE32+ Subsystem type for EFI images 307ca987d46SWarner Losh 308ca987d46SWarner Losh #if !defined(IMAGE_SUBSYSTEM_EFI_APPLICATION) 309ca987d46SWarner Losh #define IMAGE_SUBSYSTEM_EFI_APPLICATION 10 310ca987d46SWarner Losh #define IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER 11 311ca987d46SWarner Losh #define IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER 12 312ca987d46SWarner Losh #endif 313ca987d46SWarner Losh 314ca987d46SWarner Losh // PE32+ Machine type for EFI images 315ca987d46SWarner Losh 316ca987d46SWarner Losh #if !defined(EFI_IMAGE_MACHINE_IA32) 317ca987d46SWarner Losh #define EFI_IMAGE_MACHINE_IA32 0x014c 318ca987d46SWarner Losh #endif 319ca987d46SWarner Losh 320ca987d46SWarner Losh #if !defined(EFI_IMAGE_MACHINE_EBC) 321ca987d46SWarner Losh #define EFI_IMAGE_MACHINE_EBC 0x0EBC 322ca987d46SWarner Losh #endif 323ca987d46SWarner Losh 324ca987d46SWarner Losh // Image Entry prototype 325ca987d46SWarner Losh 326ca987d46SWarner Losh typedef 327ca987d46SWarner Losh EFI_STATUS 328ca987d46SWarner Losh (EFIAPI *EFI_IMAGE_ENTRY_POINT) ( 329ca987d46SWarner Losh IN EFI_HANDLE ImageHandle, 330ca987d46SWarner Losh IN struct _EFI_SYSTEM_TABLE *SystemTable 331ca987d46SWarner Losh ); 332ca987d46SWarner Losh 333ca987d46SWarner Losh typedef 334ca987d46SWarner Losh EFI_STATUS 335ca987d46SWarner Losh (EFIAPI *EFI_IMAGE_LOAD) ( 336ca987d46SWarner Losh IN BOOLEAN BootPolicy, 337ca987d46SWarner Losh IN EFI_HANDLE ParentImageHandle, 338ca987d46SWarner Losh IN EFI_DEVICE_PATH *FilePath, 339ca987d46SWarner Losh IN VOID *SourceBuffer OPTIONAL, 340ca987d46SWarner Losh IN UINTN SourceSize, 341ca987d46SWarner Losh OUT EFI_HANDLE *ImageHandle 342ca987d46SWarner Losh ); 343ca987d46SWarner Losh 344ca987d46SWarner Losh typedef 345ca987d46SWarner Losh EFI_STATUS 346ca987d46SWarner Losh (EFIAPI *EFI_IMAGE_START) ( 347ca987d46SWarner Losh IN EFI_HANDLE ImageHandle, 348ca987d46SWarner Losh OUT UINTN *ExitDataSize, 349ca987d46SWarner Losh OUT CHAR16 **ExitData OPTIONAL 350ca987d46SWarner Losh ); 351ca987d46SWarner Losh 352ca987d46SWarner Losh typedef 353ca987d46SWarner Losh EFI_STATUS 354ca987d46SWarner Losh (EFIAPI *EFI_EXIT) ( 355ca987d46SWarner Losh IN EFI_HANDLE ImageHandle, 356ca987d46SWarner Losh IN EFI_STATUS ExitStatus, 357ca987d46SWarner Losh IN UINTN ExitDataSize, 358ca987d46SWarner Losh IN CHAR16 *ExitData OPTIONAL 359ca987d46SWarner Losh ) __dead2; 360ca987d46SWarner Losh 361ca987d46SWarner Losh typedef 362ca987d46SWarner Losh EFI_STATUS 363ca987d46SWarner Losh (EFIAPI *EFI_IMAGE_UNLOAD) ( 364ca987d46SWarner Losh IN EFI_HANDLE ImageHandle 365ca987d46SWarner Losh ); 366ca987d46SWarner Losh 367ca987d46SWarner Losh 368ca987d46SWarner Losh // Image handle 369ca987d46SWarner Losh #define LOADED_IMAGE_PROTOCOL \ 370ca987d46SWarner Losh { 0x5B1B31A1, 0x9562, 0x11d2, {0x8E, 0x3F, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B} } 371ca987d46SWarner Losh 372ca987d46SWarner Losh #define EFI_LOADED_IMAGE_INFORMATION_REVISION 0x1000 373ca987d46SWarner Losh typedef struct { 374ca987d46SWarner Losh UINT32 Revision; 375ca987d46SWarner Losh EFI_HANDLE ParentHandle; 376ca987d46SWarner Losh struct _EFI_SYSTEM_TABLE *SystemTable; 377ca987d46SWarner Losh 378ca987d46SWarner Losh // Source location of image 379ca987d46SWarner Losh EFI_HANDLE DeviceHandle; 380ca987d46SWarner Losh EFI_DEVICE_PATH *FilePath; 381ca987d46SWarner Losh VOID *Reserved; 382ca987d46SWarner Losh 383ca987d46SWarner Losh // Images load options 384ca987d46SWarner Losh UINT32 LoadOptionsSize; 385ca987d46SWarner Losh VOID *LoadOptions; 386ca987d46SWarner Losh 387ca987d46SWarner Losh // Location of where image was loaded 388ca987d46SWarner Losh VOID *ImageBase; 389ca987d46SWarner Losh UINT64 ImageSize; 390ca987d46SWarner Losh EFI_MEMORY_TYPE ImageCodeType; 391ca987d46SWarner Losh EFI_MEMORY_TYPE ImageDataType; 392ca987d46SWarner Losh 393ca987d46SWarner Losh // If the driver image supports a dynamic unload request 394ca987d46SWarner Losh EFI_IMAGE_UNLOAD Unload; 395ca987d46SWarner Losh 396ca987d46SWarner Losh } EFI_LOADED_IMAGE; 397ca987d46SWarner Losh 398ca987d46SWarner Losh 399ca987d46SWarner Losh typedef 400ca987d46SWarner Losh EFI_STATUS 401ca987d46SWarner Losh (EFIAPI *EFI_EXIT_BOOT_SERVICES) ( 402ca987d46SWarner Losh IN EFI_HANDLE ImageHandle, 403ca987d46SWarner Losh IN UINTN MapKey 404ca987d46SWarner Losh ); 405ca987d46SWarner Losh 406ca987d46SWarner Losh // 407ca987d46SWarner Losh // Misc 408ca987d46SWarner Losh // 409ca987d46SWarner Losh 410ca987d46SWarner Losh 411ca987d46SWarner Losh typedef 412ca987d46SWarner Losh EFI_STATUS 413ca987d46SWarner Losh (EFIAPI *EFI_STALL) ( 414ca987d46SWarner Losh IN UINTN Microseconds 415ca987d46SWarner Losh ); 416ca987d46SWarner Losh 417ca987d46SWarner Losh typedef 418ca987d46SWarner Losh EFI_STATUS 419ca987d46SWarner Losh (EFIAPI *EFI_SET_WATCHDOG_TIMER) ( 420ca987d46SWarner Losh IN UINTN Timeout, 421ca987d46SWarner Losh IN UINT64 WatchdogCode, 422ca987d46SWarner Losh IN UINTN DataSize, 423ca987d46SWarner Losh IN CHAR16 *WatchdogData OPTIONAL 424ca987d46SWarner Losh ); 425ca987d46SWarner Losh 426ca987d46SWarner Losh 427ca987d46SWarner Losh typedef enum { 428ca987d46SWarner Losh EfiResetCold, 429ca987d46SWarner Losh EfiResetWarm, 430ca987d46SWarner Losh EfiResetShutdown 431ca987d46SWarner Losh } EFI_RESET_TYPE; 432ca987d46SWarner Losh 433ca987d46SWarner Losh typedef 434ca987d46SWarner Losh VOID 435ca987d46SWarner Losh (EFIAPI *EFI_RESET_SYSTEM) ( 436ca987d46SWarner Losh IN EFI_RESET_TYPE ResetType, 437ca987d46SWarner Losh IN EFI_STATUS ResetStatus, 438ca987d46SWarner Losh IN UINTN DataSize, 439ca987d46SWarner Losh IN CHAR16 *ResetData OPTIONAL 440*a2e02d9dSToomas Soome ) __dead2; 441ca987d46SWarner Losh 442ca987d46SWarner Losh typedef 443ca987d46SWarner Losh EFI_STATUS 444ca987d46SWarner Losh (EFIAPI *EFI_GET_NEXT_MONOTONIC_COUNT) ( 445ca987d46SWarner Losh OUT UINT64 *Count 446ca987d46SWarner Losh ); 447ca987d46SWarner Losh 448ca987d46SWarner Losh typedef 449ca987d46SWarner Losh EFI_STATUS 450ca987d46SWarner Losh (EFIAPI *EFI_GET_NEXT_HIGH_MONO_COUNT) ( 451ca987d46SWarner Losh OUT UINT32 *HighCount 452ca987d46SWarner Losh ); 453ca987d46SWarner Losh 454ca987d46SWarner Losh // 455ca987d46SWarner Losh // Protocol handler functions 456ca987d46SWarner Losh // 457ca987d46SWarner Losh 458ca987d46SWarner Losh typedef enum { 459ca987d46SWarner Losh EFI_NATIVE_INTERFACE 460ca987d46SWarner Losh } EFI_INTERFACE_TYPE; 461ca987d46SWarner Losh 462ca987d46SWarner Losh typedef 463ca987d46SWarner Losh EFI_STATUS 464ca987d46SWarner Losh (EFIAPI *EFI_INSTALL_PROTOCOL_INTERFACE) ( 465ca987d46SWarner Losh IN OUT EFI_HANDLE *Handle, 466ca987d46SWarner Losh IN EFI_GUID *Protocol, 467ca987d46SWarner Losh IN EFI_INTERFACE_TYPE InterfaceType, 468ca987d46SWarner Losh IN VOID *Interface 469ca987d46SWarner Losh ); 470ca987d46SWarner Losh 471ca987d46SWarner Losh typedef 472ca987d46SWarner Losh EFI_STATUS 473ca987d46SWarner Losh (EFIAPI *EFI_REINSTALL_PROTOCOL_INTERFACE) ( 474ca987d46SWarner Losh IN EFI_HANDLE Handle, 475ca987d46SWarner Losh IN EFI_GUID *Protocol, 476ca987d46SWarner Losh IN VOID *OldInterface, 477ca987d46SWarner Losh IN VOID *NewInterface 478ca987d46SWarner Losh ); 479ca987d46SWarner Losh 480ca987d46SWarner Losh typedef 481ca987d46SWarner Losh EFI_STATUS 482ca987d46SWarner Losh (EFIAPI *EFI_UNINSTALL_PROTOCOL_INTERFACE) ( 483ca987d46SWarner Losh IN EFI_HANDLE Handle, 484ca987d46SWarner Losh IN EFI_GUID *Protocol, 485ca987d46SWarner Losh IN VOID *Interface 486ca987d46SWarner Losh ); 487ca987d46SWarner Losh 488ca987d46SWarner Losh typedef 489ca987d46SWarner Losh EFI_STATUS 490ca987d46SWarner Losh (EFIAPI *EFI_HANDLE_PROTOCOL) ( 491ca987d46SWarner Losh IN EFI_HANDLE Handle, 492ca987d46SWarner Losh IN EFI_GUID *Protocol, 493ca987d46SWarner Losh OUT VOID **Interface 494ca987d46SWarner Losh ); 495ca987d46SWarner Losh 496ca987d46SWarner Losh typedef 497ca987d46SWarner Losh EFI_STATUS 498ca987d46SWarner Losh (EFIAPI *EFI_REGISTER_PROTOCOL_NOTIFY) ( 499ca987d46SWarner Losh IN EFI_GUID *Protocol, 500ca987d46SWarner Losh IN EFI_EVENT Event, 501ca987d46SWarner Losh OUT VOID **Registration 502ca987d46SWarner Losh ); 503ca987d46SWarner Losh 504ca987d46SWarner Losh typedef enum { 505ca987d46SWarner Losh AllHandles, 506ca987d46SWarner Losh ByRegisterNotify, 507ca987d46SWarner Losh ByProtocol 508ca987d46SWarner Losh } EFI_LOCATE_SEARCH_TYPE; 509ca987d46SWarner Losh 510ca987d46SWarner Losh typedef 511ca987d46SWarner Losh EFI_STATUS 512ca987d46SWarner Losh (EFIAPI *EFI_LOCATE_HANDLE) ( 513ca987d46SWarner Losh IN EFI_LOCATE_SEARCH_TYPE SearchType, 514ca987d46SWarner Losh IN EFI_GUID *Protocol OPTIONAL, 515ca987d46SWarner Losh IN VOID *SearchKey OPTIONAL, 516ca987d46SWarner Losh IN OUT UINTN *BufferSize, 517ca987d46SWarner Losh OUT EFI_HANDLE *Buffer 518ca987d46SWarner Losh ); 519ca987d46SWarner Losh 520ca987d46SWarner Losh typedef 521ca987d46SWarner Losh EFI_STATUS 522ca987d46SWarner Losh (EFIAPI *EFI_LOCATE_DEVICE_PATH) ( 523ca987d46SWarner Losh IN EFI_GUID *Protocol, 524ca987d46SWarner Losh IN OUT EFI_DEVICE_PATH **DevicePath, 525ca987d46SWarner Losh OUT EFI_HANDLE *Device 526ca987d46SWarner Losh ); 527ca987d46SWarner Losh 528ca987d46SWarner Losh typedef 529ca987d46SWarner Losh EFI_STATUS 530ca987d46SWarner Losh (EFIAPI *EFI_INSTALL_CONFIGURATION_TABLE) ( 531ca987d46SWarner Losh IN EFI_GUID *Guid, 532ca987d46SWarner Losh IN VOID *Table 533ca987d46SWarner Losh ); 534ca987d46SWarner Losh 535ca987d46SWarner Losh typedef 536ca987d46SWarner Losh EFI_STATUS 537ca987d46SWarner Losh (EFIAPI *EFI_RESERVED_SERVICE) ( 538ca987d46SWarner Losh VOID 539ca987d46SWarner Losh ); 540ca987d46SWarner Losh 541ca987d46SWarner Losh typedef 542ca987d46SWarner Losh EFI_STATUS 543ca987d46SWarner Losh (EFIAPI *EFI_CONNECT_CONTROLLER) ( 544ca987d46SWarner Losh IN EFI_HANDLE ControllerHandle, 545ca987d46SWarner Losh IN EFI_HANDLE *DriverImageHandle OPTIONAL, 546ca987d46SWarner Losh IN EFI_DEVICE_PATH *RemainingDevicePath OPTIONAL, 547ca987d46SWarner Losh IN BOOLEAN Recursive 548ca987d46SWarner Losh ); 549ca987d46SWarner Losh 550ca987d46SWarner Losh typedef 551ca987d46SWarner Losh EFI_STATUS 552ca987d46SWarner Losh (EFIAPI *EFI_DISCONNECT_CONTROLLER)( 553ca987d46SWarner Losh IN EFI_HANDLE ControllerHandle, 554ca987d46SWarner Losh IN EFI_HANDLE DriverImageHandle, OPTIONAL 555ca987d46SWarner Losh IN EFI_HANDLE ChildHandle OPTIONAL 556ca987d46SWarner Losh ); 557ca987d46SWarner Losh 558ca987d46SWarner Losh #define EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL 0x00000001 559ca987d46SWarner Losh #define EFI_OPEN_PROTOCOL_GET_PROTOCOL 0x00000002 560ca987d46SWarner Losh #define EFI_OPEN_PROTOCOL_TEST_PROTOCOL 0x00000004 561ca987d46SWarner Losh #define EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER 0x00000008 562ca987d46SWarner Losh #define EFI_OPEN_PROTOCOL_BY_DRIVER 0x00000010 563ca987d46SWarner Losh #define EFI_OPEN_PROTOCOL_EXCLUSIVE 0x00000020 564ca987d46SWarner Losh 565ca987d46SWarner Losh typedef 566ca987d46SWarner Losh EFI_STATUS 567ca987d46SWarner Losh (EFIAPI *EFI_OPEN_PROTOCOL) ( 568ca987d46SWarner Losh IN EFI_HANDLE Handle, 569ca987d46SWarner Losh IN EFI_GUID *Protocol, 570ca987d46SWarner Losh OUT VOID **Interface, 571ca987d46SWarner Losh IN EFI_HANDLE ImageHandle, 572ca987d46SWarner Losh IN EFI_HANDLE ControllerHandle, OPTIONAL 573ca987d46SWarner Losh IN UINT32 Attributes 574ca987d46SWarner Losh ); 575ca987d46SWarner Losh 576ca987d46SWarner Losh typedef 577ca987d46SWarner Losh EFI_STATUS 578ca987d46SWarner Losh (EFIAPI *EFI_CLOSE_PROTOCOL) ( 579ca987d46SWarner Losh IN EFI_HANDLE Handle, 580ca987d46SWarner Losh IN EFI_GUID *Protocol, 581ca987d46SWarner Losh IN EFI_HANDLE ImageHandle, 582ca987d46SWarner Losh IN EFI_HANDLE DeviceHandle 583ca987d46SWarner Losh ); 584ca987d46SWarner Losh 585ca987d46SWarner Losh typedef struct { 586ca987d46SWarner Losh EFI_HANDLE AgentHandle; 587ca987d46SWarner Losh EFI_HANDLE ControllerHandle; 588ca987d46SWarner Losh UINT32 Attributes; 589ca987d46SWarner Losh UINT32 OpenCount; 590ca987d46SWarner Losh } EFI_OPEN_PROTOCOL_INFORMATION_ENTRY; 591ca987d46SWarner Losh 592ca987d46SWarner Losh typedef 593ca987d46SWarner Losh EFI_STATUS 594ca987d46SWarner Losh (EFIAPI *EFI_OPEN_PROTOCOL_INFORMATION) ( 595ca987d46SWarner Losh IN EFI_HANDLE UserHandle, 596ca987d46SWarner Losh IN EFI_GUID *Protocol, 597ca987d46SWarner Losh IN EFI_OPEN_PROTOCOL_INFORMATION_ENTRY **EntryBuffer, 598ca987d46SWarner Losh OUT UINTN *EntryCount 599ca987d46SWarner Losh ); 600ca987d46SWarner Losh 601ca987d46SWarner Losh typedef 602ca987d46SWarner Losh EFI_STATUS 603ca987d46SWarner Losh (EFIAPI *EFI_PROTOCOLS_PER_HANDLE) ( 604ca987d46SWarner Losh IN EFI_HANDLE UserHandle, 605ca987d46SWarner Losh OUT EFI_GUID ***ProtocolBuffer, 606ca987d46SWarner Losh OUT UINTN *ProtocolBufferCount 607ca987d46SWarner Losh ); 608ca987d46SWarner Losh 609ca987d46SWarner Losh typedef 610ca987d46SWarner Losh EFI_STATUS 611ca987d46SWarner Losh (EFIAPI *EFI_LOCATE_HANDLE_BUFFER) ( 612ca987d46SWarner Losh IN EFI_LOCATE_SEARCH_TYPE SearchType, 613ca987d46SWarner Losh IN EFI_GUID *Protocol OPTIONAL, 614ca987d46SWarner Losh IN VOID *SearchKey OPTIONAL, 615ca987d46SWarner Losh IN OUT UINTN *NumberHandles, 616ca987d46SWarner Losh OUT EFI_HANDLE **Buffer 617ca987d46SWarner Losh ); 618ca987d46SWarner Losh 619ca987d46SWarner Losh typedef 620ca987d46SWarner Losh EFI_STATUS 621ca987d46SWarner Losh (EFIAPI *EFI_LOCATE_PROTOCOL) ( 622ca987d46SWarner Losh EFI_GUID *Protocol, 623ca987d46SWarner Losh VOID *Registration, OPTIONAL 624ca987d46SWarner Losh VOID **Interface 625ca987d46SWarner Losh ); 626ca987d46SWarner Losh 627ca987d46SWarner Losh typedef 628ca987d46SWarner Losh EFI_STATUS 629ca987d46SWarner Losh (EFIAPI *EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES) ( 630ca987d46SWarner Losh IN OUT EFI_HANDLE *Handle, 631ca987d46SWarner Losh ... 632ca987d46SWarner Losh ); 633ca987d46SWarner Losh 634ca987d46SWarner Losh typedef 635ca987d46SWarner Losh EFI_STATUS 636ca987d46SWarner Losh (EFIAPI *EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES) ( 637ca987d46SWarner Losh IN EFI_HANDLE Handle, 638ca987d46SWarner Losh ... 639ca987d46SWarner Losh ); 640ca987d46SWarner Losh 641ca987d46SWarner Losh typedef 642ca987d46SWarner Losh EFI_STATUS 643ca987d46SWarner Losh (EFIAPI *EFI_CALCULATE_CRC32) ( 644ca987d46SWarner Losh IN VOID *Data, 645ca987d46SWarner Losh IN UINTN DataSize, 646ca987d46SWarner Losh OUT UINT32 *Crc32 647ca987d46SWarner Losh ); 648ca987d46SWarner Losh 649ca987d46SWarner Losh typedef 650ca987d46SWarner Losh VOID 651ca987d46SWarner Losh (EFIAPI *EFI_COPY_MEM) ( 652ca987d46SWarner Losh IN VOID *Destination, 653ca987d46SWarner Losh IN VOID *Source, 654ca987d46SWarner Losh IN UINTN Length 655ca987d46SWarner Losh ); 656ca987d46SWarner Losh 657ca987d46SWarner Losh typedef 658ca987d46SWarner Losh VOID 659ca987d46SWarner Losh (EFIAPI *EFI_SET_MEM) ( 660ca987d46SWarner Losh IN VOID *Buffer, 661ca987d46SWarner Losh IN UINTN Size, 662ca987d46SWarner Losh IN UINT8 Value 663ca987d46SWarner Losh ); 664ca987d46SWarner Losh 665ca987d46SWarner Losh // 666ca987d46SWarner Losh // Standard EFI table header 667ca987d46SWarner Losh // 668ca987d46SWarner Losh 669ca987d46SWarner Losh typedef struct _EFI_TABLE_HEARDER { 670ca987d46SWarner Losh UINT64 Signature; 671ca987d46SWarner Losh UINT32 Revision; 672ca987d46SWarner Losh UINT32 HeaderSize; 673ca987d46SWarner Losh UINT32 CRC32; 674ca987d46SWarner Losh UINT32 Reserved; 675ca987d46SWarner Losh } EFI_TABLE_HEADER; 676ca987d46SWarner Losh 677ca987d46SWarner Losh 678ca987d46SWarner Losh // 679ca987d46SWarner Losh // EFI Runtime Serivces Table 680ca987d46SWarner Losh // 681ca987d46SWarner Losh 682ca987d46SWarner Losh #define EFI_RUNTIME_SERVICES_SIGNATURE 0x56524553544e5552 683ca987d46SWarner Losh #define EFI_RUNTIME_SERVICES_REVISION ((EFI_SPECIFICATION_MAJOR_REVISION<<16) | (EFI_SPECIFICATION_MINOR_REVISION)) 684ca987d46SWarner Losh 685ca987d46SWarner Losh typedef struct { 686ca987d46SWarner Losh EFI_TABLE_HEADER Hdr; 687ca987d46SWarner Losh 688ca987d46SWarner Losh // 689ca987d46SWarner Losh // Time services 690ca987d46SWarner Losh // 691ca987d46SWarner Losh 692ca987d46SWarner Losh EFI_GET_TIME GetTime; 693ca987d46SWarner Losh EFI_SET_TIME SetTime; 694ca987d46SWarner Losh EFI_GET_WAKEUP_TIME GetWakeupTime; 695ca987d46SWarner Losh EFI_SET_WAKEUP_TIME SetWakeupTime; 696ca987d46SWarner Losh 697ca987d46SWarner Losh // 698ca987d46SWarner Losh // Virtual memory services 699ca987d46SWarner Losh // 700ca987d46SWarner Losh 701ca987d46SWarner Losh EFI_SET_VIRTUAL_ADDRESS_MAP SetVirtualAddressMap; 702ca987d46SWarner Losh EFI_CONVERT_POINTER ConvertPointer; 703ca987d46SWarner Losh 704ca987d46SWarner Losh // 705ca987d46SWarner Losh // Variable serviers 706ca987d46SWarner Losh // 707ca987d46SWarner Losh 708ca987d46SWarner Losh EFI_GET_VARIABLE GetVariable; 709ca987d46SWarner Losh EFI_GET_NEXT_VARIABLE_NAME GetNextVariableName; 710ca987d46SWarner Losh EFI_SET_VARIABLE SetVariable; 711ca987d46SWarner Losh 712ca987d46SWarner Losh // 713ca987d46SWarner Losh // Misc 714ca987d46SWarner Losh // 715ca987d46SWarner Losh 716ca987d46SWarner Losh EFI_GET_NEXT_HIGH_MONO_COUNT GetNextHighMonotonicCount; 717ca987d46SWarner Losh EFI_RESET_SYSTEM ResetSystem; 718ca987d46SWarner Losh 719ca987d46SWarner Losh } EFI_RUNTIME_SERVICES; 720ca987d46SWarner Losh 721ca987d46SWarner Losh 722ca987d46SWarner Losh // 723ca987d46SWarner Losh // EFI Boot Services Table 724ca987d46SWarner Losh // 725ca987d46SWarner Losh 726ca987d46SWarner Losh #define EFI_BOOT_SERVICES_SIGNATURE 0x56524553544f4f42 727ca987d46SWarner Losh #define EFI_BOOT_SERVICES_REVISION ((EFI_SPECIFICATION_MAJOR_REVISION<<16) | (EFI_SPECIFICATION_MINOR_REVISION)) 728ca987d46SWarner Losh 729ca987d46SWarner Losh typedef struct { 730ca987d46SWarner Losh 731ca987d46SWarner Losh EFI_TABLE_HEADER Hdr; 732ca987d46SWarner Losh 733ca987d46SWarner Losh // 734ca987d46SWarner Losh // Task priority functions 735ca987d46SWarner Losh // 736ca987d46SWarner Losh 737ca987d46SWarner Losh EFI_RAISE_TPL RaiseTPL; 738ca987d46SWarner Losh EFI_RESTORE_TPL RestoreTPL; 739ca987d46SWarner Losh 740ca987d46SWarner Losh // 741ca987d46SWarner Losh // Memory functions 742ca987d46SWarner Losh // 743ca987d46SWarner Losh 744ca987d46SWarner Losh EFI_ALLOCATE_PAGES AllocatePages; 745ca987d46SWarner Losh EFI_FREE_PAGES FreePages; 746ca987d46SWarner Losh EFI_GET_MEMORY_MAP GetMemoryMap; 747ca987d46SWarner Losh EFI_ALLOCATE_POOL AllocatePool; 748ca987d46SWarner Losh EFI_FREE_POOL FreePool; 749ca987d46SWarner Losh 750ca987d46SWarner Losh // 751ca987d46SWarner Losh // Event & timer functions 752ca987d46SWarner Losh // 753ca987d46SWarner Losh 754ca987d46SWarner Losh EFI_CREATE_EVENT CreateEvent; 755ca987d46SWarner Losh EFI_SET_TIMER SetTimer; 756ca987d46SWarner Losh EFI_WAIT_FOR_EVENT WaitForEvent; 757ca987d46SWarner Losh EFI_SIGNAL_EVENT SignalEvent; 758ca987d46SWarner Losh EFI_CLOSE_EVENT CloseEvent; 759ca987d46SWarner Losh EFI_CHECK_EVENT CheckEvent; 760ca987d46SWarner Losh 761ca987d46SWarner Losh // 762ca987d46SWarner Losh // Protocol handler functions 763ca987d46SWarner Losh // 764ca987d46SWarner Losh 765ca987d46SWarner Losh EFI_INSTALL_PROTOCOL_INTERFACE InstallProtocolInterface; 766ca987d46SWarner Losh EFI_REINSTALL_PROTOCOL_INTERFACE ReinstallProtocolInterface; 767ca987d46SWarner Losh EFI_UNINSTALL_PROTOCOL_INTERFACE UninstallProtocolInterface; 768ca987d46SWarner Losh EFI_HANDLE_PROTOCOL HandleProtocol; 769ca987d46SWarner Losh VOID *Reserved; 770ca987d46SWarner Losh EFI_REGISTER_PROTOCOL_NOTIFY RegisterProtocolNotify; 771ca987d46SWarner Losh EFI_LOCATE_HANDLE LocateHandle; 772ca987d46SWarner Losh EFI_LOCATE_DEVICE_PATH LocateDevicePath; 773ca987d46SWarner Losh EFI_INSTALL_CONFIGURATION_TABLE InstallConfigurationTable; 774ca987d46SWarner Losh 775ca987d46SWarner Losh // 776ca987d46SWarner Losh // Image functions 777ca987d46SWarner Losh // 778ca987d46SWarner Losh 779ca987d46SWarner Losh EFI_IMAGE_LOAD LoadImage; 780ca987d46SWarner Losh EFI_IMAGE_START StartImage; 781ca987d46SWarner Losh EFI_EXIT Exit; 782ca987d46SWarner Losh EFI_IMAGE_UNLOAD UnloadImage; 783ca987d46SWarner Losh EFI_EXIT_BOOT_SERVICES ExitBootServices; 784ca987d46SWarner Losh 785ca987d46SWarner Losh // 786ca987d46SWarner Losh // Misc functions 787ca987d46SWarner Losh // 788ca987d46SWarner Losh 789ca987d46SWarner Losh EFI_GET_NEXT_MONOTONIC_COUNT GetNextMonotonicCount; 790ca987d46SWarner Losh EFI_STALL Stall; 791ca987d46SWarner Losh EFI_SET_WATCHDOG_TIMER SetWatchdogTimer; 792ca987d46SWarner Losh 793ca987d46SWarner Losh // 794ca987d46SWarner Losh // DriverSupport Services 795ca987d46SWarner Losh // 796ca987d46SWarner Losh EFI_CONNECT_CONTROLLER ConnectController; 797ca987d46SWarner Losh EFI_DISCONNECT_CONTROLLER DisconnectController; 798ca987d46SWarner Losh 799ca987d46SWarner Losh // 800ca987d46SWarner Losh // Open and Close Protocol Services 801ca987d46SWarner Losh // 802ca987d46SWarner Losh EFI_OPEN_PROTOCOL OpenProtocol; 803ca987d46SWarner Losh EFI_CLOSE_PROTOCOL CloseProtocol; 804ca987d46SWarner Losh EFI_OPEN_PROTOCOL_INFORMATION OpenProtocolInformation; 805ca987d46SWarner Losh 806ca987d46SWarner Losh // 807ca987d46SWarner Losh // Library Services to reduce size of drivers 808ca987d46SWarner Losh // 809ca987d46SWarner Losh EFI_PROTOCOLS_PER_HANDLE ProtocolsPerHandle; 810ca987d46SWarner Losh EFI_LOCATE_HANDLE_BUFFER LocateHandleBuffer; 811ca987d46SWarner Losh EFI_LOCATE_PROTOCOL LocateProtocol; 812ca987d46SWarner Losh 813ca987d46SWarner Losh EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES InstallMultipleProtocolInterfaces; 814ca987d46SWarner Losh EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES UninstallMultipleProtocolInterfaces; 815ca987d46SWarner Losh 816ca987d46SWarner Losh // 817ca987d46SWarner Losh // CRC32 services 818ca987d46SWarner Losh // 819ca987d46SWarner Losh EFI_CALCULATE_CRC32 CalculateCrc32; 820ca987d46SWarner Losh 821ca987d46SWarner Losh // 822ca987d46SWarner Losh // Memory Utility Services 823ca987d46SWarner Losh // 824ca987d46SWarner Losh EFI_COPY_MEM CopyMem; 825ca987d46SWarner Losh EFI_SET_MEM SetMem; 826ca987d46SWarner Losh 827ca987d46SWarner Losh } EFI_BOOT_SERVICES; 828ca987d46SWarner Losh 829ca987d46SWarner Losh 830ca987d46SWarner Losh // 831ca987d46SWarner Losh // EFI Configuration Table and GUID definitions 832ca987d46SWarner Losh // 833ca987d46SWarner Losh 834ca987d46SWarner Losh #define MPS_TABLE_GUID \ 835ca987d46SWarner Losh { 0xeb9d2d2f, 0x2d88, 0x11d3, {0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } 836ca987d46SWarner Losh 837ca987d46SWarner Losh #define ACPI_TABLE_GUID \ 838ca987d46SWarner Losh { 0xeb9d2d30, 0x2d88, 0x11d3, {0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } 839ca987d46SWarner Losh 840ca987d46SWarner Losh #define ACPI_20_TABLE_GUID \ 841ca987d46SWarner Losh { 0x8868e871, 0xe4f1, 0x11d3, {0xbc, 0x22, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81} } 842ca987d46SWarner Losh 843ca987d46SWarner Losh #define SMBIOS_TABLE_GUID \ 844ca987d46SWarner Losh { 0xeb9d2d31, 0x2d88, 0x11d3, {0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } 845ca987d46SWarner Losh 8469b2ff7dbSEd Maste #define SMBIOS3_TABLE_GUID \ 8479b2ff7dbSEd Maste { 0xf2fd1544, 0x9794, 0x4a2c, {0x99, 0x2e, 0xe5, 0xbb, 0xcf, 0x20, 0xe3, 0x94} } 8489b2ff7dbSEd Maste 849ca987d46SWarner Losh #define SAL_SYSTEM_TABLE_GUID \ 850ca987d46SWarner Losh { 0xeb9d2d32, 0x2d88, 0x11d3, {0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } 851ca987d46SWarner Losh 852ca987d46SWarner Losh #define FDT_TABLE_GUID \ 853ca987d46SWarner Losh { 0xb1b621d5, 0xf19c, 0x41a5, {0x83, 0x0b, 0xd9, 0x15, 0x2c, 0x69, 0xaa, 0xe0} } 854ca987d46SWarner Losh 855ca987d46SWarner Losh #define DXE_SERVICES_TABLE_GUID \ 856ca987d46SWarner Losh { 0x5ad34ba, 0x6f02, 0x4214, {0x95, 0x2e, 0x4d, 0xa0, 0x39, 0x8e, 0x2b, 0xb9} } 857ca987d46SWarner Losh 858ca987d46SWarner Losh #define HOB_LIST_TABLE_GUID \ 859ca987d46SWarner Losh { 0x7739f24c, 0x93d7, 0x11d4, {0x9a, 0x3a, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } 860ca987d46SWarner Losh 8619b2ff7dbSEd Maste #define LZMA_DECOMPRESSION_GUID \ 8629b2ff7dbSEd Maste { 0xee4e5898, 0x3914, 0x4259, {0x9d, 0x6e, 0xdc, 0x7b, 0xd7, 0x94, 0x3, 0xcf} } 8639b2ff7dbSEd Maste 8649b2ff7dbSEd Maste #define ARM_MP_CORE_INFO_TABLE_GUID \ 8659b2ff7dbSEd Maste { 0xa4ee0728, 0xe5d7, 0x4ac5, {0xb2, 0x1e, 0x65, 0x8e, 0xd8, 0x57, 0xe8, 0x34} } 8669b2ff7dbSEd Maste 8679b2ff7dbSEd Maste #define ESRT_TABLE_GUID \ 8689b2ff7dbSEd Maste { 0xb122a263, 0x3661, 0x4f68, {0x99, 0x29, 0x78, 0xf8, 0xb0, 0xd6, 0x21, 0x80} } 8699b2ff7dbSEd Maste 870ca987d46SWarner Losh #define MEMORY_TYPE_INFORMATION_TABLE_GUID \ 871ca987d46SWarner Losh { 0x4c19049f, 0x4137, 0x4dd3, {0x9c, 0x10, 0x8b, 0x97, 0xa8, 0x3f, 0xfd, 0xfa} } 872ca987d46SWarner Losh 873ca987d46SWarner Losh #define DEBUG_IMAGE_INFO_TABLE_GUID \ 874ca987d46SWarner Losh { 0x49152e77, 0x1ada, 0x4764, {0xb7, 0xa2, 0x7a, 0xfe, 0xfe, 0xd9, 0x5e, 0x8b} } 875ca987d46SWarner Losh 876ca987d46SWarner Losh typedef struct _EFI_CONFIGURATION_TABLE { 877ca987d46SWarner Losh EFI_GUID VendorGuid; 878ca987d46SWarner Losh VOID *VendorTable; 879ca987d46SWarner Losh } EFI_CONFIGURATION_TABLE; 880ca987d46SWarner Losh 881ca987d46SWarner Losh 882ca987d46SWarner Losh // 883ca987d46SWarner Losh // EFI System Table 884ca987d46SWarner Losh // 885ca987d46SWarner Losh 886ca987d46SWarner Losh 887ca987d46SWarner Losh 888ca987d46SWarner Losh 889ca987d46SWarner Losh #define EFI_SYSTEM_TABLE_SIGNATURE 0x5453595320494249 890ca987d46SWarner Losh #define EFI_SYSTEM_TABLE_REVISION ((EFI_SPECIFICATION_MAJOR_REVISION<<16) | (EFI_SPECIFICATION_MINOR_REVISION)) 891ca987d46SWarner Losh #define EFI_1_10_SYSTEM_TABLE_REVISION ((1<<16) | 10) 892ca987d46SWarner Losh #define EFI_1_02_SYSTEM_TABLE_REVISION ((1<<16) | 02) 893ca987d46SWarner Losh 894ca987d46SWarner Losh typedef struct _EFI_SYSTEM_TABLE { 895ca987d46SWarner Losh EFI_TABLE_HEADER Hdr; 896ca987d46SWarner Losh 897ca987d46SWarner Losh CHAR16 *FirmwareVendor; 898ca987d46SWarner Losh UINT32 FirmwareRevision; 899ca987d46SWarner Losh 900ca987d46SWarner Losh EFI_HANDLE ConsoleInHandle; 901ca987d46SWarner Losh SIMPLE_INPUT_INTERFACE *ConIn; 902ca987d46SWarner Losh 903ca987d46SWarner Losh EFI_HANDLE ConsoleOutHandle; 904ca987d46SWarner Losh SIMPLE_TEXT_OUTPUT_INTERFACE *ConOut; 905ca987d46SWarner Losh 906ca987d46SWarner Losh EFI_HANDLE StandardErrorHandle; 907ca987d46SWarner Losh SIMPLE_TEXT_OUTPUT_INTERFACE *StdErr; 908ca987d46SWarner Losh 909ca987d46SWarner Losh EFI_RUNTIME_SERVICES *RuntimeServices; 910ca987d46SWarner Losh EFI_BOOT_SERVICES *BootServices; 911ca987d46SWarner Losh 912ca987d46SWarner Losh UINTN NumberOfTableEntries; 913ca987d46SWarner Losh EFI_CONFIGURATION_TABLE *ConfigurationTable; 914ca987d46SWarner Losh 915ca987d46SWarner Losh } EFI_SYSTEM_TABLE; 916ca987d46SWarner Losh 91765641822SToomas Soome /* 91865641822SToomas Soome * unlisted GUID's.. 91965641822SToomas Soome */ 92065641822SToomas Soome #define EFI_EBC_INTERPRETER_PROTOCOL_GUID \ 92165641822SToomas Soome { 0x13AC6DD1, 0x73D0, 0x11D4, {0xB0, 0x6B, 0x00, 0xAA, 0x00, 0xBD, 0x6D, 0xE7} } 92265641822SToomas Soome 92365641822SToomas Soome #define EFI_DRIVER_CONFIGURATION2_PROTOCOL_GUID \ 92465641822SToomas Soome { 0xbfd7dc1d, 0x24f1, 0x40d9, {0x82, 0xe7, 0x2e, 0x09, 0xbb, 0x6b, 0x4e, 0xbe} } 92565641822SToomas Soome 92665641822SToomas Soome #define EFI_DRIVER_CONFIGURATION_PROTOCOL_GUID \ 92765641822SToomas Soome { 0x107a772b, 0xd5e1, 0x11d4, {0x9a, 0x46, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } 92865641822SToomas Soome 92965641822SToomas Soome #define EFI_DRIVER_BINDING_PROTOCOL_GUID \ 93065641822SToomas Soome { 0x18A031AB, 0xB443, 0x4D1A, \ 93165641822SToomas Soome { 0xA5, 0xC0, 0x0C, 0x09, 0x26, 0x1E, 0x9F, 0x71 } \ 93265641822SToomas Soome } 93365641822SToomas Soome 93465641822SToomas Soome #define EFI_TAPE_IO_PROTOCOL_GUID \ 93565641822SToomas Soome { 0x1e93e633, 0xd65a, 0x459e, \ 93665641822SToomas Soome { 0xab, 0x84, 0x93, 0xd9, 0xec, 0x26, 0x6d, 0x18 } \ 93765641822SToomas Soome } 93865641822SToomas Soome 93965641822SToomas Soome #define EFI_SCSI_IO_PROTOCOL_GUID \ 94065641822SToomas Soome { 0x932f47e6, 0x2362, 0x4002, \ 94165641822SToomas Soome { 0x80, 0x3e, 0x3c, 0xd5, 0x4b, 0x13, 0x8f, 0x85 } \ 94265641822SToomas Soome } 94365641822SToomas Soome 94465641822SToomas Soome #define EFI_USB2_HC_PROTOCOL_GUID \ 94565641822SToomas Soome { 0x3e745226, 0x9818, 0x45b6, \ 94665641822SToomas Soome { 0xa2, 0xac, 0xd7, 0xcd, 0x0e, 0x8b, 0xa2, 0xbc } \ 94765641822SToomas Soome } 94865641822SToomas Soome 94965641822SToomas Soome #define EFI_DEBUG_SUPPORT_PROTOCOL_GUID \ 95065641822SToomas Soome { 0x2755590C, 0x6F3C, 0x42FA, \ 95165641822SToomas Soome { 0x9E, 0xA4, 0xA3, 0xBA, 0x54, 0x3C, 0xDA, 0x25 } \ 95265641822SToomas Soome } 95365641822SToomas Soome 95465641822SToomas Soome #define EFI_DEBUGPORT_PROTOCOL_GUID \ 95565641822SToomas Soome { 0xEBA4E8D2, 0x3858, 0x41EC, \ 95665641822SToomas Soome { 0xA2, 0x81, 0x26, 0x47, 0xBA, 0x96, 0x60, 0xD0 } \ 95765641822SToomas Soome } 95865641822SToomas Soome 95965641822SToomas Soome #define EFI_DECOMPRESS_PROTOCOL_GUID \ 96065641822SToomas Soome { 0xd8117cfe, 0x94a6, 0x11d4, \ 96165641822SToomas Soome { 0x9a, 0x3a, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d } \ 96265641822SToomas Soome } 96365641822SToomas Soome 96465641822SToomas Soome #define EFI_ACPI_TABLE_PROTOCOL_GUID \ 96565641822SToomas Soome { 0xffe06bdd, 0x6107, 0x46a6, \ 96665641822SToomas Soome { 0x7b, 0xb2, 0x5a, 0x9c, 0x7e, 0xc5, 0x27, 0x5c} \ 96765641822SToomas Soome } 96865641822SToomas Soome 96965641822SToomas Soome #define EFI_HII_CONFIG_ROUTING_PROTOCOL_GUID \ 97065641822SToomas Soome { 0x587e72d7, 0xcc50, 0x4f79, \ 97165641822SToomas Soome { 0x82, 0x09, 0xca, 0x29, 0x1f, 0xc1, 0xa1, 0x0f } \ 97265641822SToomas Soome } 97365641822SToomas Soome 97465641822SToomas Soome #define EFI_HII_DATABASE_PROTOCOL_GUID \ 97565641822SToomas Soome { 0xef9fc172, 0xa1b2, 0x4693, \ 97665641822SToomas Soome { 0xb3, 0x27, 0x6d, 0x32, 0xfc, 0x41, 0x60, 0x42 } \ 97765641822SToomas Soome } 97865641822SToomas Soome 97965641822SToomas Soome #define EFI_HII_STRING_PROTOCOL_GUID \ 98065641822SToomas Soome { 0xfd96974, 0x23aa, 0x4cdc, \ 98165641822SToomas Soome { 0xb9, 0xcb, 0x98, 0xd1, 0x77, 0x50, 0x32, 0x2a } \ 98265641822SToomas Soome } 98365641822SToomas Soome 98465641822SToomas Soome #define EFI_HII_IMAGE_PROTOCOL_GUID \ 98565641822SToomas Soome { 0x31a6406a, 0x6bdf, 0x4e46, \ 98665641822SToomas Soome { 0xb2, 0xa2, 0xeb, 0xaa, 0x89, 0xc4, 0x9, 0x20 } \ 98765641822SToomas Soome } 98865641822SToomas Soome 98965641822SToomas Soome #define EFI_HII_FONT_PROTOCOL_GUID \ 99065641822SToomas Soome { 0xe9ca4775, 0x8657, 0x47fc, \ 99165641822SToomas Soome { 0x97, 0xe7, 0x7e, 0xd6, 0x5a, 0x8, 0x43, 0x24 } \ 99265641822SToomas Soome } 99365641822SToomas Soome #define EFI_HII_CONFIGURATION_ACCESS_PROTOCOL_GUID \ 99465641822SToomas Soome { 0x330d4706, 0xf2a0, 0x4e4f, \ 99565641822SToomas Soome { 0xa3, 0x69, 0xb6, 0x6f, 0xa8, 0xd5, 0x43, 0x85 } \ 99665641822SToomas Soome } 99765641822SToomas Soome 99865641822SToomas Soome #define EFI_COMPONENT_NAME_PROTOCOL_GUID \ 99965641822SToomas Soome { 0x107a772c, 0xd5e1, 0x11d4, {0x9a, 0x46, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } 100065641822SToomas Soome 100165641822SToomas Soome #define EFI_COMPONENT_NAME2_PROTOCOL_GUID \ 100265641822SToomas Soome { 0x6a7a5cff, 0xe8d9, 0x4f70, \ 100365641822SToomas Soome { 0xba, 0xda, 0x75, 0xab, 0x30, 0x25, 0xce, 0x14} \ 100465641822SToomas Soome } 100565641822SToomas Soome 100665641822SToomas Soome #define EFI_USB_IO_PROTOCOL_GUID \ 100765641822SToomas Soome { 0x2B2F68D6, 0x0CD2, 0x44cf, \ 100865641822SToomas Soome { 0x8E, 0x8B, 0xBB, 0xA2, 0x0B, 0x1B, 0x5B, 0x75 } \ 100965641822SToomas Soome } 101065641822SToomas Soome #define EFI_HCDP_TABLE_GUID \ 101165641822SToomas Soome { 0xf951938d, 0x620b, 0x42ef, \ 101265641822SToomas Soome { 0x82, 0x79, 0xa8, 0x4b, 0x79, 0x61, 0x78, 0x98 } \ 101365641822SToomas Soome } 101465641822SToomas Soome 101565641822SToomas Soome #define EFI_DEVICE_TREE_GUID \ 101665641822SToomas Soome { 0xb1b621d5, 0xf19c, 0x41a5, \ 101765641822SToomas Soome { 0x83, 0x0b, 0xd9, 0x15, 0x2c, 0x69, 0xaa, 0xe0 } \ 101865641822SToomas Soome } 101965641822SToomas Soome 102065641822SToomas Soome #define EFI_VENDOR_APPLE_GUID \ 102165641822SToomas Soome { 0x2B0585EB, 0xD8B8, 0x49A9, \ 102265641822SToomas Soome { 0x8B, 0x8C, 0xE2, 0x1B, 0x01, 0xAE, 0xF2, 0xB7 } \ 102365641822SToomas Soome } 102465641822SToomas Soome 102565641822SToomas Soome #define EFI_CONSOLE_IN_DEVICE_GUID \ 102665641822SToomas Soome { 0xd3b36f2b, 0xd551, 0x11d4, {0x9a, 0x46, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } 102765641822SToomas Soome 102865641822SToomas Soome #define EFI_CONSOLE_OUT_DEVICE_GUID \ 102965641822SToomas Soome { 0xd3b36f2c, 0xd551, 0x11d4, {0x9a, 0x46, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } 103065641822SToomas Soome 103165641822SToomas Soome #define EFI_STANDARD_ERROR_DEVICE_GUID \ 103265641822SToomas Soome { 0xd3b36f2d, 0xd551, 0x11d4, {0x9a, 0x46, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } 103365641822SToomas Soome 103465641822SToomas Soome #define EFI_UNICODE_COLLATION2_PROTOCOL_GUID \ 103565641822SToomas Soome { 0xa4c751fc, 0x23ae, 0x4c3e, {0x92, 0xe9, 0x49, 0x64, 0xcf, 0x63, 0xf3, 0x49} } 103665641822SToomas Soome 103765641822SToomas Soome #define EFI_FORM_BROWSER2_PROTOCOL_GUID \ 103865641822SToomas Soome { 0xb9d4c360, 0xbcfb, 0x4f9b, {0x92, 0x98, 0x53, 0xc1, 0x36, 0x98, 0x22, 0x58} } 103965641822SToomas Soome 104065641822SToomas Soome #define EFI_ARP_SERVICE_BINDING_PROTOCOL_GUID \ 104165641822SToomas Soome { 0xf44c00ee, 0x1f2c, 0x4a00, {0xaa, 0x9, 0x1c, 0x9f, 0x3e, 0x8, 0x0, 0xa3} } 104265641822SToomas Soome 104365641822SToomas Soome #define EFI_ARP_PROTOCOL_GUID \ 104465641822SToomas Soome { 0xf4b427bb, 0xba21, 0x4f16, {0xbc, 0x4e, 0x43, 0xe4, 0x16, 0xab, 0x61, 0x9c} } 104565641822SToomas Soome 104665641822SToomas Soome #define EFI_IP4_CONFIG_PROTOCOL_GUID \ 104765641822SToomas Soome { 0x3b95aa31, 0x3793, 0x434b, {0x86, 0x67, 0xc8, 0x07, 0x08, 0x92, 0xe0, 0x5e} } 104865641822SToomas Soome 104965641822SToomas Soome #define EFI_IP6_CONFIG_PROTOCOL_GUID \ 105065641822SToomas Soome { 0x937fe521, 0x95ae, 0x4d1a, {0x89, 0x29, 0x48, 0xbc, 0xd9, 0x0a, 0xd3, 0x1a} } 105165641822SToomas Soome 105265641822SToomas Soome #define EFI_MANAGED_NETWORK_SERVICE_BINDING_PROTOCOL_GUID \ 105365641822SToomas Soome { 0xf36ff770, 0xa7e1, 0x42cf, {0x9e, 0xd2, 0x56, 0xf0, 0xf2, 0x71, 0xf4, 0x4c} } 105465641822SToomas Soome 105565641822SToomas Soome #define EFI_MANAGED_NETWORK_PROTOCOL_GUID \ 105665641822SToomas Soome { 0x7ab33a91, 0xace5, 0x4326, {0xb5, 0x72, 0xe7, 0xee, 0x33, 0xd3, 0x9f, 0x16} } 105765641822SToomas Soome 105865641822SToomas Soome #define EFI_MTFTP4_SERVICE_BINDING_PROTOCOL_GUID \ 105965641822SToomas Soome { 0x2FE800BE, 0x8F01, 0x4aa6, {0x94, 0x6B, 0xD7, 0x13, 0x88, 0xE1, 0x83, 0x3F} } 106065641822SToomas Soome 106165641822SToomas Soome #define EFI_MTFTP4_PROTOCOL_GUID \ 106265641822SToomas Soome { 0x78247c57, 0x63db, 0x4708, {0x99, 0xc2, 0xa8, 0xb4, 0xa9, 0xa6, 0x1f, 0x6b} } 106365641822SToomas Soome 106465641822SToomas Soome #define EFI_MTFTP6_SERVICE_BINDING_PROTOCOL_GUID \ 106565641822SToomas Soome { 0xd9760ff3, 0x3cca, 0x4267, {0x80, 0xf9, 0x75, 0x27, 0xfa, 0xfa, 0x42, 0x23} } 106665641822SToomas Soome 106765641822SToomas Soome #define EFI_MTFTP6_PROTOCOL_GUID \ 106865641822SToomas Soome { 0xbf0a78ba, 0xec29, 0x49cf, {0xa1, 0xc9, 0x7a, 0xe5, 0x4e, 0xab, 0x6a, 0x51} } 106965641822SToomas Soome 107065641822SToomas Soome #define EFI_DHCP4_PROTOCOL_GUID \ 107165641822SToomas Soome { 0x8a219718, 0x4ef5, 0x4761, {0x91, 0xc8, 0xc0, 0xf0, 0x4b, 0xda, 0x9e, 0x56} } 107265641822SToomas Soome 107365641822SToomas Soome #define EFI_DHCP4_SERVICE_BINDING_PROTOCOL_GUID \ 107465641822SToomas Soome { 0x9d9a39d8, 0xbd42, 0x4a73, {0xa4, 0xd5, 0x8e, 0xe9, 0x4b, 0xe1, 0x13, 0x80} } 107565641822SToomas Soome 107665641822SToomas Soome #define EFI_DHCP6_SERVICE_BINDING_PROTOCOL_GUID \ 107765641822SToomas Soome { 0x9fb9a8a1, 0x2f4a, 0x43a6, {0x88, 0x9c, 0xd0, 0xf7, 0xb6, 0xc4, 0x7a, 0xd5} } 107865641822SToomas Soome 107965641822SToomas Soome #define EFI_DHCP6_PROTOCOL_GUID \ 108065641822SToomas Soome { 0x87c8bad7, 0x595, 0x4053, {0x82, 0x97, 0xde, 0xde, 0x39, 0x5f, 0x5d, 0x5b} } 108165641822SToomas Soome 108265641822SToomas Soome #define EFI_SCSI_PASS_THRU_PROTOCOL_GUID \ 108365641822SToomas Soome { 0xa59e8fcf, 0xbda0, 0x43bb, {0x90, 0xb1, 0xd3, 0x73, 0x2e, 0xca, 0xa8, 0x77} } 108465641822SToomas Soome 108565641822SToomas Soome #define EFI_EXT_SCSI_PASS_THRU_PROTOCOL_GUID \ 108665641822SToomas Soome { 0x143b7632, 0xb81b, 0x4cb7, {0xab, 0xd3, 0xb6, 0x25, 0xa5, 0xb9, 0xbf, 0xfe} } 108765641822SToomas Soome 108865641822SToomas Soome #define EFI_DISK_INFO_PROTOCOL_GUID \ 108965641822SToomas Soome { 0xd432a67f, 0x14dc, 0x484b, {0xb3, 0xbb, 0x3f, 0x2, 0x91, 0x84, 0x93, 0x27} } 109065641822SToomas Soome 109165641822SToomas Soome #define EFI_ISA_IO_PROTOCOL_GUID \ 109265641822SToomas Soome { 0x7ee2bd44, 0x3da0, 0x11d4, { 0x9a, 0x38, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } 109365641822SToomas Soome 109465641822SToomas Soome #define EFI_VLAN_CONFIG_PROTOCOL_GUID \ 109565641822SToomas Soome { 0x9e23d768, 0xd2f3, 0x4366, {0x9f, 0xc3, 0x3a, 0x7a, 0xba, 0x86, 0x43, 0x74} } 109665641822SToomas Soome 109765641822SToomas Soome #define EFI_IDE_CONTROLLER_INIT_PROTOCOL_GUID \ 109865641822SToomas Soome { 0xa1e37052, 0x80d9, 0x4e65, {0xa3, 0x17, 0x3e, 0x9a, 0x55, 0xc4, 0x3e, 0xc9} } 109965641822SToomas Soome 110065641822SToomas Soome #define EFI_ISA_ACPI_PROTOCOL_GUID \ 110165641822SToomas Soome { 0x64a892dc, 0x5561, 0x4536, {0x92, 0xc7, 0x79, 0x9b, 0xfc, 0x18, 0x33, 0x55} } 110265641822SToomas Soome 110365641822SToomas Soome #define EFI_PCI_ENUMERATION_COMPLETE_GUID \ 110465641822SToomas Soome { 0x30cfe3e7, 0x3de1, 0x4586, {0xbe, 0x20, 0xde, 0xab, 0xa1, 0xb3, 0xb7, 0x93} } 110565641822SToomas Soome 110665641822SToomas Soome #define EFI_DRIVER_DIAGNOSTICS_PROTOCOL_GUID \ 110765641822SToomas Soome { 0x0784924f, 0xe296, 0x11d4, {0x9a, 0x49, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } } 110865641822SToomas Soome 110965641822SToomas Soome #define EFI_DRIVER_DIAGNOSTICS2_PROTOCOL_GUID \ 111065641822SToomas Soome { 0x4d330321, 0x025f, 0x4aac, {0x90, 0xd8, 0x5e, 0xd9, 0x00, 0x17, 0x3b, 0x63} } 111165641822SToomas Soome 111265641822SToomas Soome #define EFI_CAPSULE_ARCH_PROTOCOL_GUID \ 111365641822SToomas Soome { 0x5053697e, 0x2cbc, 0x4819, {0x90, 0xd9, 0x05, 0x80, 0xde, 0xee, 0x57, 0x54} } 111465641822SToomas Soome 111565641822SToomas Soome #define EFI_MONOTONIC_COUNTER_ARCH_PROTOCOL_GUID \ 111665641822SToomas Soome {0x1da97072, 0xbddc, 0x4b30, {0x99, 0xf1, 0x72, 0xa0, 0xb5, 0x6f, 0xff, 0x2a} } 111765641822SToomas Soome 111865641822SToomas Soome #define EFI_REALTIME_CLOCK_ARCH_PROTOCOL_GUID \ 111965641822SToomas Soome {0x27cfac87, 0x46cc, 0x11d4, {0x9a, 0x38, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } 112065641822SToomas Soome 112165641822SToomas Soome #define EFI_MP_SERVICES_PROTOCOL_GUID \ 112265641822SToomas Soome { 0x3fdda605, 0xa76e, 0x4f46, {0xad, 0x29, 0x12, 0xf4, 0x53, 0x1b, 0x3d, 0x08} } 112365641822SToomas Soome 112465641822SToomas Soome #define EFI_VARIABLE_ARCH_PROTOCOL_GUID \ 112565641822SToomas Soome { 0x1e5668e2, 0x8481, 0x11d4, {0xbc, 0xf1, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } } 112665641822SToomas Soome 112765641822SToomas Soome #define EFI_VARIABLE_WRITE_ARCH_PROTOCOL_GUID \ 112865641822SToomas Soome { 0x6441f818, 0x6362, 0x4e44, {0xb5, 0x70, 0x7d, 0xba, 0x31, 0xdd, 0x24, 0x53} } 112965641822SToomas Soome 113065641822SToomas Soome #define EFI_WATCHDOG_TIMER_ARCH_PROTOCOL_GUID \ 113165641822SToomas Soome { 0x6441f818, 0x6362, 0x4e44, {0xb5, 0x70, 0x7d, 0xba, 0x31, 0xdd, 0x24, 0x53} } 113265641822SToomas Soome 113365641822SToomas Soome #define EFI_ACPI_SUPPORT_PROTOCOL_GUID \ 113465641822SToomas Soome { 0x6441f818, 0x6362, 0x4e44, {0xb5, 0x70, 0x7d, 0xba, 0x31, 0xdd, 0x24, 0x53} } 113565641822SToomas Soome 113665641822SToomas Soome #define EFI_BDS_ARCH_PROTOCOL_GUID \ 113765641822SToomas Soome { 0x665e3ff6, 0x46cc, 0x11d4, {0x9a, 0x38, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } 113865641822SToomas Soome 113965641822SToomas Soome #define EFI_METRONOME_ARCH_PROTOCOL_GUID \ 114065641822SToomas Soome { 0x26baccb2, 0x6f42, 0x11d4, {0xbc, 0xe7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } } 114165641822SToomas Soome 114265641822SToomas Soome #define EFI_TIMER_ARCH_PROTOCOL_GUID \ 114365641822SToomas Soome { 0x26baccb3, 0x6f42, 0x11d4, {0xbc, 0xe7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } } 114465641822SToomas Soome 114565641822SToomas Soome #define EFI_DPC_PROTOCOL_GUID \ 114665641822SToomas Soome { 0x480f8ae9, 0xc46, 0x4aa9, { 0xbc, 0x89, 0xdb, 0x9f, 0xba, 0x61, 0x98, 0x6} } 114765641822SToomas Soome 114865641822SToomas Soome #define EFI_PRINT2_PROTOCOL_GUID \ 114965641822SToomas Soome { 0xf05976ef, 0x83f1, 0x4f3d, {0x86, 0x19, 0xf7, 0x59, 0x5d, 0x41, 0xe5, 0x38} } 115065641822SToomas Soome 115165641822SToomas Soome #define EFI_RESET_ARCH_PROTOCOL_GUID \ 115265641822SToomas Soome { 0x27cfac88, 0x46cc, 0x11d4, {0x9a, 0x38, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } 115365641822SToomas Soome 115465641822SToomas Soome #define EFI_CPU_ARCH_PROTOCOL_GUID \ 115565641822SToomas Soome { 0x26baccb1, 0x6f42, 0x11d4, {0xbc, 0xe7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } } 115665641822SToomas Soome 115765641822SToomas Soome #define EFI_CPU_IO2_PROTOCOL_GUID \ 115865641822SToomas Soome { 0xad61f191, 0xae5f, 0x4c0e, {0xb9, 0xfa, 0xe8, 0x69, 0xd2, 0x88, 0xc6, 0x4f} } 115965641822SToomas Soome 116065641822SToomas Soome #define EFI_LEGACY_8259_PROTOCOL_GUID \ 116165641822SToomas Soome { 0x38321dba, 0x4fe0, 0x4e17, {0x8a, 0xec, 0x41, 0x30, 0x55, 0xea, 0xed, 0xc1} } 116265641822SToomas Soome 116365641822SToomas Soome #define EFI_SECURITY_ARCH_PROTOCOL_GUID \ 116465641822SToomas Soome { 0xa46423e3, 0x4617, 0x49f1, {0xb9, 0xff, 0xd1, 0xbf, 0xa9, 0x11, 0x58, 0x39} } 116565641822SToomas Soome 116665641822SToomas Soome #define EFI_SECURITY2_ARCH_PROTOCOL_GUID \ 116765641822SToomas Soome { 0x94ab2f58, 0x1438, 0x4ef1, {0x91, 0x52, 0x18, 0x94, 0x1a, 0x3a, 0x0e, 0x68} } 116865641822SToomas Soome 116965641822SToomas Soome #define EFI_RUNTIME_ARCH_PROTOCOL_GUID \ 117065641822SToomas Soome { 0xb7dfb4e1, 0x52f, 0x449f, {0x87, 0xbe, 0x98, 0x18, 0xfc, 0x91, 0xb7, 0x33} } 117165641822SToomas Soome 117265641822SToomas Soome #define EFI_STATUS_CODE_RUNTIME_PROTOCOL_GUID \ 117365641822SToomas Soome { 0xd2b2b828, 0x826, 0x48a7, {0xb3, 0xdf, 0x98, 0x3c, 0x0, 0x60, 0x24, 0xf0} } 117465641822SToomas Soome 117565641822SToomas Soome #define EFI_DATA_HUB_PROTOCOL_GUID \ 117665641822SToomas Soome { 0xae80d021, 0x618e, 0x11d4, {0xbc, 0xd7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81} } 117765641822SToomas Soome 117865641822SToomas Soome #define PCD_PROTOCOL_GUID \ 117965641822SToomas Soome { 0x11b34006, 0xd85b, 0x4d0a, { 0xa2, 0x90, 0xd5, 0xa5, 0x71, 0x31, 0xe, 0xf7} } 118065641822SToomas Soome 118165641822SToomas Soome #define EFI_PCD_PROTOCOL_GUID \ 118265641822SToomas Soome { 0x13a3f0f6, 0x264a, 0x3ef0, {0xf2, 0xe0, 0xde, 0xc5, 0x12, 0x34, 0x2f, 0x34} } 118365641822SToomas Soome 118465641822SToomas Soome #define EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL_GUID \ 118565641822SToomas Soome { 0x8f644fa9, 0xe850, 0x4db1, {0x9c, 0xe2, 0xb, 0x44, 0x69, 0x8e, 0x8d, 0xa4 } } 118665641822SToomas Soome 118765641822SToomas Soome #define EFI_FIRMWARE_VOLUME2_PROTOCOL_GUID \ 118865641822SToomas Soome { 0x220e73b6, 0x6bdb, 0x4413, { 0x84, 0x5, 0xb9, 0x74, 0xb1, 0x8, 0x61, 0x9a } } 118965641822SToomas Soome 119065641822SToomas Soome #define EFI_FIRMWARE_VOLUME_DISPATCH_PROTOCOL_GUID \ 119165641822SToomas Soome { 0x7aa35a69, 0x506c, 0x444f, {0xa7, 0xaf, 0x69, 0x4b, 0xf5, 0x6f, 0x71, 0xc8} } 119265641822SToomas Soome 119365641822SToomas Soome #define LZMA_COMPRESS_GUID \ 119465641822SToomas Soome { 0xee4e5898, 0x3914, 0x4259, {0x9d, 0x6e, 0xdc, 0x7b, 0xd7, 0x94, 0x03, 0xcf} } 1195ca987d46SWarner Losh #endif 1196