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
21 Global EFI runtime & boot service interfaces
31 // EFI Specification Revision
34 #define EFI_SPECIFICATION_MAJOR_REVISION 1
35 #define EFI_SPECIFICATION_MINOR_REVISION 10
38 // Declare forward referenced data structures
41 INTERFACE_DECL(_EFI_SYSTEM_TABLE
);
49 (EFIAPI
*EFI_ALLOCATE_PAGES
) (
50 IN EFI_ALLOCATE_TYPE Type
,
51 IN EFI_MEMORY_TYPE MemoryType
,
53 OUT EFI_PHYSICAL_ADDRESS
*Memory
58 (EFIAPI
*EFI_FREE_PAGES
) (
59 IN EFI_PHYSICAL_ADDRESS Memory
,
65 (EFIAPI
*EFI_GET_MEMORY_MAP
) (
66 IN OUT UINTN
*MemoryMapSize
,
67 IN OUT EFI_MEMORY_DESCRIPTOR
*MemoryMap
,
69 OUT UINTN
*DescriptorSize
,
70 OUT UINT32
*DescriptorVersion
73 #define NextMemoryDescriptor(Ptr,Size) ((EFI_MEMORY_DESCRIPTOR *) (((UINT8 *) Ptr) + Size))
78 (EFIAPI
*EFI_ALLOCATE_POOL
) (
79 IN EFI_MEMORY_TYPE PoolType
,
86 (EFIAPI
*EFI_FREE_POOL
) (
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
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
107 (EFIAPI
*EFI_CONVERT_POINTER
) (
108 IN UINTN DebugDisposition
,
109 IN OUT VOID
**Address
119 #define EVT_TIMER 0x80000000
120 #define EVT_RUNTIME 0x40000000
121 #define EVT_RUNTIME_CONTEXT 0x20000000
123 #define EVT_NOTIFY_WAIT 0x00000100
124 #define EVT_NOTIFY_SIGNAL 0x00000200
126 #define EVT_SIGNAL_EXIT_BOOT_SERVICES 0x00000201
127 #define EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE 0x60000202
129 #define EVT_EFI_SIGNAL_MASK 0x000000FF
130 #define EVT_EFI_SIGNAL_MAX 2
134 (EFIAPI
*EFI_EVENT_NOTIFY
) (
141 (EFIAPI
*EFI_CREATE_EVENT
) (
143 IN EFI_TPL NotifyTpl
,
144 IN EFI_EVENT_NOTIFY NotifyFunction
,
145 IN VOID
*NotifyContext
,
158 (EFIAPI
*EFI_SET_TIMER
) (
160 IN EFI_TIMER_DELAY Type
,
161 IN UINT64 TriggerTime
166 (EFIAPI
*EFI_SIGNAL_EVENT
) (
172 (EFIAPI
*EFI_WAIT_FOR_EVENT
) (
173 IN UINTN NumberOfEvents
,
180 (EFIAPI
*EFI_CLOSE_EVENT
) (
186 (EFIAPI
*EFI_CHECK_EVENT
) (
191 // Task priority level
194 #define TPL_APPLICATION 4
195 #define TPL_CALLBACK 8
196 #define TPL_NOTIFY 16
197 #define TPL_HIGH_LEVEL 31
201 (EFIAPI
*EFI_RAISE_TPL
) (
207 (EFIAPI
*EFI_RESTORE_TPL
) (
213 // EFI platform varibles
216 #define EFI_GLOBAL_VARIABLE \
217 { 0x8BE4DF61, 0x93CA, 0x11d2, {0xAA, 0x0D, 0x00, 0xE0, 0x98, 0x03, 0x2B, 0x8C} }
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
228 // Variable size limitation
229 #define EFI_MAXIMUM_VARIABLE_SIZE 1024
233 (EFIAPI
*EFI_GET_VARIABLE
) (
234 IN CHAR16
*VariableName
,
235 IN EFI_GUID
*VendorGuid
,
236 OUT UINT32
*Attributes OPTIONAL
,
237 IN OUT UINTN
*DataSize
,
243 (EFIAPI
*EFI_GET_NEXT_VARIABLE_NAME
) (
244 IN OUT UINTN
*VariableNameSize
,
245 IN OUT CHAR16
*VariableName
,
246 IN OUT EFI_GUID
*VendorGuid
252 (EFIAPI
*EFI_SET_VARIABLE
) (
253 IN CHAR16
*VariableName
,
254 IN EFI_GUID
*VendorGuid
,
255 IN UINT32 Attributes
,
266 UINT32 Resolution
; // 1e-6 parts per million
267 UINT32 Accuracy
; // hertz
268 BOOLEAN SetsToZero
; // Set clears sub-second time
269 } EFI_TIME_CAPABILITIES
;
274 (EFIAPI
*EFI_GET_TIME
) (
276 OUT EFI_TIME_CAPABILITIES
*Capabilities OPTIONAL
281 (EFIAPI
*EFI_SET_TIME
) (
287 (EFIAPI
*EFI_GET_WAKEUP_TIME
) (
288 OUT BOOLEAN
*Enabled
,
289 OUT BOOLEAN
*Pending
,
295 (EFIAPI
*EFI_SET_WAKEUP_TIME
) (
297 IN EFI_TIME
*Time OPTIONAL
306 // PE32+ Subsystem type for EFI images
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
314 // PE32+ Machine type for EFI images
316 #if !defined(EFI_IMAGE_MACHINE_IA32)
317 #define EFI_IMAGE_MACHINE_IA32 0x014c
320 #if !defined(EFI_IMAGE_MACHINE_EBC)
321 #define EFI_IMAGE_MACHINE_EBC 0x0EBC
324 // Image Entry prototype
328 (EFIAPI
*EFI_IMAGE_ENTRY_POINT
) (
329 IN EFI_HANDLE ImageHandle
,
330 IN
struct _EFI_SYSTEM_TABLE
*SystemTable
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
,
341 OUT EFI_HANDLE
*ImageHandle
346 (EFIAPI
*EFI_IMAGE_START
) (
347 IN EFI_HANDLE ImageHandle
,
348 OUT UINTN
*ExitDataSize
,
349 OUT CHAR16
**ExitData OPTIONAL
355 IN EFI_HANDLE ImageHandle
,
356 IN EFI_STATUS ExitStatus
,
357 IN UINTN ExitDataSize
,
358 IN CHAR16
*ExitData OPTIONAL
363 (EFIAPI
*EFI_IMAGE_UNLOAD
) (
364 IN EFI_HANDLE ImageHandle
369 #define LOADED_IMAGE_PROTOCOL \
370 { 0x5B1B31A1, 0x9562, 0x11d2, {0x8E, 0x3F, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B} }
372 #define EFI_LOADED_IMAGE_INFORMATION_REVISION 0x1000
375 EFI_HANDLE ParentHandle
;
376 struct _EFI_SYSTEM_TABLE
*SystemTable
;
378 // Source location of image
379 EFI_HANDLE DeviceHandle
;
380 EFI_DEVICE_PATH
*FilePath
;
383 // Images load options
384 UINT32 LoadOptionsSize
;
387 // Location of where image was loaded
390 EFI_MEMORY_TYPE ImageCodeType
;
391 EFI_MEMORY_TYPE ImageDataType
;
393 // If the driver image supports a dynamic unload request
394 EFI_IMAGE_UNLOAD Unload
;
401 (EFIAPI
*EFI_EXIT_BOOT_SERVICES
) (
402 IN EFI_HANDLE ImageHandle
,
413 (EFIAPI
*EFI_STALL
) (
414 IN UINTN Microseconds
419 (EFIAPI
*EFI_SET_WATCHDOG_TIMER
) (
421 IN UINT64 WatchdogCode
,
423 IN CHAR16
*WatchdogData OPTIONAL
435 (EFIAPI
*EFI_RESET_SYSTEM
) (
436 IN EFI_RESET_TYPE ResetType
,
437 IN EFI_STATUS ResetStatus
,
439 IN CHAR16
*ResetData OPTIONAL
444 (EFIAPI
*EFI_GET_NEXT_MONOTONIC_COUNT
) (
450 (EFIAPI
*EFI_GET_NEXT_HIGH_MONO_COUNT
) (
451 OUT UINT32
*HighCount
455 // Protocol handler functions
460 } EFI_INTERFACE_TYPE
;
464 (EFIAPI
*EFI_INSTALL_PROTOCOL_INTERFACE
) (
465 IN OUT EFI_HANDLE
*Handle
,
466 IN EFI_GUID
*Protocol
,
467 IN EFI_INTERFACE_TYPE InterfaceType
,
473 (EFIAPI
*EFI_REINSTALL_PROTOCOL_INTERFACE
) (
474 IN EFI_HANDLE Handle
,
475 IN EFI_GUID
*Protocol
,
476 IN VOID
*OldInterface
,
477 IN VOID
*NewInterface
482 (EFIAPI
*EFI_UNINSTALL_PROTOCOL_INTERFACE
) (
483 IN EFI_HANDLE Handle
,
484 IN EFI_GUID
*Protocol
,
490 (EFIAPI
*EFI_HANDLE_PROTOCOL
) (
491 IN EFI_HANDLE Handle
,
492 IN EFI_GUID
*Protocol
,
498 (EFIAPI
*EFI_REGISTER_PROTOCOL_NOTIFY
) (
499 IN EFI_GUID
*Protocol
,
501 OUT VOID
**Registration
508 } EFI_LOCATE_SEARCH_TYPE
;
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
522 (EFIAPI
*EFI_LOCATE_DEVICE_PATH
) (
523 IN EFI_GUID
*Protocol
,
524 IN OUT EFI_DEVICE_PATH
**DevicePath
,
525 OUT EFI_HANDLE
*Device
530 (EFIAPI
*EFI_INSTALL_CONFIGURATION_TABLE
) (
537 (EFIAPI
*EFI_RESERVED_SERVICE
) (
543 (EFIAPI
*EFI_CONNECT_CONTROLLER
) (
544 IN EFI_HANDLE ControllerHandle
,
545 IN EFI_HANDLE
*DriverImageHandle OPTIONAL
,
546 IN EFI_DEVICE_PATH
*RemainingDevicePath OPTIONAL
,
552 (EFIAPI
*EFI_DISCONNECT_CONTROLLER
)(
553 IN EFI_HANDLE ControllerHandle
,
554 IN EFI_HANDLE DriverImageHandle
, OPTIONAL
555 IN EFI_HANDLE ChildHandle OPTIONAL
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
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
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
586 EFI_HANDLE AgentHandle
;
587 EFI_HANDLE ControllerHandle
;
590 } EFI_OPEN_PROTOCOL_INFORMATION_ENTRY
;
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
603 (EFIAPI
*EFI_PROTOCOLS_PER_HANDLE
) (
604 IN EFI_HANDLE UserHandle
,
605 OUT EFI_GUID
***ProtocolBuffer
,
606 OUT UINTN
*ProtocolBufferCount
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
621 (EFIAPI
*EFI_LOCATE_PROTOCOL
) (
623 VOID
*Registration
, OPTIONAL
629 (EFIAPI
*EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES
) (
630 IN OUT EFI_HANDLE
*Handle
,
636 (EFIAPI
*EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES
) (
637 IN EFI_HANDLE Handle
,
643 (EFIAPI
*EFI_CALCULATE_CRC32
) (
651 (EFIAPI
*EFI_COPY_MEM
) (
652 IN VOID
*Destination
,
659 (EFIAPI
*EFI_SET_MEM
) (
666 // Standard EFI table header
669 typedef struct _EFI_TABLE_HEARDER
{
679 // EFI Runtime Serivces Table
682 #define EFI_RUNTIME_SERVICES_SIGNATURE 0x56524553544e5552
683 #define EFI_RUNTIME_SERVICES_REVISION ((EFI_SPECIFICATION_MAJOR_REVISION<<16) | (EFI_SPECIFICATION_MINOR_REVISION))
686 EFI_TABLE_HEADER Hdr
;
692 EFI_GET_TIME GetTime
;
693 EFI_SET_TIME SetTime
;
694 EFI_GET_WAKEUP_TIME GetWakeupTime
;
695 EFI_SET_WAKEUP_TIME SetWakeupTime
;
698 // Virtual memory services
701 EFI_SET_VIRTUAL_ADDRESS_MAP SetVirtualAddressMap
;
702 EFI_CONVERT_POINTER ConvertPointer
;
708 EFI_GET_VARIABLE GetVariable
;
709 EFI_GET_NEXT_VARIABLE_NAME GetNextVariableName
;
710 EFI_SET_VARIABLE SetVariable
;
716 EFI_GET_NEXT_HIGH_MONO_COUNT GetNextHighMonotonicCount
;
717 EFI_RESET_SYSTEM ResetSystem
;
719 } EFI_RUNTIME_SERVICES
;
723 // EFI Boot Services Table
726 #define EFI_BOOT_SERVICES_SIGNATURE 0x56524553544f4f42
727 #define EFI_BOOT_SERVICES_REVISION ((EFI_SPECIFICATION_MAJOR_REVISION<<16) | (EFI_SPECIFICATION_MINOR_REVISION))
731 EFI_TABLE_HEADER Hdr
;
734 // Task priority functions
737 EFI_RAISE_TPL RaiseTPL
;
738 EFI_RESTORE_TPL RestoreTPL
;
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
;
751 // Event & timer functions
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
;
762 // Protocol handler functions
765 EFI_INSTALL_PROTOCOL_INTERFACE InstallProtocolInterface
;
766 EFI_REINSTALL_PROTOCOL_INTERFACE ReinstallProtocolInterface
;
767 EFI_UNINSTALL_PROTOCOL_INTERFACE UninstallProtocolInterface
;
768 EFI_HANDLE_PROTOCOL HandleProtocol
;
770 EFI_REGISTER_PROTOCOL_NOTIFY RegisterProtocolNotify
;
771 EFI_LOCATE_HANDLE LocateHandle
;
772 EFI_LOCATE_DEVICE_PATH LocateDevicePath
;
773 EFI_INSTALL_CONFIGURATION_TABLE InstallConfigurationTable
;
779 EFI_IMAGE_LOAD LoadImage
;
780 EFI_IMAGE_START StartImage
;
782 EFI_IMAGE_UNLOAD UnloadImage
;
783 EFI_EXIT_BOOT_SERVICES ExitBootServices
;
789 EFI_GET_NEXT_MONOTONIC_COUNT GetNextMonotonicCount
;
791 EFI_SET_WATCHDOG_TIMER SetWatchdogTimer
;
794 // DriverSupport Services
796 EFI_CONNECT_CONTROLLER ConnectController
;
797 EFI_DISCONNECT_CONTROLLER DisconnectController
;
800 // Open and Close Protocol Services
802 EFI_OPEN_PROTOCOL OpenProtocol
;
803 EFI_CLOSE_PROTOCOL CloseProtocol
;
804 EFI_OPEN_PROTOCOL_INFORMATION OpenProtocolInformation
;
807 // Library Services to reduce size of drivers
809 EFI_PROTOCOLS_PER_HANDLE ProtocolsPerHandle
;
810 EFI_LOCATE_HANDLE_BUFFER LocateHandleBuffer
;
811 EFI_LOCATE_PROTOCOL LocateProtocol
;
813 EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES InstallMultipleProtocolInterfaces
;
814 EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES UninstallMultipleProtocolInterfaces
;
819 EFI_CALCULATE_CRC32 CalculateCrc32
;
822 // Memory Utility Services
824 EFI_COPY_MEM CopyMem
;
831 // EFI Configuration Table and GUID definitions
834 #define MPS_TABLE_GUID \
835 { 0xeb9d2d2f, 0x2d88, 0x11d3, {0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
837 #define ACPI_TABLE_GUID \
838 { 0xeb9d2d30, 0x2d88, 0x11d3, {0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
840 #define ACPI_20_TABLE_GUID \
841 { 0x8868e871, 0xe4f1, 0x11d3, {0xbc, 0x22, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81} }
843 #define SMBIOS_TABLE_GUID \
844 { 0xeb9d2d31, 0x2d88, 0x11d3, {0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
846 #define SAL_SYSTEM_TABLE_GUID \
847 { 0xeb9d2d32, 0x2d88, 0x11d3, {0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
849 #define SMBIOS3_TABLE_GUID \
850 { 0xf2fd1544, 0x9794, 0x4a2c, {0x99, 0x2e, 0xe5, 0xbb, 0xcf, 0x20, 0xe3, 0x94 } }
852 #define FDT_TABLE_GUID \
853 { 0xb1b621d5, 0xf19c, 0x41a5, {0x83, 0x0b, 0xd9, 0x15, 0x2c, 0x69, 0xaa, 0xe0} }
855 #define DXE_SERVICES_TABLE_GUID \
856 { 0x5ad34ba, 0x6f02, 0x4214, {0x95, 0x2e, 0x4d, 0xa0, 0x39, 0x8e, 0x2b, 0xb9} }
858 #define HOB_LIST_TABLE_GUID \
859 { 0x7739f24c, 0x93d7, 0x11d4, {0x9a, 0x3a, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
861 #define DEBUG_IMAGE_INFO_TABLE_GUID \
862 { 0x49152e77, 0x1ada, 0x4764, {0xb7, 0xa2, 0x7a, 0xfe, 0xfe, 0xd9, 0x5e, 0x8b} }
864 typedef struct _EFI_CONFIGURATION_TABLE
{
867 } EFI_CONFIGURATION_TABLE
;
875 #define EFI_SYSTEM_TABLE_SIGNATURE 0x5453595320494249
876 #define EFI_SYSTEM_TABLE_REVISION ((EFI_SPECIFICATION_MAJOR_REVISION<<16) | (EFI_SPECIFICATION_MINOR_REVISION))
877 #define EFI_1_10_SYSTEM_TABLE_REVISION ((1<<16) | 10)
878 #define EFI_1_02_SYSTEM_TABLE_REVISION ((1<<16) | 02)
880 typedef struct _EFI_SYSTEM_TABLE
{
881 EFI_TABLE_HEADER Hdr
;
883 CHAR16
*FirmwareVendor
;
884 UINT32 FirmwareRevision
;
886 EFI_HANDLE ConsoleInHandle
;
887 SIMPLE_INPUT_INTERFACE
*ConIn
;
889 EFI_HANDLE ConsoleOutHandle
;
890 SIMPLE_TEXT_OUTPUT_INTERFACE
*ConOut
;
892 EFI_HANDLE StandardErrorHandle
;
893 SIMPLE_TEXT_OUTPUT_INTERFACE
*StdErr
;
895 EFI_RUNTIME_SERVICES
*RuntimeServices
;
896 EFI_BOOT_SERVICES
*BootServices
;
898 UINTN NumberOfTableEntries
;
899 EFI_CONFIGURATION_TABLE
*ConfigurationTable
;
906 #define EFI_EBC_INTERPRETER_PROTOCOL_GUID \
907 { 0x13AC6DD1, 0x73D0, 0x11D4, {0xB0, 0x6B, 0x00, 0xAA, 0x00, 0xBD, 0x6D, 0xE7} }
909 #define EFI_DRIVER_CONFIGURATION2_PROTOCOL_GUID \
910 { 0xbfd7dc1d, 0x24f1, 0x40d9, {0x82, 0xe7, 0x2e, 0x09, 0xbb, 0x6b, 0x4e, 0xbe} }
912 #define EFI_DRIVER_CONFIGURATION_PROTOCOL_GUID \
913 { 0x107a772b, 0xd5e1, 0x11d4, {0x9a, 0x46, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
915 #define EFI_DRIVER_BINDING_PROTOCOL_GUID \
916 { 0x18A031AB, 0xB443, 0x4D1A, \
917 { 0xA5, 0xC0, 0x0C, 0x09, 0x26, 0x1E, 0x9F, 0x71 } \
920 #define EFI_TAPE_IO_PROTOCOL_GUID \
921 { 0x1e93e633, 0xd65a, 0x459e, \
922 { 0xab, 0x84, 0x93, 0xd9, 0xec, 0x26, 0x6d, 0x18 } \
925 #define EFI_SCSI_IO_PROTOCOL_GUID \
926 { 0x932f47e6, 0x2362, 0x4002, \
927 { 0x80, 0x3e, 0x3c, 0xd5, 0x4b, 0x13, 0x8f, 0x85 } \
930 #define EFI_USB2_HC_PROTOCOL_GUID \
931 { 0x3e745226, 0x9818, 0x45b6, \
932 { 0xa2, 0xac, 0xd7, 0xcd, 0x0e, 0x8b, 0xa2, 0xbc } \
935 #define EFI_DEBUG_SUPPORT_PROTOCOL_GUID \
936 { 0x2755590C, 0x6F3C, 0x42FA, \
937 { 0x9E, 0xA4, 0xA3, 0xBA, 0x54, 0x3C, 0xDA, 0x25 } \
940 #define EFI_DEBUGPORT_PROTOCOL_GUID \
941 { 0xEBA4E8D2, 0x3858, 0x41EC, \
942 { 0xA2, 0x81, 0x26, 0x47, 0xBA, 0x96, 0x60, 0xD0 } \
945 #define EFI_DECOMPRESS_PROTOCOL_GUID \
946 { 0xd8117cfe, 0x94a6, 0x11d4, \
947 { 0x9a, 0x3a, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d } \
950 #define EFI_ACPI_TABLE_PROTOCOL_GUID \
951 { 0xffe06bdd, 0x6107, 0x46a6, \
952 { 0x7b, 0xb2, 0x5a, 0x9c, 0x7e, 0xc5, 0x27, 0x5c} \
955 #define EFI_HII_CONFIG_ROUTING_PROTOCOL_GUID \
956 { 0x587e72d7, 0xcc50, 0x4f79, \
957 { 0x82, 0x09, 0xca, 0x29, 0x1f, 0xc1, 0xa1, 0x0f } \
960 #define EFI_HII_DATABASE_PROTOCOL_GUID \
961 { 0xef9fc172, 0xa1b2, 0x4693, \
962 { 0xb3, 0x27, 0x6d, 0x32, 0xfc, 0x41, 0x60, 0x42 } \
965 #define EFI_HII_STRING_PROTOCOL_GUID \
966 { 0xfd96974, 0x23aa, 0x4cdc, \
967 { 0xb9, 0xcb, 0x98, 0xd1, 0x77, 0x50, 0x32, 0x2a } \
970 #define EFI_HII_IMAGE_PROTOCOL_GUID \
971 { 0x31a6406a, 0x6bdf, 0x4e46, \
972 { 0xb2, 0xa2, 0xeb, 0xaa, 0x89, 0xc4, 0x9, 0x20 } \
975 #define EFI_HII_FONT_PROTOCOL_GUID \
976 { 0xe9ca4775, 0x8657, 0x47fc, \
977 { 0x97, 0xe7, 0x7e, 0xd6, 0x5a, 0x8, 0x43, 0x24 } \
979 #define EFI_HII_CONFIGURATION_ACCESS_PROTOCOL_GUID \
980 { 0x330d4706, 0xf2a0, 0x4e4f, \
981 { 0xa3, 0x69, 0xb6, 0x6f, 0xa8, 0xd5, 0x43, 0x85 } \
984 #define EFI_COMPONENT_NAME_PROTOCOL_GUID \
985 { 0x107a772c, 0xd5e1, 0x11d4, {0x9a, 0x46, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
987 #define EFI_COMPONENT_NAME2_PROTOCOL_GUID \
988 { 0x6a7a5cff, 0xe8d9, 0x4f70, \
989 { 0xba, 0xda, 0x75, 0xab, 0x30, 0x25, 0xce, 0x14} \
992 #define EFI_USB_IO_PROTOCOL_GUID \
993 { 0x2B2F68D6, 0x0CD2, 0x44cf, \
994 { 0x8E, 0x8B, 0xBB, 0xA2, 0x0B, 0x1B, 0x5B, 0x75 } \
996 #define EFI_HCDP_TABLE_GUID \
997 { 0xf951938d, 0x620b, 0x42ef, \
998 { 0x82, 0x79, 0xa8, 0x4b, 0x79, 0x61, 0x78, 0x98 } \
1001 #define EFI_DEVICE_TREE_GUID \
1002 { 0xb1b621d5, 0xf19c, 0x41a5, \
1003 { 0x83, 0x0b, 0xd9, 0x15, 0x2c, 0x69, 0xaa, 0xe0 } \
1006 #define EFI_VENDOR_APPLE_GUID \
1007 { 0x2B0585EB, 0xD8B8, 0x49A9, \
1008 { 0x8B, 0x8C, 0xE2, 0x1B, 0x01, 0xAE, 0xF2, 0xB7 } \
1011 #define EFI_CONSOLE_IN_DEVICE_GUID \
1012 { 0xd3b36f2b, 0xd551, 0x11d4, {0x9a, 0x46, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
1014 #define EFI_CONSOLE_OUT_DEVICE_GUID \
1015 { 0xd3b36f2c, 0xd551, 0x11d4, {0x9a, 0x46, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
1017 #define EFI_STANDARD_ERROR_DEVICE_GUID \
1018 { 0xd3b36f2d, 0xd551, 0x11d4, {0x9a, 0x46, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
1020 #define EFI_UNICODE_COLLATION2_PROTOCOL_GUID \
1021 { 0xa4c751fc, 0x23ae, 0x4c3e, {0x92, 0xe9, 0x49, 0x64, 0xcf, 0x63, 0xf3, 0x49} }
1023 #define EFI_FORM_BROWSER2_PROTOCOL_GUID \
1024 { 0xb9d4c360, 0xbcfb, 0x4f9b, {0x92, 0x98, 0x53, 0xc1, 0x36, 0x98, 0x22, 0x58} }
1026 #define EFI_ARP_SERVICE_BINDING_PROTOCOL_GUID \
1027 { 0xf44c00ee, 0x1f2c, 0x4a00, {0xaa, 0x9, 0x1c, 0x9f, 0x3e, 0x8, 0x0, 0xa3} }
1029 #define EFI_ARP_PROTOCOL_GUID \
1030 { 0xf4b427bb, 0xba21, 0x4f16, {0xbc, 0x4e, 0x43, 0xe4, 0x16, 0xab, 0x61, 0x9c} }
1032 #define EFI_IP4_CONFIG_PROTOCOL_GUID \
1033 { 0x3b95aa31, 0x3793, 0x434b, {0x86, 0x67, 0xc8, 0x07, 0x08, 0x92, 0xe0, 0x5e} }
1035 #define EFI_IP6_CONFIG_PROTOCOL_GUID \
1036 { 0x937fe521, 0x95ae, 0x4d1a, {0x89, 0x29, 0x48, 0xbc, 0xd9, 0x0a, 0xd3, 0x1a} }
1038 #define EFI_MANAGED_NETWORK_SERVICE_BINDING_PROTOCOL_GUID \
1039 { 0xf36ff770, 0xa7e1, 0x42cf, {0x9e, 0xd2, 0x56, 0xf0, 0xf2, 0x71, 0xf4, 0x4c} }
1041 #define EFI_MANAGED_NETWORK_PROTOCOL_GUID \
1042 { 0x7ab33a91, 0xace5, 0x4326, {0xb5, 0x72, 0xe7, 0xee, 0x33, 0xd3, 0x9f, 0x16} }
1044 #define EFI_MTFTP4_SERVICE_BINDING_PROTOCOL_GUID \
1045 { 0x2FE800BE, 0x8F01, 0x4aa6, {0x94, 0x6B, 0xD7, 0x13, 0x88, 0xE1, 0x83, 0x3F} }
1047 #define EFI_MTFTP4_PROTOCOL_GUID \
1048 { 0x78247c57, 0x63db, 0x4708, {0x99, 0xc2, 0xa8, 0xb4, 0xa9, 0xa6, 0x1f, 0x6b} }
1050 #define EFI_MTFTP6_SERVICE_BINDING_PROTOCOL_GUID \
1051 { 0xd9760ff3, 0x3cca, 0x4267, {0x80, 0xf9, 0x75, 0x27, 0xfa, 0xfa, 0x42, 0x23} }
1053 #define EFI_MTFTP6_PROTOCOL_GUID \
1054 { 0xbf0a78ba, 0xec29, 0x49cf, {0xa1, 0xc9, 0x7a, 0xe5, 0x4e, 0xab, 0x6a, 0x51} }
1056 #define EFI_DHCP4_PROTOCOL_GUID \
1057 { 0x8a219718, 0x4ef5, 0x4761, {0x91, 0xc8, 0xc0, 0xf0, 0x4b, 0xda, 0x9e, 0x56} }
1059 #define EFI_DHCP4_SERVICE_BINDING_PROTOCOL_GUID \
1060 { 0x9d9a39d8, 0xbd42, 0x4a73, {0xa4, 0xd5, 0x8e, 0xe9, 0x4b, 0xe1, 0x13, 0x80} }
1062 #define EFI_DHCP6_SERVICE_BINDING_PROTOCOL_GUID \
1063 { 0x9fb9a8a1, 0x2f4a, 0x43a6, {0x88, 0x9c, 0xd0, 0xf7, 0xb6, 0xc4, 0x7a, 0xd5} }
1065 #define EFI_DHCP6_PROTOCOL_GUID \
1066 { 0x87c8bad7, 0x595, 0x4053, {0x82, 0x97, 0xde, 0xde, 0x39, 0x5f, 0x5d, 0x5b} }
1068 #define EFI_SCSI_PASS_THRU_PROTOCOL_GUID \
1069 { 0xa59e8fcf, 0xbda0, 0x43bb, {0x90, 0xb1, 0xd3, 0x73, 0x2e, 0xca, 0xa8, 0x77} }
1071 #define EFI_EXT_SCSI_PASS_THRU_PROTOCOL_GUID \
1072 { 0x143b7632, 0xb81b, 0x4cb7, {0xab, 0xd3, 0xb6, 0x25, 0xa5, 0xb9, 0xbf, 0xfe} }
1074 #define EFI_DISK_INFO_PROTOCOL_GUID \
1075 { 0xd432a67f, 0x14dc, 0x484b, {0xb3, 0xbb, 0x3f, 0x2, 0x91, 0x84, 0x93, 0x27} }
1077 #define EFI_ISA_IO_PROTOCOL_GUID \
1078 { 0x7ee2bd44, 0x3da0, 0x11d4, { 0x9a, 0x38, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
1080 #define EFI_VLAN_CONFIG_PROTOCOL_GUID \
1081 { 0x9e23d768, 0xd2f3, 0x4366, {0x9f, 0xc3, 0x3a, 0x7a, 0xba, 0x86, 0x43, 0x74} }
1083 #define EFI_IDE_CONTROLLER_INIT_PROTOCOL_GUID \
1084 { 0xa1e37052, 0x80d9, 0x4e65, {0xa3, 0x17, 0x3e, 0x9a, 0x55, 0xc4, 0x3e, 0xc9} }
1086 #define EFI_ISA_ACPI_PROTOCOL_GUID \
1087 { 0x64a892dc, 0x5561, 0x4536, {0x92, 0xc7, 0x79, 0x9b, 0xfc, 0x18, 0x33, 0x55} }
1089 #define EFI_PCI_ENUMERATION_COMPLETE_GUID \
1090 { 0x30cfe3e7, 0x3de1, 0x4586, {0xbe, 0x20, 0xde, 0xab, 0xa1, 0xb3, 0xb7, 0x93} }
1092 #define EFI_DRIVER_DIAGNOSTICS_PROTOCOL_GUID \
1093 { 0x0784924f, 0xe296, 0x11d4, {0x9a, 0x49, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } }
1095 #define EFI_DRIVER_DIAGNOSTICS2_PROTOCOL_GUID \
1096 { 0x4d330321, 0x025f, 0x4aac, {0x90, 0xd8, 0x5e, 0xd9, 0x00, 0x17, 0x3b, 0x63} }
1098 #define EFI_CAPSULE_ARCH_PROTOCOL_GUID \
1099 { 0x5053697e, 0x2cbc, 0x4819, {0x90, 0xd9, 0x05, 0x80, 0xde, 0xee, 0x57, 0x54} }
1101 #define EFI_MONOTONIC_COUNTER_ARCH_PROTOCOL_GUID \
1102 {0x1da97072, 0xbddc, 0x4b30, {0x99, 0xf1, 0x72, 0xa0, 0xb5, 0x6f, 0xff, 0x2a} }
1104 #define EFI_REALTIME_CLOCK_ARCH_PROTOCOL_GUID \
1105 {0x27cfac87, 0x46cc, 0x11d4, {0x9a, 0x38, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
1107 #define EFI_MP_SERVICES_PROTOCOL_GUID \
1108 { 0x3fdda605, 0xa76e, 0x4f46, {0xad, 0x29, 0x12, 0xf4, 0x53, 0x1b, 0x3d, 0x08} }
1110 #define EFI_VARIABLE_ARCH_PROTOCOL_GUID \
1111 { 0x1e5668e2, 0x8481, 0x11d4, {0xbc, 0xf1, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } }
1113 #define EFI_VARIABLE_WRITE_ARCH_PROTOCOL_GUID \
1114 { 0x6441f818, 0x6362, 0x4e44, {0xb5, 0x70, 0x7d, 0xba, 0x31, 0xdd, 0x24, 0x53} }
1116 #define EFI_WATCHDOG_TIMER_ARCH_PROTOCOL_GUID \
1117 { 0x6441f818, 0x6362, 0x4e44, {0xb5, 0x70, 0x7d, 0xba, 0x31, 0xdd, 0x24, 0x53} }
1119 #define EFI_ACPI_SUPPORT_PROTOCOL_GUID \
1120 { 0x6441f818, 0x6362, 0x4e44, {0xb5, 0x70, 0x7d, 0xba, 0x31, 0xdd, 0x24, 0x53} }
1122 #define EFI_BDS_ARCH_PROTOCOL_GUID \
1123 { 0x665e3ff6, 0x46cc, 0x11d4, {0x9a, 0x38, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
1125 #define EFI_METRONOME_ARCH_PROTOCOL_GUID \
1126 { 0x26baccb2, 0x6f42, 0x11d4, {0xbc, 0xe7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } }
1128 #define EFI_TIMER_ARCH_PROTOCOL_GUID \
1129 { 0x26baccb3, 0x6f42, 0x11d4, {0xbc, 0xe7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } }
1131 #define EFI_DPC_PROTOCOL_GUID \
1132 { 0x480f8ae9, 0xc46, 0x4aa9, { 0xbc, 0x89, 0xdb, 0x9f, 0xba, 0x61, 0x98, 0x6} }
1134 #define EFI_PRINT2_PROTOCOL_GUID \
1135 { 0xf05976ef, 0x83f1, 0x4f3d, {0x86, 0x19, 0xf7, 0x59, 0x5d, 0x41, 0xe5, 0x38} }
1137 #define EFI_RESET_ARCH_PROTOCOL_GUID \
1138 { 0x27cfac88, 0x46cc, 0x11d4, {0x9a, 0x38, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
1140 #define EFI_CPU_ARCH_PROTOCOL_GUID \
1141 { 0x26baccb1, 0x6f42, 0x11d4, {0xbc, 0xe7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } }
1143 #define EFI_CPU_IO2_PROTOCOL_GUID \
1144 { 0xad61f191, 0xae5f, 0x4c0e, {0xb9, 0xfa, 0xe8, 0x69, 0xd2, 0x88, 0xc6, 0x4f} }
1146 #define EFI_LEGACY_8259_PROTOCOL_GUID \
1147 { 0x38321dba, 0x4fe0, 0x4e17, {0x8a, 0xec, 0x41, 0x30, 0x55, 0xea, 0xed, 0xc1} }
1149 #define EFI_SECURITY_ARCH_PROTOCOL_GUID \
1150 { 0xa46423e3, 0x4617, 0x49f1, {0xb9, 0xff, 0xd1, 0xbf, 0xa9, 0x11, 0x58, 0x39} }
1152 #define EFI_SECURITY2_ARCH_PROTOCOL_GUID \
1153 { 0x94ab2f58, 0x1438, 0x4ef1, {0x91, 0x52, 0x18, 0x94, 0x1a, 0x3a, 0x0e, 0x68} }
1155 #define EFI_RUNTIME_ARCH_PROTOCOL_GUID \
1156 { 0xb7dfb4e1, 0x52f, 0x449f, {0x87, 0xbe, 0x98, 0x18, 0xfc, 0x91, 0xb7, 0x33} }
1158 #define EFI_STATUS_CODE_RUNTIME_PROTOCOL_GUID \
1159 { 0xd2b2b828, 0x826, 0x48a7, {0xb3, 0xdf, 0x98, 0x3c, 0x0, 0x60, 0x24, 0xf0} }
1161 #define EFI_DATA_HUB_PROTOCOL_GUID \
1162 { 0xae80d021, 0x618e, 0x11d4, {0xbc, 0xd7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81} }
1164 #define PCD_PROTOCOL_GUID \
1165 { 0x11b34006, 0xd85b, 0x4d0a, { 0xa2, 0x90, 0xd5, 0xa5, 0x71, 0x31, 0xe, 0xf7} }
1167 #define EFI_PCD_PROTOCOL_GUID \
1168 { 0x13a3f0f6, 0x264a, 0x3ef0, {0xf2, 0xe0, 0xde, 0xc5, 0x12, 0x34, 0x2f, 0x34} }
1170 #define EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL_GUID \
1171 { 0x8f644fa9, 0xe850, 0x4db1, {0x9c, 0xe2, 0xb, 0x44, 0x69, 0x8e, 0x8d, 0xa4 } }
1173 #define EFI_FIRMWARE_VOLUME2_PROTOCOL_GUID \
1174 { 0x220e73b6, 0x6bdb, 0x4413, { 0x84, 0x5, 0xb9, 0x74, 0xb1, 0x8, 0x61, 0x9a } }
1176 #define EFI_FIRMWARE_VOLUME_DISPATCH_PROTOCOL_GUID \
1177 { 0x7aa35a69, 0x506c, 0x444f, {0xa7, 0xaf, 0x69, 0x4b, 0xf5, 0x6f, 0x71, 0xc8} }
1179 #define LZMA_COMPRESS_GUID \
1180 { 0xee4e5898, 0x3914, 0x4259, {0x9d, 0x6e, 0xdc, 0x7b, 0xd7, 0x94, 0x03, 0xcf} }