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