]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Uefi/UefiSpec.h
Update the EFI_CAPSULE_HEADER definition.
[mirror_edk2.git] / MdePkg / Include / Uefi / UefiSpec.h
index 15b3ac22d2a5ad7b9833dc96294afc20f932d388..7f87a1ccc73863b366b7c7a9b79a32d7295af97d 100644 (file)
   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
 \r
-  Module Name:    UefiSpec.h\r
-\r
 **/\r
 \r
 #ifndef __UEFI_SPEC_H__\r
 #define __UEFI_SPEC_H__\r
 \r
-#include <Common/MultiPhase.h>\r
+#include <Uefi/UefiMultiPhase.h>\r
 \r
-//\r
-// EFI Data Types derived from other EFI data types.\r
-//\r
-#define NULL_HANDLE ((VOID *) 0)\r
-\r
-typedef VOID  *EFI_EVENT;\r
-typedef UINTN EFI_TPL;\r
+#include <Protocol/DevicePath.h>\r
+#include <Protocol/SimpleTextIn.h>\r
+#include <Protocol/SimpleTextOut.h>\r
 \r
 //\r
-// Networking\r
-//\r
-typedef struct {\r
-  UINT8 Addr[4];\r
-} EFI_IPv4_ADDRESS;\r
-\r
-typedef struct {\r
-  UINT8 Addr[16];\r
-} EFI_IPv6_ADDRESS;\r
-\r
-typedef struct {\r
-  UINT8 Addr[32];\r
-} EFI_MAC_ADDRESS;\r
-\r
-typedef union {\r
-  UINT32            Addr[4];\r
-  EFI_IPv4_ADDRESS  v4;\r
-  EFI_IPv6_ADDRESS  v6;\r
-} EFI_IP_ADDRESS;\r
-\r
-\r
+// Enumeration of memory allocation.\r
+// \r
 typedef enum {\r
   AllocateAnyPages,\r
   AllocateMaxAddress,\r
@@ -60,6 +35,16 @@ typedef enum {
   MaxAllocateType\r
 } EFI_ALLOCATE_TYPE;\r
 \r
+//\r
+// Bit definitions for EFI_TIME.Daylight\r
+//\r
+#define EFI_TIME_ADJUST_DAYLIGHT  0x01\r
+#define EFI_TIME_IN_DAYLIGHT      0x02\r
+\r
+//\r
+// Value definition for EFI_TIME.TimeZone\r
+//\r
+#define EFI_UNSPECIFIED_TIMEZONE  0x07FF\r
 \r
 //\r
 // possible caching types for the memory range\r
@@ -73,21 +58,18 @@ typedef enum {
 //\r
 // physical memory protection on range\r
 //\r
-#define EFI_MEMORY_WP 0x0000000000001000ULL\r
-#define EFI_MEMORY_RP 0x0000000000002000ULL\r
-#define EFI_MEMORY_XP 0x0000000000004000ULL\r
+#define EFI_MEMORY_WP   0x0000000000001000ULL\r
+#define EFI_MEMORY_RP   0x0000000000002000ULL\r
+#define EFI_MEMORY_XP   0x0000000000004000ULL\r
 \r
 //\r
 // range requires a runtime mapping\r
 //\r
 #define EFI_MEMORY_RUNTIME  0x8000000000000000ULL\r
 \r
-typedef UINT64  EFI_VIRTUAL_ADDRESS;\r
-\r
 #define EFI_MEMORY_DESCRIPTOR_VERSION 1\r
 typedef struct {\r
   UINT32                Type;\r
-  UINT32                Pad;\r
   EFI_PHYSICAL_ADDRESS  PhysicalStart;\r
   EFI_VIRTUAL_ADDRESS   VirtualStart;\r
   UINT64                NumberOfPages;\r
@@ -95,13 +77,10 @@ typedef struct {
 } EFI_MEMORY_DESCRIPTOR;\r
 \r
 //\r
-//  EFI_FIELD_OFFSET - returns the byte offset to a field within a structure\r
-//\r
-#define EFI_FIELD_OFFSET(TYPE,Field) ((UINTN)(&(((TYPE *) 0)->Field)))\r
-\r
-#include <Protocol/DevicePath.h>\r
-#include <Protocol/SimpleTextIn.h>\r
-#include <Protocol/SimpleTextOut.h>\r
+// Build macros to find next EFI_MEMORY_DESCRIPTOR.\r
+// \r
+#define NextMemoryDescriptor(_Ptr, _Size)   ((EFI_MEMORY_DESCRIPTOR *) (((UINT8 *) (_Ptr)) + (_Size)))\r
+#define NEXT_MEMORY_DESCRIPTOR(_Ptr, _Size) NextMemoryDescriptor (_Ptr, _Size)\r
 \r
 //\r
 // Declare forward referenced data structures\r
@@ -185,9 +164,6 @@ EFI_STATUS
   OUT    UINT32                      *DescriptorVersion\r
   );\r
 \r
-#define NextMemoryDescriptor(_Ptr, _Size)   ((EFI_MEMORY_DESCRIPTOR *) (((UINT8 *) (_Ptr)) + (_Size)))\r
-#define NEXT_MEMORY_DESCRIPTOR(_Ptr, _Size) NextMemoryDescriptor (_Ptr, _Size)\r
-\r
 /**\r
   Allocates pool memory.\r
 \r
@@ -310,6 +286,8 @@ EFI_STATUS
   IN  EFI_HANDLE                     ChildHandle        OPTIONAL\r
   );\r
 \r
+\r
+\r
 //\r
 // ConvertPointer DebugDisposition type.\r
 //\r
@@ -338,41 +316,27 @@ EFI_STATUS
   IN OUT VOID                       **Address\r
   );\r
 \r
-//\r
-// EFI Event Types (name defined in spec)\r
-//\r
-#define EVENT_TIMER                             0x80000000\r
-#define EVENT_RUNTIME                           0x40000000\r
-#define EVENT_RUNTIME_CONTEXT                   0x20000000\r
-\r
-#define EVENT_NOTIFY_WAIT                       0x00000100\r
-#define EVENT_NOTIFY_SIGNAL                     0x00000200\r
-\r
-#define EVENT_SIGNAL_EXIT_BOOT_SERVICES         0x00000201\r
-#define EVENT_SIGNAL_VIRTUAL_ADDRESS_CHANGE     0x60000202\r
 \r
 //\r
-// Prior to UEFI 2.0 Tiano extended these enums. This was replaced by\r
-// CreateEventEx() Event Groups in UEFI 2.0\r
+// These types can be ¡°ORed¡± together as needed ¨C for example,\r
+// EVT_TIMER might be ¡°Ored¡± with EVT_NOTIFY_WAIT or\r
+// EVT_NOTIFY_SIGNAL.\r
 //\r
-#define EFI_EVENT_NOTIFY_SIGNAL_ALL     0x00000400\r
+#define EVT_TIMER                         0x80000000\r
+#define EVT_RUNTIME                       0x40000000\r
 \r
-#define EFI_EVENT_SIGNAL_READY_TO_BOOT  0x00000203\r
-#define EFI_EVENT_SIGNAL_LEGACY_BOOT    0x00000204\r
+#define EVT_NOTIFY_WAIT                   0x00000100\r
+#define EVT_NOTIFY_SIGNAL                 0x00000200\r
+#define EVT_SIGNAL_EXIT_BOOT_SERVICES     0x00000201\r
+#define EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE 0x60000202\r
 \r
 \r
 //\r
-// EFI Event Types (name following coding style)\r
-//\r
-#define EFI_EVENT_TIMER                         EVENT_TIMER\r
-#define EFI_EVENT_RUNTIME                       EVENT_RUNTIME\r
-#define EFI_EVENT_RUNTIME_CONTEXT               EVENT_RUNTIME_CONTEXT\r
-\r
-#define EFI_EVENT_NOTIFY_WAIT                   EVENT_NOTIFY_WAIT\r
-#define EFI_EVENT_NOTIFY_SIGNAL                 EVENT_NOTIFY_SIGNAL\r
-\r
-#define EFI_EVENT_SIGNAL_EXIT_BOOT_SERVICES     EVENT_SIGNAL_EXIT_BOOT_SERVICES\r
-#define EFI_EVENT_SIGNAL_VIRTUAL_ADDRESS_CHANGE EVENT_SIGNAL_VIRTUAL_ADDRESS_CHANGE\r
+// The event¡¯s NotifyContext pointer points to a runtime memory\r
+// address. \r
+// The event is deprecated in UEFI2.0 and later specifications.\r
+// \r
+#define EVT_RUNTIME_CONTEXT               0x20000000\r
 \r
 \r
 /**\r
@@ -535,6 +499,7 @@ EFI_STATUS
   IN EFI_EVENT                Event\r
   );\r
 \r
+\r
 //\r
 // Task priority level (name defined in spec).\r
 //\r
@@ -543,13 +508,6 @@ EFI_STATUS
 #define TPL_NOTIFY            16\r
 #define TPL_HIGH_LEVEL        31\r
 \r
-//\r
-// Task priority level (name following coding style).\r
-//\r
-#define EFI_TPL_APPLICATION   TPL_APPLICATION\r
-#define EFI_TPL_CALLBACK      TPL_CALLBACK\r
-#define EFI_TPL_NOTIFY        TPL_NOTIFY\r
-#define EFI_TPL_HIGH_LEVEL    TPL_HIGH_LEVEL\r
 \r
 /**\r
   Raises a task's priority level and returns its previous level.\r
@@ -577,13 +535,6 @@ VOID
   IN EFI_TPL      OldTpl\r
   );\r
 \r
-//\r
-// Variable attributes\r
-//\r
-#define EFI_VARIABLE_NON_VOLATILE       0x00000001\r
-#define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x00000002\r
-#define EFI_VARIABLE_RUNTIME_ACCESS     0x00000004\r
-\r
 /**\r
   Returns the value of a variable.\r
 \r
@@ -667,13 +618,15 @@ EFI_STATUS
   IN  VOID                         *Data\r
   );\r
 \r
-//\r
-// EFI Time\r
-//\r
+\r
+// \r
+// This provides the capabilities of the\r
+// real time clock device as exposed through the EFI interfaces.\r
+// \r
 typedef struct {\r
-  UINT32  Resolution;\r
-  UINT32  Accuracy;\r
-  BOOLEAN SetsToZero;\r
+  UINT32    Resolution;\r
+  UINT32    Accuracy;\r
+  BOOLEAN   SetsToZero;\r
 } EFI_TIME_CAPABILITIES;\r
 \r
 /**\r
@@ -925,16 +878,13 @@ EFI_STATUS
   IN CHAR16                   *WatchdogData OPTIONAL\r
   );\r
 \r
+//\r
+// Enumeration of reset types.\r
+// \r
 typedef enum {\r
   EfiResetCold,\r
   EfiResetWarm,\r
   EfiResetShutdown,\r
-#if ((EDK_RELEASE_VERSION != 0) && (EFI_SPECIFICATION_VERSION < 0x00020000))\r
-  //\r
-  // Tiano extension for capsules that was removed after UEFI 2.0 came out\r
-  //\r
-  EfiResetUpdate\r
-#endif\r
 } EFI_RESET_TYPE;\r
 \r
 /**\r
@@ -1042,6 +992,7 @@ VOID
   IN UINT8    Value\r
   );\r
 \r
+\r
 //\r
 // Protocol handler functions\r
 //\r
@@ -1259,6 +1210,7 @@ EFI_STATUS
   IN EFI_HANDLE               ControllerHandle\r
   );\r
 \r
+\r
 typedef struct {\r
   EFI_HANDLE  AgentHandle;\r
   EFI_HANDLE  ControllerHandle;\r
@@ -1337,6 +1289,7 @@ EFI_STATUS
   OUT VOID                     **Registration\r
   );\r
 \r
+\r
 typedef enum {\r
   AllHandles,\r
   ByRegisterNotify,\r
@@ -1413,17 +1366,6 @@ EFI_STATUS
   IN VOID                     *Table\r
   );\r
 \r
-/**\r
-  Reserved service.\r
-\r
-  @retval EFI_SUCCESS           The operation has been completed successfully.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_RESERVED_SERVICE) (\r
-  VOID\r
-  );\r
 \r
 /**\r
   Returns an array of handles that support the requested protocol in a buffer allocated from pool.\r
@@ -1482,14 +1424,14 @@ typedef struct {
     EFI_PHYSICAL_ADDRESS  DataBlock;\r
     EFI_PHYSICAL_ADDRESS  ContinuationPointer;\r
   } Union;\r
-} UEFI_CAPSULE_BLOCK_DESCRIPTOR;\r
+} EFI_CAPSULE_BLOCK_DESCRIPTOR;\r
 \r
 typedef struct {\r
   EFI_GUID          CapsuleGuid;\r
   UINT32            HeaderSize;\r
   UINT32            Flags;\r
   UINT32            CapsuleImageSize;\r
-} UEFI_CAPSULE_HEADER;\r
+} EFI_CAPSULE_HEADER;\r
 \r
 #define CAPSULE_FLAGS_PERSIST_ACROSS_RESET          0x00010000\r
 #define CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE         0x00020000\r
@@ -1586,727 +1528,180 @@ EFI_STATUS
 //\r
 // EFI Runtime Services Table\r
 //\r
-#define EFI_1_02_SYSTEM_TABLE_REVISION  ((1 << 16) | 02)\r
-#define EFI_1_10_SYSTEM_TABLE_REVISION  ((1 << 16) | 10)\r
-#define EFI_2_00_SYSTEM_TABLE_REVISION  ((2 << 16) | 0)\r
-\r
-#define EFI_RUNTIME_SERVICES_SIGNATURE  0x56524553544e5552ULL\r
-#define EFI_RUNTIME_SERVICES_REVISION   (EFI_2_00_SYSTEM_TABLE_REVISION)\r
-\r
-#if (EDK_RELEASE_VERSION != 0) && (EFI_SPECIFICATION_VERSION < 0x00020000)\r
-//\r
-// Include the definition for TIANO_REPORT_STATUS_CODE if this is the version\r
-//  of Tiano that extended the EFI specification. If Tiano mode is diabled\r
-//  don't include it.\r
-//\r
-#include <Dxe/ArchProtocol/StatusCode.h>\r
-#endif\r
+#define EFI_SYSTEM_TABLE_SIGNATURE      0x5453595320494249\r
+#define EFI_SYSTEM_TABLE_REVISION       ((2<<16) | (10))\r
+#define EFI_2_10_SYSTEM_TABLE_REVISION  ((2<<16) | (10))\r
+#define EFI_2_00_SYSTEM_TABLE_REVISION  ((2<<16) | (00))\r
+#define EFI_1_10_SYSTEM_TABLE_REVISION  ((1<<16) | (10))\r
+#define EFI_1_02_SYSTEM_TABLE_REVISION  ((1<<16) | (02))\r
 \r
+#define EFI_RUNTIME_SERVICES_SIGNATURE  0x56524553544e5552\r
+#define EFI_RUNTIME_SERVICES_REVISION   EFI_2_10_SYSTEM_TABLE_REVISION\r
 \r
 typedef struct {\r
-  EFI_TABLE_HEADER              Hdr;\r
+  EFI_TABLE_HEADER Hdr;\r
 \r
   //\r
-  // Time services\r
+  // Time Services\r
   //\r
-  EFI_GET_TIME                  GetTime;\r
-  EFI_SET_TIME                  SetTime;\r
-  EFI_GET_WAKEUP_TIME           GetWakeupTime;\r
-  EFI_SET_WAKEUP_TIME           SetWakeupTime;\r
+  EFI_GET_TIME                    GetTime;\r
+  EFI_SET_TIME                    SetTime;\r
+  EFI_GET_WAKEUP_TIME             GetWakeupTime;\r
+  EFI_SET_WAKEUP_TIME             SetWakeupTime;\r
 \r
   //\r
-  // Virtual memory services\r
+  // Virtual Memory Services\r
   //\r
-  EFI_SET_VIRTUAL_ADDRESS_MAP   SetVirtualAddressMap;\r
-  EFI_CONVERT_POINTER           ConvertPointer;\r
+  EFI_SET_VIRTUAL_ADDRESS_MAP     SetVirtualAddressMap;\r
+  EFI_CONVERT_POINTER             ConvertPointer;\r
 \r
   //\r
-  // Variable services\r
+  // Variable Services\r
   //\r
-  EFI_GET_VARIABLE              GetVariable;\r
-  EFI_GET_NEXT_VARIABLE_NAME    GetNextVariableName;\r
-  EFI_SET_VARIABLE              SetVariable;\r
+  EFI_GET_VARIABLE                GetVariable;\r
+  EFI_GET_NEXT_VARIABLE_NAME      GetNextVariableName;\r
+  EFI_SET_VARIABLE                SetVariable;\r
 \r
   //\r
-  // Misc\r
+  // Miscellaneous Services\r
   //\r
-  EFI_GET_NEXT_HIGH_MONO_COUNT  GetNextHighMonotonicCount;\r
-  EFI_RESET_SYSTEM              ResetSystem;\r
+  EFI_GET_NEXT_HIGH_MONO_COUNT    GetNextHighMonotonicCount;\r
+  EFI_RESET_SYSTEM                ResetSystem;\r
 \r
-#if (EFI_SPECIFICATION_VERSION >= 0x00020000)\r
   //\r
-  // New Boot Services added by UEFI 2.0\r
+  // UEFI 2.0 Capsule Services\r
   //\r
   EFI_UPDATE_CAPSULE              UpdateCapsule;\r
   EFI_QUERY_CAPSULE_CAPABILITIES  QueryCapsuleCapabilities;\r
-  EFI_QUERY_VARIABLE_INFO         QueryVariableInfo;\r
-#elif (EDK_RELEASE_VERSION != 0)\r
+\r
   //\r
-  // Tiano extension to EFI 1.10 runtime table\r
-  //  It was moved to a protocol to not conflict with UEFI 2.0\r
-  //  If Tiano is disabled this item is not enabled for EFI 1.10\r
+  // Miscellaneous UEFI 2.0 Service\r
   //\r
-  EFI_REPORT_STATUS_CODE        ReportStatusCode;\r
-#endif\r
+  EFI_QUERY_VARIABLE_INFO         QueryVariableInfo;\r
 } EFI_RUNTIME_SERVICES;\r
 \r
-//\r
-// EFI Boot Services Table\r
-//\r
-#define EFI_BOOT_SERVICES_SIGNATURE 0x56524553544f4f42ULL\r
-#define EFI_BOOT_SERVICES_REVISION  (EFI_2_00_SYSTEM_TABLE_REVISION)\r
 \r
-typedef struct {\r
-  EFI_TABLE_HEADER                            Hdr;\r
+#define EFI_BOOT_SERVICES_SIGNATURE   0x56524553544f4f42\r
+#define EFI_BOOT_SERVICES_REVISION    EFI_2_10_SYSTEM_TABLE_REVISION\r
 \r
+typedef struct {\r
+  EFI_TABLE_HEADER  Hdr;\r
+  \r
   //\r
-  // Task priority functions\r
+  // Task Priority Services\r
   //\r
-  EFI_RAISE_TPL                               RaiseTPL;\r
-  EFI_RESTORE_TPL                             RestoreTPL;\r
+  EFI_RAISE_TPL                   RaiseTPL;\r
+  EFI_RESTORE_TPL                 RestoreTPL;\r
 \r
   //\r
-  // Memory functions\r
+  // Memory Services\r
   //\r
-  EFI_ALLOCATE_PAGES                          AllocatePages;\r
-  EFI_FREE_PAGES                              FreePages;\r
-  EFI_GET_MEMORY_MAP                          GetMemoryMap;\r
-  EFI_ALLOCATE_POOL                           AllocatePool;\r
-  EFI_FREE_POOL                               FreePool;\r
+  EFI_ALLOCATE_PAGES              AllocatePages;\r
+  EFI_FREE_PAGES                  FreePages;\r
+  EFI_GET_MEMORY_MAP              GetMemoryMap;\r
+  EFI_ALLOCATE_POOL               AllocatePool;\r
+  EFI_FREE_POOL                   FreePool;\r
 \r
   //\r
-  // Event & timer functions\r
+  // Event & Timer Services\r
   //\r
-  EFI_CREATE_EVENT                            CreateEvent;\r
-  EFI_SET_TIMER                               SetTimer;\r
-  EFI_WAIT_FOR_EVENT                          WaitForEvent;\r
-  EFI_SIGNAL_EVENT                            SignalEvent;\r
-  EFI_CLOSE_EVENT                             CloseEvent;\r
-  EFI_CHECK_EVENT                             CheckEvent;\r
+  EFI_CREATE_EVENT                  CreateEvent;\r
+  EFI_SET_TIMER                     SetTimer;\r
+  EFI_WAIT_FOR_EVENT                WaitForEvent;\r
+  EFI_SIGNAL_EVENT                  SignalEvent;\r
+  EFI_CLOSE_EVENT                   CloseEvent;\r
+  EFI_CHECK_EVENT                   CheckEvent;\r
 \r
   //\r
-  // Protocol handler functions\r
+  // Protocol Handler Services\r
   //\r
-  EFI_INSTALL_PROTOCOL_INTERFACE              InstallProtocolInterface;\r
-  EFI_REINSTALL_PROTOCOL_INTERFACE            ReinstallProtocolInterface;\r
-  EFI_UNINSTALL_PROTOCOL_INTERFACE            UninstallProtocolInterface;\r
-  EFI_HANDLE_PROTOCOL                         HandleProtocol;\r
-  VOID                                        *Reserved;\r
-  EFI_REGISTER_PROTOCOL_NOTIFY                RegisterProtocolNotify;\r
-  EFI_LOCATE_HANDLE                           LocateHandle;\r
-  EFI_LOCATE_DEVICE_PATH                      LocateDevicePath;\r
-  EFI_INSTALL_CONFIGURATION_TABLE             InstallConfigurationTable;\r
+  EFI_INSTALL_PROTOCOL_INTERFACE    InstallProtocolInterface;\r
+  EFI_REINSTALL_PROTOCOL_INTERFACE  ReinstallProtocolInterface;\r
+  EFI_UNINSTALL_PROTOCOL_INTERFACE  UninstallProtocolInterface;\r
+  EFI_HANDLE_PROTOCOL               HandleProtocol;\r
+  VOID                              *Reserved;\r
+  EFI_REGISTER_PROTOCOL_NOTIFY      RegisterProtocolNotify;\r
+  EFI_LOCATE_HANDLE                 LocateHandle;\r
+  EFI_LOCATE_DEVICE_PATH            LocateDevicePath;\r
+  EFI_INSTALL_CONFIGURATION_TABLE   InstallConfigurationTable;\r
 \r
   //\r
-  // Image functions\r
+  // Image Services\r
   //\r
-  EFI_IMAGE_LOAD                              LoadImage;\r
-  EFI_IMAGE_START                             StartImage;\r
-  EFI_EXIT                                    Exit;\r
-  EFI_IMAGE_UNLOAD                            UnloadImage;\r
-  EFI_EXIT_BOOT_SERVICES                      ExitBootServices;\r
+  EFI_IMAGE_LOAD                    LoadImage;\r
+  EFI_IMAGE_START                   StartImage;\r
+  EFI_EXIT                          Exit;\r
+  EFI_IMAGE_UNLOAD                  UnloadImage;\r
+  EFI_EXIT_BOOT_SERVICES            ExitBootServices;\r
 \r
   //\r
-  // Misc functions\r
+  // Miscellaneous Services\r
   //\r
-  EFI_GET_NEXT_MONOTONIC_COUNT                GetNextMonotonicCount;\r
-  EFI_STALL                                   Stall;\r
-  EFI_SET_WATCHDOG_TIMER                      SetWatchdogTimer;\r
+  EFI_GET_NEXT_MONOTONIC_COUNT      GetNextMonotonicCount;\r
+  EFI_STALL                         Stall;\r
+  EFI_SET_WATCHDOG_TIMER            SetWatchdogTimer;\r
 \r
-  //\r
-  // ////////////////////////////////////////////////////\r
-  // EFI 1.1 Services\r
-    //////////////////////////////////////////////////////\r
   //\r
   // DriverSupport Services\r
   //\r
-  EFI_CONNECT_CONTROLLER                      ConnectController;\r
-  EFI_DISCONNECT_CONTROLLER                   DisconnectController;\r
+  EFI_CONNECT_CONTROLLER            ConnectController;\r
+  EFI_DISCONNECT_CONTROLLER         DisconnectController;\r
 \r
   //\r
-  // Added Open and Close protocol for the new driver model\r
+  // Open and Close Protocol Services\r
   //\r
-  EFI_OPEN_PROTOCOL                           OpenProtocol;\r
-  EFI_CLOSE_PROTOCOL                          CloseProtocol;\r
-  EFI_OPEN_PROTOCOL_INFORMATION               OpenProtocolInformation;\r
+  EFI_OPEN_PROTOCOL                 OpenProtocol;\r
+  EFI_CLOSE_PROTOCOL                CloseProtocol;\r
+  EFI_OPEN_PROTOCOL_INFORMATION     OpenProtocolInformation;\r
 \r
   //\r
-  // Added new services to EFI 1.1 as Lib to reduce code size.\r
+  // Library Services\r
   //\r
-  EFI_PROTOCOLS_PER_HANDLE                    ProtocolsPerHandle;\r
-  EFI_LOCATE_HANDLE_BUFFER                    LocateHandleBuffer;\r
-  EFI_LOCATE_PROTOCOL                         LocateProtocol;\r
-\r
+  EFI_PROTOCOLS_PER_HANDLE          ProtocolsPerHandle;\r
+  EFI_LOCATE_HANDLE_BUFFER          LocateHandleBuffer;\r
+  EFI_LOCATE_PROTOCOL               LocateProtocol;\r
   EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES    InstallMultipleProtocolInterfaces;\r
   EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES  UninstallMultipleProtocolInterfaces;\r
 \r
   //\r
-  // CRC32 services\r
+  // 32-bit CRC Services\r
   //\r
-  EFI_CALCULATE_CRC32                         CalculateCrc32;\r
+  EFI_CALCULATE_CRC32               CalculateCrc32;\r
 \r
   //\r
-  // Memory Utility Services\r
+  // Miscellaneous Services\r
   //\r
-  EFI_COPY_MEM                                CopyMem;\r
-  EFI_SET_MEM                                 SetMem;\r
+  EFI_COPY_MEM                      CopyMem;\r
+  EFI_SET_MEM                       SetMem;\r
 \r
-#if (EFI_SPECIFICATION_VERSION >= 0x00020000)\r
-  //\r
-  // UEFI 2.0 Extension to the table\r
-  //\r
-  EFI_CREATE_EVENT_EX                         CreateEventEx;\r
-#endif\r
+  EFI_CREATE_EVENT_EX               CreateEventEx;\r
 } EFI_BOOT_SERVICES;\r
 \r
 //\r
-// EFI Configuration Table\r
-//\r
-typedef struct {\r
-  EFI_GUID  VendorGuid;\r
-  VOID      *VendorTable;\r
+// Contains a set of GUID/pointer pairs comprised of the ConfigurationTable field in the \r
+// EFI System Table.\r
+// \r
+typedef struct{\r
+  EFI_GUID                          VendorGuid;\r
+  VOID                              *VendorTable;\r
 } EFI_CONFIGURATION_TABLE;\r
 \r
-//\r
-// EFI System Table\r
-//\r
-#define EFI_SYSTEM_TABLE_SIGNATURE      0x5453595320494249ULL\r
-#define EFI_SYSTEM_TABLE_REVISION       (EFI_2_00_SYSTEM_TABLE_REVISION)\r
-\r
 struct _EFI_SYSTEM_TABLE {\r
-  EFI_TABLE_HEADER              Hdr;\r
-\r
-  CHAR16                        *FirmwareVendor;\r
-  UINT32                        FirmwareRevision;\r
-\r
-  EFI_HANDLE                    ConsoleInHandle;\r
-  EFI_SIMPLE_TEXT_IN_PROTOCOL   *ConIn;\r
-\r
-  EFI_HANDLE                    ConsoleOutHandle;\r
-  EFI_SIMPLE_TEXT_OUT_PROTOCOL  *ConOut;\r
-\r
-  EFI_HANDLE                    StandardErrorHandle;\r
-  EFI_SIMPLE_TEXT_OUT_PROTOCOL  *StdErr;\r
-\r
-  EFI_RUNTIME_SERVICES          *RuntimeServices;\r
-  EFI_BOOT_SERVICES             *BootServices;\r
-\r
-  UINTN                         NumberOfTableEntries;\r
-  EFI_CONFIGURATION_TABLE       *ConfigurationTable;\r
-\r
+  EFI_TABLE_HEADER  Hdr;\r
+  CHAR16                            *FirmwareVendor;\r
+  UINT32                            FirmwareRevision;\r
+  EFI_HANDLE                        ConsoleInHandle;\r
+  EFI_SIMPLE_TEXT_INPUT_PROTOCOL    *ConIn;\r
+  EFI_HANDLE                        ConsoleOutHandle;\r
+  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL   *ConOut;\r
+  EFI_HANDLE                        StandardErrorHandle;\r
+  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL   *StdErr;\r
+  EFI_RUNTIME_SERVICES              *RuntimeServices;\r
+  EFI_BOOT_SERVICES                 *BootServices;\r
+  UINTN                             NumberOfTableEntries;\r
+  EFI_CONFIGURATION_TABLE           *ConfigurationTable;\r
 };\r
 \r
-//\r
-// Device Path information\r
-//\r
-\r
-#pragma pack(1)\r
-\r
-//\r
-// Hardware Device Paths\r
-//\r
-#define HARDWARE_DEVICE_PATH      0x01\r
-\r
-#define HW_PCI_DP                 0x01\r
-typedef struct {\r
-  EFI_DEVICE_PATH_PROTOCOL        Header;\r
-  UINT8                           Function;\r
-  UINT8                           Device;\r
-} PCI_DEVICE_PATH;\r
-\r
-#define HW_PCCARD_DP              0x02\r
-typedef struct {\r
-  EFI_DEVICE_PATH_PROTOCOL        Header;\r
-  UINT8                           FunctionNumber;\r
-} PCCARD_DEVICE_PATH;\r
-\r
-#define HW_MEMMAP_DP              0x03\r
-typedef struct {\r
-  EFI_DEVICE_PATH_PROTOCOL        Header;\r
-  UINT32                          MemoryType;\r
-  EFI_PHYSICAL_ADDRESS            StartingAddress;\r
-  EFI_PHYSICAL_ADDRESS            EndingAddress;\r
-} MEMMAP_DEVICE_PATH;\r
-\r
-#define HW_VENDOR_DP              0x04\r
-typedef struct {\r
-  EFI_DEVICE_PATH_PROTOCOL        Header;\r
-  EFI_GUID                        Guid;\r
-} VENDOR_DEVICE_PATH;\r
-\r
-#define HW_CONTROLLER_DP          0x05\r
-typedef struct {\r
-  EFI_DEVICE_PATH_PROTOCOL        Header;\r
-  UINT32                          ControllerNumber;\r
-} CONTROLLER_DEVICE_PATH;\r
-\r
-//\r
-// ACPI Device Paths\r
-//\r
-#define ACPI_DEVICE_PATH          0x02\r
-\r
-#define ACPI_DP                   0x01\r
-typedef struct {\r
-  EFI_DEVICE_PATH_PROTOCOL        Header;\r
-  UINT32                          HID;\r
-  UINT32                          UID;\r
-} ACPI_HID_DEVICE_PATH;\r
-\r
-#define ACPI_EXTENDED_DP          0x02\r
-typedef struct {\r
-  EFI_DEVICE_PATH_PROTOCOL        Header;\r
-  UINT32                          HID;\r
-  UINT32                          UID;\r
-  UINT32                          CID;\r
-  //\r
-  // Optional variable length _HIDSTR\r
-  // Optional variable length _UIDSTR\r
-  //\r
-} ACPI_EXTENDED_HID_DEVICE_PATH;\r
-\r
-//\r
-//  EISA ID Macro\r
-//  EISA ID Definition 32-bits\r
-//   bits[15:0] - three character compressed ASCII EISA ID.\r
-//   bits[31:16] - binary number\r
-//    Compressed ASCII is 5 bits per character 0b00001 = 'A' 0b11010 = 'Z'\r
-//\r
-#define PNP_EISA_ID_CONST         0x41d0\r
-#define EISA_ID(_Name, _Num)      ((UINT32) ((_Name) | (_Num) << 16))\r
-#define EISA_PNP_ID(_PNPId)       (EISA_ID(PNP_EISA_ID_CONST, (_PNPId)))\r
-#define EFI_PNP_ID(_PNPId)        (EISA_ID(PNP_EISA_ID_CONST, (_PNPId)))\r
-\r
-#define PNP_EISA_ID_MASK          0xffff\r
-#define EISA_ID_TO_NUM(_Id)       ((_Id) >> 16)\r
-\r
-\r
-#define ACPI_ADR_DP               0x03\r
-typedef struct {\r
-  EFI_DEVICE_PATH_PROTOCOL        Header;\r
-  UINT32                          ADR;\r
-} ACPI_ADR_DEVICE_PATH;\r
-\r
-\r
-//\r
-// Messaging Device Paths\r
-//\r
-#define MESSAGING_DEVICE_PATH     0x03\r
-\r
-#define MSG_ATAPI_DP              0x01\r
-typedef struct {\r
-  EFI_DEVICE_PATH_PROTOCOL        Header;\r
-  UINT8                           PrimarySecondary;\r
-  UINT8                           SlaveMaster;\r
-  UINT16                          Lun;\r
-} ATAPI_DEVICE_PATH;\r
-\r
-#define MSG_SCSI_DP               0x02\r
-typedef struct {\r
-  EFI_DEVICE_PATH_PROTOCOL        Header;\r
-  UINT16                          Pun;\r
-  UINT16                          Lun;\r
-} SCSI_DEVICE_PATH;\r
-\r
-#define MSG_FIBRECHANNEL_DP       0x03\r
-typedef struct {\r
-  EFI_DEVICE_PATH_PROTOCOL        Header;\r
-  UINT32                          Reserved;\r
-  UINT64                          WWN;\r
-  UINT64                          Lun;\r
-} FIBRECHANNEL_DEVICE_PATH;\r
-\r
-#define MSG_1394_DP               0x04\r
-typedef struct {\r
-  EFI_DEVICE_PATH_PROTOCOL        Header;\r
-  UINT32                          Reserved;\r
-  UINT64                          Guid;\r
-} F1394_DEVICE_PATH;\r
-\r
-#define MSG_USB_DP                0x05\r
-typedef struct {\r
-    EFI_DEVICE_PATH_PROTOCOL      Header;\r
-    UINT8                         ParentPortNumber;\r
-    UINT8                         InterfaceNumber;\r
-} USB_DEVICE_PATH;\r
-\r
-#define MSG_USB_CLASS_DP          0x0f\r
-typedef struct {\r
-    EFI_DEVICE_PATH_PROTOCOL      Header;\r
-    UINT16                        VendorId;\r
-    UINT16                        ProductId;\r
-    UINT8                         DeviceClass;\r
-    UINT8                         DeviceSubClass;\r
-    UINT8                         DeviceProtocol;\r
-} USB_CLASS_DEVICE_PATH;\r
-\r
-#if (EFI_SPECIFICATION_VERSION >= 0x00020000)\r
-#define MSG_USB_WWID_DP           0x10\r
-typedef struct {\r
-    EFI_DEVICE_PATH_PROTOCOL      Header;\r
-    UINT16                        InterfaceNumber;\r
-    UINT16                        VendorId;\r
-    UINT16                        ProductId;\r
-    // CHAR16                     SerialNumber[];\r
-} USB_WWID_DEVICE_PATH;\r
-\r
-#define MSG_DEVICE_LOGICAL_UNIT_DP  0x11\r
-typedef struct {\r
-    EFI_DEVICE_PATH_PROTOCOL      Header;\r
-    UINT8                         Lun;\r
-} DEVICE_LOGICAL_UNIT_DEVICE_PATH;\r
-#endif\r
-\r
-#define MSG_I2O_DP                0x06\r
-typedef struct {\r
-  EFI_DEVICE_PATH_PROTOCOL        Header;\r
-  UINT32                          Tid;\r
-} I2O_DEVICE_PATH;\r
-\r
-#define MSG_MAC_ADDR_DP           0x0b\r
-typedef struct {\r
-  EFI_DEVICE_PATH_PROTOCOL        Header;\r
-  EFI_MAC_ADDRESS                 MacAddress;\r
-  UINT8                           IfType;\r
-} MAC_ADDR_DEVICE_PATH;\r
-\r
-#define MSG_IPv4_DP               0x0c\r
-typedef struct {\r
-  EFI_DEVICE_PATH_PROTOCOL        Header;\r
-  EFI_IPv4_ADDRESS                LocalIpAddress;\r
-  EFI_IPv4_ADDRESS                RemoteIpAddress;\r
-  UINT16                          LocalPort;\r
-  UINT16                          RemotePort;\r
-  UINT16                          Protocol;\r
-  BOOLEAN                         StaticIpAddress;\r
-} IPv4_DEVICE_PATH;\r
-\r
-#define MSG_IPv6_DP               0x0d\r
-typedef struct {\r
-  EFI_DEVICE_PATH_PROTOCOL        Header;\r
-  EFI_IPv6_ADDRESS                LocalIpAddress;\r
-  EFI_IPv6_ADDRESS                RemoteIpAddress;\r
-  UINT16                          LocalPort;\r
-  UINT16                          RemotePort;\r
-  UINT16                          Protocol;\r
-  BOOLEAN                         StaticIpAddress;\r
-} IPv6_DEVICE_PATH;\r
-\r
-#define MSG_INFINIBAND_DP         0x09\r
-typedef struct {\r
-  EFI_DEVICE_PATH_PROTOCOL        Header;\r
-  UINT32                          ResourceFlags;\r
-  UINT8                           PortGid[16];\r
-  UINT64                          ServiceId;\r
-  UINT64                          TargetPortId;\r
-  UINT64                          DeviceId;\r
-} INFINIBAND_DEVICE_PATH;\r
-\r
-#define INFINIBAND_RESOURCE_FLAG_IOC_SERVICE                0x01\r
-#define INFINIBAND_RESOURCE_FLAG_EXTENDED_BOOT_ENVIRONMENT  0x02\r
-#define INFINIBAND_RESOURCE_FLAG_CONSOLE_PROTOCOL           0x04\r
-#define INFINIBAND_RESOURCE_FLAG_STORAGE_PROTOCOL           0x08\r
-#define INFINIBAND_RESOURCE_FLAG_NETWORK_PROTOCOL           0x10\r
-\r
-#define MSG_UART_DP               0x0e\r
-typedef struct {\r
-  EFI_DEVICE_PATH_PROTOCOL        Header;\r
-  UINT32                          Reserved;\r
-  UINT64                          BaudRate;\r
-  UINT8                           DataBits;\r
-  UINT8                           Parity;\r
-  UINT8                           StopBits;\r
-} UART_DEVICE_PATH;\r
-\r
-//\r
-// Use VENDOR_DEVICE_PATH struct\r
-//\r
-#define MSG_VENDOR_DP             0x0a\r
-\r
-#define DEVICE_PATH_MESSAGING_PC_ANSI     EFI_PC_ANSI_GUID\r
-#define DEVICE_PATH_MESSAGING_VT_100      EFI_VT_100_GUID\r
-#define DEVICE_PATH_MESSAGING_VT_100_PLUS EFI_VT_100_PLUS_GUID\r
-#define DEVICE_PATH_MESSAGING_VT_UTF8     EFI_VT_UTF8_GUID\r
-\r
-#define DEVICE_PATH_MESSAGING_UART_FLOW_CONTROL   EFI_UART_DEVICE_PATH_GUID\r
-\r
-typedef struct {\r
-  EFI_DEVICE_PATH_PROTOCOL        Header;\r
-  EFI_GUID                        Guid;\r
-  UINT32                          FlowControlMap;\r
-} UART_FLOW_CONTROL_DEVICE_PATH;\r
-\r
-#if (EFI_SPECIFICATION_VERSION >= 0x00020000)\r
-\r
-#define DEVICE_PATH_MESSAGING_SAS                 EFI_SAS_DEVICE_PATH_GUID\r
-\r
-typedef struct {\r
-  EFI_DEVICE_PATH_PROTOCOL        Header;\r
-  EFI_GUID                        Guid;\r
-  UINT32                          Reserved;\r
-  UINT64                          SasAddress;\r
-  UINT64                          Lun;\r
-  UINT16                          DeviceTopology;\r
-  UINT16                          RelativeTargetPort;\r
-} SAS_DEVICE_PATH;\r
-\r
-#define MSG_ISCSI_DP              0x13\r
-typedef struct {\r
-  EFI_DEVICE_PATH_PROTOCOL        Header;\r
-  UINT16                          NetworkProtocol;\r
-  UINT16                          LoginOption;\r
-  UINT16                          Reserved;\r
-  UINT16                          TargetPortalGroupTag;\r
-  UINT64                          LUN;\r
-  // CHAR8                        iSCSI Target Name\r
-} ISCSI_DEVICE_PATH;\r
-\r
-#define ISCSI_LOGIN_OPTION_NO_HEADER_DIGEST             0x0000\r
-#define ISCSI_LOGIN_OPTION_HEADER_DIGEST_USING_CRC32C   0x0002\r
-#define ISCSI_LOGIN_OPTION_NO_DATA_DIGEST               0x0000\r
-#define ISCSI_LOGIN_OPTION_DATA_DIGEST_USING_CRC32C     0x0008\r
-#define ISCSI_LOGIN_OPTION_AUTHMETHOD_CHAP              0x0000\r
-#define ISCSI_LOGIN_OPTION_AUTHMETHOD_NON               0x1000\r
-#define ISCSI_LOGIN_OPTION_CHAP_BI                      0x0000\r
-#define ISCSI_LOGIN_OPTION_CHAP_UNI                     0x2000\r
-\r
-#endif\r
-\r
-//\r
-// Media Device Path\r
-//\r
-#define MEDIA_DEVICE_PATH         0x04\r
-\r
-#define MEDIA_HARDDRIVE_DP        0x01\r
-typedef struct {\r
-  EFI_DEVICE_PATH_PROTOCOL        Header;\r
-  UINT32                          PartitionNumber;\r
-  UINT64                          PartitionStart;\r
-  UINT64                          PartitionSize;\r
-  UINT8                           Signature[16];\r
-  UINT8                           MBRType;\r
-  UINT8                           SignatureType;\r
-} HARDDRIVE_DEVICE_PATH;\r
-\r
-#define MBR_TYPE_PCAT             0x01\r
-#define MBR_TYPE_EFI_PARTITION_TABLE_HEADER 0x02\r
-\r
-#define SIGNATURE_TYPE_MBR        0x01\r
-#define SIGNATURE_TYPE_GUID       0x02\r
-\r
-#define MEDIA_CDROM_DP            0x02\r
-typedef struct {\r
-  EFI_DEVICE_PATH_PROTOCOL        Header;\r
-  UINT32                          BootEntry;\r
-  UINT64                          PartitionStart;\r
-  UINT64                          PartitionSize;\r
-} CDROM_DEVICE_PATH;\r
-\r
-//\r
-// Use VENDOR_DEVICE_PATH struct\r
-//\r
-#define MEDIA_VENDOR_DP           0x03\r
-\r
-#define MEDIA_FILEPATH_DP         0x04\r
-typedef struct {\r
-  EFI_DEVICE_PATH_PROTOCOL        Header;\r
-  CHAR16                          PathName[1];\r
-} FILEPATH_DEVICE_PATH;\r
-\r
-#define SIZE_OF_FILEPATH_DEVICE_PATH EFI_FIELD_OFFSET(FILEPATH_DEVICE_PATH,PathName)\r
-\r
-#define MEDIA_PROTOCOL_DP         0x05\r
-typedef struct {\r
-  EFI_DEVICE_PATH_PROTOCOL        Header;\r
-  EFI_GUID                        Protocol;\r
-} MEDIA_PROTOCOL_DEVICE_PATH;\r
-\r
-\r
-typedef struct {\r
-  EFI_DEVICE_PATH_PROTOCOL  Header;\r
-  EFI_GUID                  TianoSpecificDevicePath;\r
-  UINT32                    Type;\r
-} TIANO_DEVICE_PATH;\r
-\r
-#define TIANO_MEDIA_FW_VOL_FILEPATH_DEVICE_PATH_TYPE         0x01\r
-typedef struct {\r
-  TIANO_DEVICE_PATH     Tiano;\r
-  EFI_GUID              NameGuid;\r
-} MEDIA_FW_VOL_FILEPATH_DEVICE_PATH;\r
-\r
-//\r
-// Place holder for a future extension\r
-//\r
-#define TIANO_MEDIAFW_VOL_DEVICE_PATH_TYPE                   0x02\r
-typedef struct {\r
-  TIANO_DEVICE_PATH     Tiano;\r
-  EFI_GUID              VolumeGuid;\r
-} MEDIA_FW_VOL_DEVICE_PATH;\r
-\r
-\r
-//\r
-// BBS Device Path\r
-//\r
-#define BBS_DEVICE_PATH           0x05\r
-#define BBS_BBS_DP                0x01\r
-typedef struct {\r
-  EFI_DEVICE_PATH_PROTOCOL        Header;\r
-  UINT16                          DeviceType;\r
-  UINT16                          StatusFlag;\r
-  CHAR8                           String[1];\r
-} BBS_BBS_DEVICE_PATH;\r
-\r
-//\r
-// DeviceType definitions - from BBS specification\r
-//\r
-#define BBS_TYPE_FLOPPY           0x01\r
-#define BBS_TYPE_HARDDRIVE        0x02\r
-#define BBS_TYPE_CDROM            0x03\r
-#define BBS_TYPE_PCMCIA           0x04\r
-#define BBS_TYPE_USB              0x05\r
-#define BBS_TYPE_EMBEDDED_NETWORK 0x06\r
-#define BBS_TYPE_BEV              0x80\r
-#define BBS_TYPE_UNKNOWN          0xFF\r
-\r
-\r
-//\r
-// Union of all possible Device Paths and pointers to Device Paths\r
-//\r
-\r
-typedef union {\r
-  EFI_DEVICE_PATH_PROTOCOL             DevPath;\r
-  PCI_DEVICE_PATH                      Pci;\r
-  PCCARD_DEVICE_PATH                   PcCard;\r
-  MEMMAP_DEVICE_PATH                   MemMap;\r
-  VENDOR_DEVICE_PATH                   Vendor;\r
-\r
-  CONTROLLER_DEVICE_PATH               Controller;\r
-  ACPI_HID_DEVICE_PATH                 Acpi;\r
-\r
-  ATAPI_DEVICE_PATH                    Atapi;\r
-  SCSI_DEVICE_PATH                     Scsi;\r
-  FIBRECHANNEL_DEVICE_PATH             FibreChannel;\r
-\r
-  F1394_DEVICE_PATH                    F1394;\r
-  USB_DEVICE_PATH                      Usb;\r
-  USB_CLASS_DEVICE_PATH                UsbClass;\r
-  I2O_DEVICE_PATH                      I2O;\r
-  MAC_ADDR_DEVICE_PATH                 MacAddr;\r
-  IPv4_DEVICE_PATH                     Ipv4;\r
-  IPv6_DEVICE_PATH                     Ipv6;\r
-  INFINIBAND_DEVICE_PATH               InfiniBand;\r
-  UART_DEVICE_PATH                     Uart;\r
-\r
-  HARDDRIVE_DEVICE_PATH                HardDrive;\r
-  CDROM_DEVICE_PATH                    CD;\r
-\r
-  FILEPATH_DEVICE_PATH                 FilePath;\r
-  MEDIA_PROTOCOL_DEVICE_PATH           MediaProtocol;\r
-\r
-  BBS_BBS_DEVICE_PATH                  Bbs;\r
-} EFI_DEV_PATH;\r
-\r
-\r
-\r
-typedef union {\r
-  EFI_DEVICE_PATH_PROTOCOL             *DevPath;\r
-  PCI_DEVICE_PATH                      *Pci;\r
-  PCCARD_DEVICE_PATH                   *PcCard;\r
-  MEMMAP_DEVICE_PATH                   *MemMap;\r
-  VENDOR_DEVICE_PATH                   *Vendor;\r
-\r
-  CONTROLLER_DEVICE_PATH               *Controller;\r
-  ACPI_HID_DEVICE_PATH                 *Acpi;\r
-  ACPI_EXTENDED_HID_DEVICE_PATH        *ExtendedAcpi;\r
-\r
-  ATAPI_DEVICE_PATH                    *Atapi;\r
-  SCSI_DEVICE_PATH                     *Scsi;\r
-  FIBRECHANNEL_DEVICE_PATH             *FibreChannel;\r
-\r
-  F1394_DEVICE_PATH                    *F1394;\r
-  USB_DEVICE_PATH                      *Usb;\r
-  USB_CLASS_DEVICE_PATH                *UsbClass;\r
-  I2O_DEVICE_PATH                      *I2O;\r
-  MAC_ADDR_DEVICE_PATH                 *MacAddr;\r
-  IPv4_DEVICE_PATH                     *Ipv4;\r
-  IPv6_DEVICE_PATH                     *Ipv6;\r
-  INFINIBAND_DEVICE_PATH               *InfiniBand;\r
-  UART_DEVICE_PATH                     *Uart;\r
-\r
-  HARDDRIVE_DEVICE_PATH                *HardDrive;\r
-  CDROM_DEVICE_PATH                    *CD;\r
-\r
-  FILEPATH_DEVICE_PATH                 *FilePath;\r
-  MEDIA_PROTOCOL_DEVICE_PATH           *MediaProtocol;\r
-\r
-  BBS_BBS_DEVICE_PATH                  *Bbs;\r
-  UINT8                                *Raw;\r
-} EFI_DEV_PATH_PTR;\r
-\r
-#pragma pack()\r
-\r
-\r
-//\r
-// PXE Informations\r
-//\r
-\r
-//\r
-// Packet definitions\r
-//\r
-typedef struct {\r
-  UINT8   BootpOpcode;\r
-  UINT8   BootpHwType;\r
-  UINT8   BootpHwAddrLen;\r
-  UINT8   BootpGateHops;\r
-  UINT32  BootpIdent;\r
-  UINT16  BootpSeconds;\r
-  UINT16  BootpFlags;\r
-  UINT8   BootpCiAddr[4];\r
-  UINT8   BootpYiAddr[4];\r
-  UINT8   BootpSiAddr[4];\r
-  UINT8   BootpGiAddr[4];\r
-  UINT8   BootpHwAddr[16];\r
-  UINT8   BootpSrvName[64];\r
-  UINT8   BootpBootFile[128];\r
-  UINT32  DhcpMagik;\r
-  UINT8   DhcpOptions[56];\r
-} EFI_PXE_BASE_CODE_DHCPV4_PACKET;\r
-\r
-typedef union {\r
-  UINT8                           Raw[1472];\r
-  EFI_PXE_BASE_CODE_DHCPV4_PACKET Dhcpv4;\r
-\r
-  //\r
-  //  EFI_PXE_BASE_CODE_DHCPV6_PACKET     Dhcpv6;\r
-  //\r
-} EFI_PXE_BASE_CODE_PACKET;\r
-\r
-#include <Uefi/EfiPxe.h>\r
-\r
-//\r
-// EFI Revision information\r
-//\r
-#define EFI_FIRMWARE_REVISION       (EFI_2_00_SYSTEM_TABLE_REVISION)\r
-\r
-#include <Common/EfiImage.h>\r
-#include <IndustryStandard/Usb.h>\r
-\r
-\r
-#define EFI_USB_HC_RESET_GLOBAL            0x0001\r
-#define EFI_USB_HC_RESET_HOST_CONTROLLER   0x0002\r
-#define EFI_USB_HC_RESET_GLOBAL_WITH_DEBUG 0x0004\r
-#define EFI_USB_HC_RESET_HOST_WITH_DEBUG   0x0008\r
-\r
-//\r
-// USB Host Controller state\r
-//\r
-typedef enum {\r
-  EfiUsbHcStateHalt,\r
-  EfiUsbHcStateOperational,\r
-  EfiUsbHcStateSuspend,\r
-  EfiUsbHcStateMaximum\r
-} EFI_USB_HC_STATE;\r
-\r
-\r
 //\r
 // EFI File location to boot from on removable media devices\r
 //\r
@@ -2327,91 +1722,8 @@ typedef enum {
   #error Unknown Processor Type\r
 #endif\r
 \r
-\r
-//\r
-// Protocols from EFI 1.10 that got thier names fixed in UEFI 2.0\r
-//\r
-#include <Protocol/LoadedImage.h>\r
-#include <Protocol/SimpleTextIn.h>\r
-#include <Protocol/SimpleTextOut.h>\r
-#include <Protocol/SerialIo.h>\r
-#include <Protocol/LoadFile.h>\r
-#include <Protocol/SimpleFileSystem.h>\r
-#include <Protocol/DiskIo.h>\r
-#include <Protocol/BlockIo.h>\r
-#include <Protocol/UnicodeCollation.h>\r
-#include <Protocol/SimpleNetwork.h>\r
-#include <Protocol/EfiNetworkInterfaceIdentifier.h>\r
-#include <Protocol/PxeBaseCode.h>\r
-#include <Protocol/PxeBaseCodeCallBack.h>\r
-\r
-//\r
-// EFI 1.10 Protocols\r
-//\r
-#include <Protocol/Bis.h>\r
-#include <Protocol/BusSpecificDriverOverride.h>\r
-#include <Protocol/ComponentName.h>\r
-#include <Protocol/DebugPort.h>\r
-#include <Protocol/DebugSupport.h>\r
-#include <Protocol/Decompress.h>\r
-#include <Protocol/DriverBinding.h>\r
-#include <Protocol/DriverConfiguration.h>\r
-#include <Protocol/DriverDiagnostics.h>\r
-#include <Protocol/Ebc.h>\r
-#include <Protocol/EfiNetworkInterfaceIdentifier.h>\r
-#include <Protocol/PciIo.h>\r
-#include <Protocol/PciRootBridgeIo.h>\r
-#include <Protocol/PlatformDriverOverride.h>\r
-#include <Protocol/SimplePointer.h>\r
-#include <Protocol/ScsiPassThru.h>\r
-#include <Protocol/UsbIo.h>\r
-#include <Protocol/UsbHostController.h>\r
-#include <Protocol/UgaDraw.h>\r
-\r
-//\r
-// EFI 1.10 GUIDs\r
-//\r
-#include <Guid/Acpi.h>\r
-#include <Guid/DebugImageInfoTable.h>\r
-#include <Guid/GlobalVariable.h>\r
-#include <Guid/Gpt.h>\r
-#include <Guid/PcAnsi.h>\r
-#include <Guid/SmBios.h>\r
-#include <Guid/SalSystemTable.h>\r
-#include <Guid/FileInfo.h>\r
-#include <Guid/FileSystemInfo.h>\r
-#include <Guid/FileSystemVolumeLabelInfo.h>\r
-\r
-#if (EFI_SPECIFICATION_VERSION >= 0x00020000)\r
-//\r
-// Turn on UEFI 2.0 Protocols and GUIDs\r
-//\r
-#include <Protocol/AuthenticationInfo.h>\r
-#include <Protocol/DevicePathUtilities.h>\r
-#include <Protocol/DevicePathToText.h>\r
-#include <Protocol/DevicePathFromText.h>\r
-#include <Protocol/GraphicsOutput.h>\r
-#include <Protocol/EdidDiscovered.h>\r
-#include <Protocol/EdidActive.h>\r
-#include <Protocol/EdidOverride.h>\r
-#include <Protocol/ScsiIoExt.h>\r
-#include <Protocol/ScsiPassThruExt.h>\r
-#include <Protocol/IScsiInitatorName.h>\r
-#include <Protocol/Usb2HostController.h>\r
-#include <Protocol/TapeIo.h>\r
-#include <Protocol/ManagedNetwork.h>\r
-#include <Protocol/Arp.h>\r
-#include <Protocol/Dhcp4.h>\r
-#include <Protocol/IP4.h>\r
-#include <Protocol/IP4Config.h>\r
-#include <Protocol/Tcp4.h>\r
-#include <Protocol/Udp4.h>\r
-#include <Protocol/Mtftp4.h>\r
-#include <Protocol/ServiceBinding.h>\r
-#include <Protocol/Hash.h>\r
-\r
-#include <Guid/EventGroup.h>\r
-#endif\r
-\r
+#include <Uefi/UefiPxe.h>\r
+#include <Uefi/UefiGpt.h>\r
+#include <Uefi/UefiInternalFormRepresentation.h>\r
 \r
 #endif\r