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