Corrected uses of IntelFrameworkPkg header files.
authorbxing <bxing@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 4 Jul 2007 12:13:24 +0000 (12:13 +0000)
committerbxing <bxing@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 4 Jul 2007 12:13:24 +0000 (12:13 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3051 6f19259b-4bc3-4df7-8a09-765794883524

27 files changed:
IntelFrameworkModulePkg/Bus/Pci/IdeBus/Dxe/idebus.h
IntelFrameworkModulePkg/Bus/Pci/PciBus/Dxe/pcibus.h
IntelFrameworkModulePkg/Universal/DataHub/DataHubStdErr/Dxe/DataHubStdErr.c
IntelFrameworkPkg/Include/Framework/DxeCis.h [new file with mode: 0644]
IntelFrameworkPkg/Include/Framework/FirmwareFileSystem.h [new file with mode: 0644]
IntelFrameworkPkg/Include/Framework/FirmwareVolumeHeader.h [new file with mode: 0644]
IntelFrameworkPkg/Include/Framework/FirmwareVolumeImageFormat.h [new file with mode: 0644]
IntelFrameworkPkg/Include/Framework/FrameworkDxeCis.h [deleted file]
IntelFrameworkPkg/Include/Framework/FrameworkFirmwareFileSystem.h [deleted file]
IntelFrameworkPkg/Include/Framework/FrameworkFirmwareVolumeHeader.h [deleted file]
IntelFrameworkPkg/Include/Framework/FrameworkFirmwareVolumeImageFormat.h [deleted file]
IntelFrameworkPkg/Include/Framework/FrameworkHob.h [deleted file]
IntelFrameworkPkg/Include/Framework/FrameworkLegacy16.h [deleted file]
IntelFrameworkPkg/Include/Framework/FrameworkSmmCis.h [deleted file]
IntelFrameworkPkg/Include/Framework/FrameworkStatusCode.h [deleted file]
IntelFrameworkPkg/Include/Framework/FrameworkStatusCodeDataTypeId.h [deleted file]
IntelFrameworkPkg/Include/Framework/Hob.h [new file with mode: 0644]
IntelFrameworkPkg/Include/Framework/Legacy16.h [new file with mode: 0644]
IntelFrameworkPkg/Include/Framework/SmmCis.h [new file with mode: 0644]
IntelFrameworkPkg/Include/Framework/StatusCode.h [new file with mode: 0644]
IntelFrameworkPkg/Include/Framework/StatusCodeDataTypeId.h [new file with mode: 0644]
IntelFrameworkPkg/Include/FrameworkDxe.h
IntelFrameworkPkg/Include/FrameworkPei.h
IntelFrameworkPkg/Include/FrameworkSmm.h
IntelFrameworkPkg/Include/Ppi/BootScriptExecuter.h
IntelFrameworkPkg/Include/Ppi/FindFv.h
Nt32Pkg/CpuRuntimeDxe/CommonHeader.h

index a0c90fd..c9f11ef 100644 (file)
@@ -2,13 +2,13 @@
   Header file for IDE Bus Driver.\r
 \r
   Copyright (c) 2006 - 2007 Intel Corporation. <BR>\r
-  All rights reserved. This program and the accompanying materials                          \r
-  are licensed and made available under the terms and conditions of the BSD License         \r
-  which accompanies this distribution.  The full text of the license may be found at        \r
-  http://opensource.org/licenses/bsd-license.php                                            \r
+  All rights reserved. This program and the accompanying materials\r
+  are licensed and made available under the terms and conditions of the BSD License\r
+  which accompanies this distribution.  The full text of the license may be found at\r
+  http://opensource.org/licenses/bsd-license.php\r
 \r
-  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
+  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
 **/\r
 \r
@@ -19,8 +19,7 @@
 //\r
 // The package level header files this module uses\r
 //\r
-#include <PiDxe.h>\r
-#include <Common/FrameworkStatusCode.h>\r
+#include <FrameworkDxe.h>\r
 //\r
 // The protocols, PPI and GUID defintions for this module\r
 //\r
index f295e19..b2149a2 100644 (file)
@@ -27,9 +27,8 @@ Revision History
 //\r
 // The package level header files this module uses\r
 //\r
-#include <PiDxe.h>\r
-#include <Common/FrameworkStatusCode.h>\r
-#include <Common/FrameworkStatusCodeDataTypeId.h>\r
+#include <FrameworkDxe.h>\r
+\r
 //\r
 // The protocols, PPI and GUID defintions for this module\r
 //\r
index 50e40c0..5a762e0 100644 (file)
@@ -23,8 +23,8 @@ Abstract:
 //\r
 // The package level header files this module uses\r
 //\r
-#include <PiDxe.h>\r
-#include <Common/FrameworkStatusCode.h>\r
+#include <FrameworkDxe.h>\r
+\r
 //\r
 // The protocols, PPI and GUID defintions for this module\r
 //\r
diff --git a/IntelFrameworkPkg/Include/Framework/DxeCis.h b/IntelFrameworkPkg/Include/Framework/DxeCis.h
new file mode 100644 (file)
index 0000000..f7a6c18
--- /dev/null
@@ -0,0 +1,104 @@
+/** @file\r
+  Include file that supportes Framework extension to the EFI 1.10 spec.\r
+\r
+  This include file must only contain things defined in the Framework\r
+  specifications. If a code construct is defined in the Framework specification\r
+  it must be included by this include file.\r
+\r
+  Copyright (c) 2007, Intel Corporation\r
+  All rights reserved. This program and the accompanying materials\r
+  are licensed and made available under the terms and conditions of the BSD License\r
+  which accompanies this distribution.  The full text of the license may be found at\r
+  http://opensource.org/licenses/bsd-license.php\r
+\r
+  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:    FrameworkDxeCis.h\r
+\r
+**/\r
+\r
+#ifndef _FRAMEWORK_DXE_CIS_H_\r
+#define _FRAMEWORK_DXE_CIS_H_\r
+\r
+#include <PiDxe.h>\r
+#include <Framework/StatusCode.h>\r
+#include <Protocol/StatusCode.h>\r
+\r
+//\r
+// Function prototype for invoking a function on an Application Processor\r
+// Used by both the SMM infrastructure and the MP Services Protocol\r
+//\r
+typedef\r
+VOID\r
+(EFIAPI *EFI_AP_PROCEDURE) (\r
+  IN  VOID                              *Buffer\r
+  );\r
+\r
+typedef struct {\r
+  EFI_TABLE_HEADER              Hdr;\r
+\r
+  //\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
+\r
+  //\r
+  // Virtual memory services\r
+  //\r
+  EFI_SET_VIRTUAL_ADDRESS_MAP   SetVirtualAddressMap;\r
+  EFI_CONVERT_POINTER           ConvertPointer;\r
+\r
+  //\r
+  // Variable services\r
+  //\r
+  EFI_GET_VARIABLE              GetVariable;\r
+  EFI_GET_NEXT_VARIABLE_NAME    GetNextVariableName;\r
+  EFI_SET_VARIABLE              SetVariable;\r
+\r
+  //\r
+  // Misc\r
+  //\r
+  EFI_GET_NEXT_HIGH_MONO_COUNT  GetNextHighMonotonicCount;\r
+  EFI_RESET_SYSTEM              ResetSystem;\r
+\r
+  //\r
+  // Framework extension to EFI 1.10 runtime table\r
+  // It was moved to a protocol to not conflict with UEFI 2.0\r
+  //\r
+  EFI_REPORT_STATUS_CODE        ReportStatusCode;\r
+} FRAMEWORK_EFI_RUNTIME_SERVICES;\r
+\r
+#define EFI_EVENT_RUNTIME_CONTEXT       0x20000000\r
+#define EFI_EVENT_NOTIFY_SIGNAL_ALL     0x00000400\r
+#define EFI_EVENT_SIGNAL_READY_TO_BOOT  0x00000203\r
+#define EFI_EVENT_SIGNAL_LEGACY_BOOT    0x00000204\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
+} FRAMEWORK_MEDIA_FW_VOL_FILEPATH_DEVICE_PATH;\r
+\r
+\r
+//\r
+// Function prototype for invoking a function on an Application Processor\r
+// Used by both the SMM infrastructure and the MP Services Protocol\r
+//\r
+typedef\r
+VOID\r
+(EFIAPI *EFI_AP_PROCEDURE) (\r
+  IN  VOID                              *Buffer\r
+  );\r
+\r
+#endif\r
diff --git a/IntelFrameworkPkg/Include/Framework/FirmwareFileSystem.h b/IntelFrameworkPkg/Include/Framework/FirmwareFileSystem.h
new file mode 100644 (file)
index 0000000..c0acbc9
--- /dev/null
@@ -0,0 +1,31 @@
+/** @file\r
+  This file defines the data structures that comprise the FFS file system.\r
+\r
+  Copyright (c) 2007, Intel Corporation\r
+  All rights reserved. This program and the accompanying materials\r
+  are licensed and made available under the terms and conditions of the BSD License\r
+  which accompanies this distribution.  The full text of the license may be found at\r
+  http://opensource.org/licenses/bsd-license.php\r
+\r
+  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:  FrameworkFirmwareFileSystem.h\r
+\r
+  @par Revision Reference:\r
+  These definitions are from Firmware File System Spec 0.9 but not in PI specs.\r
+\r
+**/\r
+\r
+#ifndef _FRAMEWORK_FIRMWARE_FILE_SYSTEM_H_\r
+#define _FRAMEWORK_FIRMWARE_FILE_SYSTEM_H_\r
+\r
+#include <PiPei.h>\r
+\r
+typedef UINT16                      EFI_FFS_FILE_TAIL;\r
+\r
+#define FFS_ATTRIB_TAIL_PRESENT     0x01\r
+#define FFS_ATTRIB_RECOVERY         0x02\r
+#define FFS_ATTRIB_HEADER_EXTENSION 0x04\r
+\r
+#endif\r
diff --git a/IntelFrameworkPkg/Include/Framework/FirmwareVolumeHeader.h b/IntelFrameworkPkg/Include/Framework/FirmwareVolumeHeader.h
new file mode 100644 (file)
index 0000000..aac032d
--- /dev/null
@@ -0,0 +1,84 @@
+/** @file\r
+  Defines data structure that is the volume header found at the beginning of\r
+  all firmware volumes that are either memory mapped, or have an\r
+  associated FirmwareVolumeBlock protocol.\r
+\r
+  Copyright (c) 2006, Intel Corporation\r
+  All rights reserved. This program and the accompanying materials\r
+  are licensed and made available under the terms and conditions of the BSD License\r
+  which accompanies this distribution.  The full text of the license may be found at\r
+  http://opensource.org/licenses/bsd-license.php\r
+\r
+  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:  FirmwareVolumeHeader.h\r
+\r
+  @par Revision Reference:\r
+  These definitions are from Firmware Volume Block Spec 0.9.\r
+\r
+**/\r
+\r
+#ifndef __EFI_FIRMWARE_VOLUME_HEADER_H__\r
+#define __EFI_FIRMWARE_VOLUME_HEADER_H__\r
+\r
+#include <FrameworkPei.h>\r
+\r
+//\r
+// Firmware Volume Block Attributes definition\r
+//\r
+typedef UINT32  EFI_FVB_ATTRIBUTES;\r
+\r
+//\r
+// Firmware Volume Block Attributes bit definitions\r
+//\r
+#define EFI_FVB_READ_DISABLED_CAP   0x00000001\r
+#define EFI_FVB_READ_ENABLED_CAP    0x00000002\r
+#define EFI_FVB_READ_STATUS         0x00000004\r
+\r
+#define EFI_FVB_WRITE_DISABLED_CAP  0x00000008\r
+#define EFI_FVB_WRITE_ENABLED_CAP   0x00000010\r
+#define EFI_FVB_WRITE_STATUS        0x00000020\r
+\r
+#define EFI_FVB_LOCK_CAP            0x00000040\r
+#define EFI_FVB_LOCK_STATUS         0x00000080\r
+\r
+#define EFI_FVB_STICKY_WRITE        0x00000200\r
+#define EFI_FVB_MEMORY_MAPPED       0x00000400\r
+#define EFI_FVB_ERASE_POLARITY      0x00000800\r
+\r
+#define EFI_FVB_ALIGNMENT_CAP       0x00008000\r
+#define EFI_FVB_ALIGNMENT_2         0x00010000\r
+#define EFI_FVB_ALIGNMENT_4         0x00020000\r
+#define EFI_FVB_ALIGNMENT_8         0x00040000\r
+#define EFI_FVB_ALIGNMENT_16        0x00080000\r
+#define EFI_FVB_ALIGNMENT_32        0x00100000\r
+#define EFI_FVB_ALIGNMENT_64        0x00200000\r
+#define EFI_FVB_ALIGNMENT_128       0x00400000\r
+#define EFI_FVB_ALIGNMENT_256       0x00800000\r
+#define EFI_FVB_ALIGNMENT_512       0x01000000\r
+#define EFI_FVB_ALIGNMENT_1K        0x02000000\r
+#define EFI_FVB_ALIGNMENT_2K        0x04000000\r
+#define EFI_FVB_ALIGNMENT_4K        0x08000000\r
+#define EFI_FVB_ALIGNMENT_8K        0x10000000\r
+#define EFI_FVB_ALIGNMENT_16K       0x20000000\r
+#define EFI_FVB_ALIGNMENT_32K       0x40000000\r
+#define EFI_FVB_ALIGNMENT_64K       0x80000000\r
+\r
+#define EFI_FVB_CAPABILITIES  (EFI_FVB_READ_DISABLED_CAP | \\r
+                              EFI_FVB_READ_ENABLED_CAP | \\r
+                              EFI_FVB_WRITE_DISABLED_CAP | \\r
+                              EFI_FVB_WRITE_ENABLED_CAP | \\r
+                              EFI_FVB_LOCK_CAP \\r
+                              )\r
+\r
+#define EFI_TEST_FFS_ATTRIBUTES_BIT(FvbAttributes, TestAttributes, Bit) \\r
+    ( \\r
+      (BOOLEAN) ( \\r
+          (FvbAttributes & EFI_FVB_ERASE_POLARITY) ? (((~TestAttributes) & Bit) == Bit) : ((TestAttributes & Bit) == Bit) \\r
+        ) \\r
+    )\r
+\r
+#define EFI_FVB_STATUS    (EFI_FVB_READ_STATUS | EFI_FVB_WRITE_STATUS | EFI_FVB_LOCK_STATUS)\r
+\r
+#endif\r
diff --git a/IntelFrameworkPkg/Include/Framework/FirmwareVolumeImageFormat.h b/IntelFrameworkPkg/Include/Framework/FirmwareVolumeImageFormat.h
new file mode 100644 (file)
index 0000000..9b4e3b6
--- /dev/null
@@ -0,0 +1,43 @@
+/** @file\r
+  This file defines the data structures that are architecturally defined for file\r
+  images loaded via the FirmwareVolume protocol.  The Firmware Volume specification\r
+  is the basis for these definitions.\r
+\r
+  Copyright (c) 2006, Intel Corporation                                                         \r
+  All rights reserved. This program and the accompanying materials                          \r
+  are licensed and made available under the terms and conditions of the BSD License         \r
+  which accompanies this distribution.  The full text of the license may be found at        \r
+  http://opensource.org/licenses/bsd-license.php                                            \r
+\r
+  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:  FrameworkFimrwareVolumeImageFormat.h\r
+\r
+  @par Revision Reference:\r
+  These definitions are from Firmware Volume Spec 0.9.\r
+\r
+**/\r
+\r
+#ifndef __FRAMEWORK_FIRMWARE_VOLUME_IMAGE_FORMAT_H__\r
+#define __FRAMEWORK_FIRMWARE_VOLUME_IMAGE_FORMAT_H__\r
+\r
+//\r
+// Bit values for AuthenticationStatus\r
+//\r
+#define EFI_AGGREGATE_AUTH_STATUS_PLATFORM_OVERRIDE 0x000001\r
+#define EFI_AGGREGATE_AUTH_STATUS_IMAGE_SIGNED      0x000002\r
+#define EFI_AGGREGATE_AUTH_STATUS_NOT_TESTED        0x000004\r
+#define EFI_AGGREGATE_AUTH_STATUS_TEST_FAILED       0x000008\r
+#define EFI_AGGREGATE_AUTH_STATUS_ALL               0x00000f\r
+\r
+#define EFI_LOCAL_AUTH_STATUS_PLATFORM_OVERRIDE     0x010000\r
+#define EFI_LOCAL_AUTH_STATUS_IMAGE_SIGNED          0x020000\r
+#define EFI_LOCAL_AUTH_STATUS_NOT_TESTED            0x040000\r
+#define EFI_LOCAL_AUTH_STATUS_TEST_FAILED           0x080000\r
+#define EFI_LOCAL_AUTH_STATUS_ALL                   0x0f0000\r
+\r
+\r
+#define EFI_FV_FILETYPE_ALL                         0x00\r
+\r
+#endif\r
diff --git a/IntelFrameworkPkg/Include/Framework/FrameworkDxeCis.h b/IntelFrameworkPkg/Include/Framework/FrameworkDxeCis.h
deleted file mode 100644 (file)
index 0b7ffdf..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-/** @file\r
-  Include file that supportes Framework extension to the EFI 1.10 spec.\r
-\r
-  This include file must only contain things defined in the Framework\r
-  specifications. If a code construct is defined in the Framework specification\r
-  it must be included by this include file.\r
-\r
-  Copyright (c) 2007, Intel Corporation\r
-  All rights reserved. This program and the accompanying materials\r
-  are licensed and made available under the terms and conditions of the BSD License\r
-  which accompanies this distribution.  The full text of the license may be found at\r
-  http://opensource.org/licenses/bsd-license.php\r
-\r
-  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:    FrameworkDxeCis.h\r
-\r
-**/\r
-\r
-#ifndef _FRAMEWORK_DXE_CIS_H_\r
-#define _FRAMEWORK_DXE_CIS_H_\r
-\r
-#include <PiDxe.h>\r
-#include <Common/FrameworkStatusCode.h>\r
-#include <Protocol/StatusCode.h>\r
-\r
-//\r
-// Function prototype for invoking a function on an Application Processor\r
-// Used by both the SMM infrastructure and the MP Services Protocol\r
-//\r
-typedef\r
-VOID\r
-(EFIAPI *EFI_AP_PROCEDURE) (\r
-  IN  VOID                              *Buffer\r
-  );\r
-\r
-typedef struct {\r
-  EFI_TABLE_HEADER              Hdr;\r
-\r
-  //\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
-\r
-  //\r
-  // Virtual memory services\r
-  //\r
-  EFI_SET_VIRTUAL_ADDRESS_MAP   SetVirtualAddressMap;\r
-  EFI_CONVERT_POINTER           ConvertPointer;\r
-\r
-  //\r
-  // Variable services\r
-  //\r
-  EFI_GET_VARIABLE              GetVariable;\r
-  EFI_GET_NEXT_VARIABLE_NAME    GetNextVariableName;\r
-  EFI_SET_VARIABLE              SetVariable;\r
-\r
-  //\r
-  // Misc\r
-  //\r
-  EFI_GET_NEXT_HIGH_MONO_COUNT  GetNextHighMonotonicCount;\r
-  EFI_RESET_SYSTEM              ResetSystem;\r
-\r
-  //\r
-  // Framework extension to EFI 1.10 runtime table\r
-  // It was moved to a protocol to not conflict with UEFI 2.0\r
-  //\r
-  EFI_REPORT_STATUS_CODE        ReportStatusCode;\r
-} FRAMEWORK_EFI_RUNTIME_SERVICES;\r
-\r
-#define EFI_EVENT_RUNTIME_CONTEXT       0x20000000\r
-#define EFI_EVENT_NOTIFY_SIGNAL_ALL     0x00000400\r
-#define EFI_EVENT_SIGNAL_READY_TO_BOOT  0x00000203\r
-#define EFI_EVENT_SIGNAL_LEGACY_BOOT    0x00000204\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
-} FRAMEWORK_MEDIA_FW_VOL_FILEPATH_DEVICE_PATH;\r
-\r
-\r
-//\r
-// Function prototype for invoking a function on an Application Processor\r
-// Used by both the SMM infrastructure and the MP Services Protocol\r
-//\r
-typedef\r
-VOID\r
-(EFIAPI *EFI_AP_PROCEDURE) (\r
-  IN  VOID                              *Buffer\r
-  );\r
-\r
-#endif\r
diff --git a/IntelFrameworkPkg/Include/Framework/FrameworkFirmwareFileSystem.h b/IntelFrameworkPkg/Include/Framework/FrameworkFirmwareFileSystem.h
deleted file mode 100644 (file)
index c0acbc9..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/** @file\r
-  This file defines the data structures that comprise the FFS file system.\r
-\r
-  Copyright (c) 2007, Intel Corporation\r
-  All rights reserved. This program and the accompanying materials\r
-  are licensed and made available under the terms and conditions of the BSD License\r
-  which accompanies this distribution.  The full text of the license may be found at\r
-  http://opensource.org/licenses/bsd-license.php\r
-\r
-  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:  FrameworkFirmwareFileSystem.h\r
-\r
-  @par Revision Reference:\r
-  These definitions are from Firmware File System Spec 0.9 but not in PI specs.\r
-\r
-**/\r
-\r
-#ifndef _FRAMEWORK_FIRMWARE_FILE_SYSTEM_H_\r
-#define _FRAMEWORK_FIRMWARE_FILE_SYSTEM_H_\r
-\r
-#include <PiPei.h>\r
-\r
-typedef UINT16                      EFI_FFS_FILE_TAIL;\r
-\r
-#define FFS_ATTRIB_TAIL_PRESENT     0x01\r
-#define FFS_ATTRIB_RECOVERY         0x02\r
-#define FFS_ATTRIB_HEADER_EXTENSION 0x04\r
-\r
-#endif\r
diff --git a/IntelFrameworkPkg/Include/Framework/FrameworkFirmwareVolumeHeader.h b/IntelFrameworkPkg/Include/Framework/FrameworkFirmwareVolumeHeader.h
deleted file mode 100644 (file)
index 1f584fe..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-/** @file\r
-  Defines data structure that is the volume header found at the beginning of\r
-  all firmware volumes that are either memory mapped, or have an\r
-  associated FirmwareVolumeBlock protocol.\r
-\r
-  Copyright (c) 2006, Intel Corporation                                                         \r
-  All rights reserved. This program and the accompanying materials                          \r
-  are licensed and made available under the terms and conditions of the BSD License         \r
-  which accompanies this distribution.  The full text of the license may be found at        \r
-  http://opensource.org/licenses/bsd-license.php                                            \r
-\r
-  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:  FirmwareVolumeHeader.h\r
-\r
-  @par Revision Reference:\r
-  These definitions are from Firmware Volume Block Spec 0.9.\r
-\r
-**/\r
-\r
-#ifndef __EFI_FIRMWARE_VOLUME_HEADER_H__\r
-#define __EFI_FIRMWARE_VOLUME_HEADER_H__\r
-\r
-//\r
-// Firmware Volume Block Attributes definition\r
-//\r
-typedef UINT32  EFI_FVB_ATTRIBUTES;\r
-\r
-//\r
-// Firmware Volume Block Attributes bit definitions\r
-//\r
-#define EFI_FVB_READ_DISABLED_CAP   0x00000001\r
-#define EFI_FVB_READ_ENABLED_CAP    0x00000002\r
-#define EFI_FVB_READ_STATUS         0x00000004\r
-\r
-#define EFI_FVB_WRITE_DISABLED_CAP  0x00000008\r
-#define EFI_FVB_WRITE_ENABLED_CAP   0x00000010\r
-#define EFI_FVB_WRITE_STATUS        0x00000020\r
-\r
-#define EFI_FVB_LOCK_CAP            0x00000040\r
-#define EFI_FVB_LOCK_STATUS         0x00000080\r
-\r
-#define EFI_FVB_STICKY_WRITE        0x00000200\r
-#define EFI_FVB_MEMORY_MAPPED       0x00000400\r
-#define EFI_FVB_ERASE_POLARITY      0x00000800\r
-\r
-#define EFI_FVB_ALIGNMENT_CAP       0x00008000\r
-#define EFI_FVB_ALIGNMENT_2         0x00010000\r
-#define EFI_FVB_ALIGNMENT_4         0x00020000\r
-#define EFI_FVB_ALIGNMENT_8         0x00040000\r
-#define EFI_FVB_ALIGNMENT_16        0x00080000\r
-#define EFI_FVB_ALIGNMENT_32        0x00100000\r
-#define EFI_FVB_ALIGNMENT_64        0x00200000\r
-#define EFI_FVB_ALIGNMENT_128       0x00400000\r
-#define EFI_FVB_ALIGNMENT_256       0x00800000\r
-#define EFI_FVB_ALIGNMENT_512       0x01000000\r
-#define EFI_FVB_ALIGNMENT_1K        0x02000000\r
-#define EFI_FVB_ALIGNMENT_2K        0x04000000\r
-#define EFI_FVB_ALIGNMENT_4K        0x08000000\r
-#define EFI_FVB_ALIGNMENT_8K        0x10000000\r
-#define EFI_FVB_ALIGNMENT_16K       0x20000000\r
-#define EFI_FVB_ALIGNMENT_32K       0x40000000\r
-#define EFI_FVB_ALIGNMENT_64K       0x80000000\r
-\r
-#define EFI_FVB_CAPABILITIES  (EFI_FVB_READ_DISABLED_CAP | \\r
-                              EFI_FVB_READ_ENABLED_CAP | \\r
-                              EFI_FVB_WRITE_DISABLED_CAP | \\r
-                              EFI_FVB_WRITE_ENABLED_CAP | \\r
-                              EFI_FVB_LOCK_CAP \\r
-                              )\r
-\r
-#define EFI_TEST_FFS_ATTRIBUTES_BIT(FvbAttributes, TestAttributes, Bit) \\r
-    ( \\r
-      (BOOLEAN) ( \\r
-          (FvbAttributes & EFI_FVB_ERASE_POLARITY) ? (((~TestAttributes) & Bit) == Bit) : ((TestAttributes & Bit) == Bit) \\r
-        ) \\r
-    )\r
-\r
-#define EFI_FVB_STATUS    (EFI_FVB_READ_STATUS | EFI_FVB_WRITE_STATUS | EFI_FVB_LOCK_STATUS)\r
-\r
-#endif\r
diff --git a/IntelFrameworkPkg/Include/Framework/FrameworkFirmwareVolumeImageFormat.h b/IntelFrameworkPkg/Include/Framework/FrameworkFirmwareVolumeImageFormat.h
deleted file mode 100644 (file)
index 9b4e3b6..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/** @file\r
-  This file defines the data structures that are architecturally defined for file\r
-  images loaded via the FirmwareVolume protocol.  The Firmware Volume specification\r
-  is the basis for these definitions.\r
-\r
-  Copyright (c) 2006, Intel Corporation                                                         \r
-  All rights reserved. This program and the accompanying materials                          \r
-  are licensed and made available under the terms and conditions of the BSD License         \r
-  which accompanies this distribution.  The full text of the license may be found at        \r
-  http://opensource.org/licenses/bsd-license.php                                            \r
-\r
-  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:  FrameworkFimrwareVolumeImageFormat.h\r
-\r
-  @par Revision Reference:\r
-  These definitions are from Firmware Volume Spec 0.9.\r
-\r
-**/\r
-\r
-#ifndef __FRAMEWORK_FIRMWARE_VOLUME_IMAGE_FORMAT_H__\r
-#define __FRAMEWORK_FIRMWARE_VOLUME_IMAGE_FORMAT_H__\r
-\r
-//\r
-// Bit values for AuthenticationStatus\r
-//\r
-#define EFI_AGGREGATE_AUTH_STATUS_PLATFORM_OVERRIDE 0x000001\r
-#define EFI_AGGREGATE_AUTH_STATUS_IMAGE_SIGNED      0x000002\r
-#define EFI_AGGREGATE_AUTH_STATUS_NOT_TESTED        0x000004\r
-#define EFI_AGGREGATE_AUTH_STATUS_TEST_FAILED       0x000008\r
-#define EFI_AGGREGATE_AUTH_STATUS_ALL               0x00000f\r
-\r
-#define EFI_LOCAL_AUTH_STATUS_PLATFORM_OVERRIDE     0x010000\r
-#define EFI_LOCAL_AUTH_STATUS_IMAGE_SIGNED          0x020000\r
-#define EFI_LOCAL_AUTH_STATUS_NOT_TESTED            0x040000\r
-#define EFI_LOCAL_AUTH_STATUS_TEST_FAILED           0x080000\r
-#define EFI_LOCAL_AUTH_STATUS_ALL                   0x0f0000\r
-\r
-\r
-#define EFI_FV_FILETYPE_ALL                         0x00\r
-\r
-#endif\r
diff --git a/IntelFrameworkPkg/Include/Framework/FrameworkHob.h b/IntelFrameworkPkg/Include/Framework/FrameworkHob.h
deleted file mode 100644 (file)
index cdc419d..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/** @file\r
-  This file defines the data structures per HOB specification v0.9.\r
-\r
-  Copyright (c) 2007, Intel Corporation\r
-  All rights reserved. This program and the accompanying materials\r
-  are licensed and made available under the terms and conditions of the BSD License\r
-  which accompanies this distribution.  The full text of the license may be found at\r
-  http://opensource.org/licenses/bsd-license.php\r
-\r
-  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:  FrameworkFirmwareFileSystem.h\r
-\r
-  @par Revision Reference:\r
-  These definitions are from HOB Spec 0.9 but not adopted by PI specs.\r
-\r
-**/\r
-\r
-#ifndef _FRAMEWORK_HOB_H_\r
-#define _FRAMEWORK_HOB_H_\r
-\r
-#include <PiPei.h>\r
-\r
-//\r
-// Capsule volume HOB -- identical to a firmware volume\r
-//\r
-#define EFI_HOB_TYPE_CV 0x0008\r
-\r
-typedef struct {\r
-  EFI_HOB_GENERIC_HEADER  Header;\r
-  EFI_PHYSICAL_ADDRESS    BaseAddress;\r
-  UINT64                  Length;\r
-} EFI_HOB_CAPSULE_VOLUME;\r
-\r
-#endif\r
diff --git a/IntelFrameworkPkg/Include/Framework/FrameworkLegacy16.h b/IntelFrameworkPkg/Include/Framework/FrameworkLegacy16.h
deleted file mode 100644 (file)
index 7f80c8a..0000000
+++ /dev/null
@@ -1,431 +0,0 @@
-/** @file\r
-  API between 16-bit Legacy BIOS and EFI\r
-\r
-  We need to figure out what the 16-bit code is going to use to\r
-  represent these data structures. Is a pointer SEG:OFF or 32-bit...\r
-\r
-  Copyright (c) 2007, Intel Corporation\r
-  All rights reserved. This program and the accompanying materials\r
-  are licensed and made available under the terms and conditions of the BSD License\r
-  which accompanies this distribution.  The full text of the license may be found at\r
-  http://opensource.org/licenses/bsd-license.php\r
-\r
-  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:  FrameworkLegacy16.h\r
-\r
-  @par Revision Reference:\r
-  These definitions are from Compatibility Support Module Spec Version 0.96.\r
-\r
-**/\r
-\r
-#ifndef _FRAMEWORK_LEGACY_16_H_\r
-#define _FRAMEWORK_LEGACY_16_H_\r
-\r
-#include <Base.h>\r
-\r
-//\r
-// All structures defined in this header file are packed on byte boundary\r
-//\r
-#pragma pack(1)\r
-\r
-typedef UINT8 SERIAL_MODE;\r
-typedef UINT8 PARALLEL_MODE;\r
-\r
-///////////////////////////////////////////////////////////////////////////////\r
-// EFI_COMPATIBILITY16_TABLE is located at a 16-byte boundary starting with the\r
-// signature "$EFI"\r
-///////////////////////////////////////////////////////////////////////////////\r
-\r
-#define EFI_COMPATIBILITY16_TABLE_SIGNATURE EFI_SIGNATURE_32('$', 'E', 'F', 'I')\r
-\r
-typedef struct {\r
-  UINT32  Signature;      // "$EFI"\r
-  UINT8   TableChecksum;\r
-  UINT8   TableLength;\r
-  UINT8   EfiMajorRevision;\r
-  UINT8   EfiMinorRevision;\r
-  UINT8   TableMajorRevision;\r
-  UINT8   TableMinorRevision;\r
-  UINT16  Reserved;\r
-  UINT16  Compatibility16CallSegment;\r
-  UINT16  Compatibility16CallOffset;\r
-  UINT16  PnPInstallationCheckSegment;\r
-  UINT16  PnPInstallationCheckOffset;\r
-  UINT32  EfiSystemTable; // The physical address of EFI_SYSTEM_TABLE\r
-  UINT32  OemIdStringPointer;\r
-  UINT32  AcpiRsdPtrPointer;\r
-  UINT16  OemRevision;\r
-  UINT32  E820Pointer;\r
-  UINT32  E820Length;\r
-  UINT32  IrqRoutingTablePointer;\r
-  UINT32  IrqRoutingTableLength;\r
-  UINT32  MpTablePtr;\r
-  UINT32  MpTableLength;\r
-  UINT16  OemIntSegment;\r
-  UINT16  OemIntOffset;\r
-  UINT16  Oem32Segment;\r
-  UINT16  Oem32Offset;\r
-  UINT16  Oem16Segment;\r
-  UINT16  Oem16Offset;\r
-  UINT16  TpmSegment;\r
-  UINT16  TpmOffset;\r
-  UINT32  IbvPointer;\r
-  UINT32  PciExpressBase;\r
-  UINT8   LastPciBus;\r
-} EFI_COMPATIBILITY16_TABLE;\r
-\r
-///////////////////////////////////////////////////////////////////////////////\r
-// Functions provided by the CSM binary\r
-///////////////////////////////////////////////////////////////////////////////\r
-typedef enum {\r
-  Legacy16InitializeYourself    = 0x0000,\r
-  Legacy16UpdateBbs             = 0x0001,\r
-  Legacy16PrepareToBoot         = 0x0002,\r
-  Legacy16Boot                  = 0x0003,\r
-  Legacy16RetrieveLastBootDevice= 0x0004,\r
-  Legacy16DispatchOprom         = 0x0005,\r
-  Legacy16GetTableAddress       = 0x0006,\r
-  Legacy16SetKeyboardLeds       = 0x0007,\r
-  Legacy16InstallPciHandler     = 0x0008\r
-} EFI_COMPATIBILITY_FUNCTIONS;\r
-\r
-///////////////////////////////////////////////////////////////////////////////\r
-// EFI_TO_COMPATIBILITY16_INIT_TABLE\r
-///////////////////////////////////////////////////////////////////////////////\r
-typedef struct {\r
-  UINT32  BiosLessThan1MB;\r
-  UINT32  HiPmmMemory;\r
-  UINT32  HiPmmMemorySizeInBytes;\r
-  UINT16  ReverseThunkCallSegment;\r
-  UINT16  ReverseThunkCallOffset;\r
-  UINT32  NumberE820Entries;\r
-  UINT32  OsMemoryAbove1Mb;\r
-  UINT32  ThunkStart;\r
-  UINT32  ThunkSizeInBytes;\r
-  UINT32  LowPmmMemory;\r
-  UINT32  LowPmmMemorySizeInBytes;\r
-} EFI_TO_COMPATIBILITY16_INIT_TABLE;\r
-\r
-///////////////////////////////////////////////////////////////////////////////\r
-// EFI_TO_COMPATIBILITY16_BOOT_TABLE\r
-///////////////////////////////////////////////////////////////////////////////\r
-\r
-typedef UINT8 SERIAL_MODE;\r
-typedef UINT8 PARALLEL_MODE;\r
-\r
-//\r
-// DEVICE_PRODUCER_SERIAL & its modes\r
-//\r
-typedef struct {\r
-  UINT16      Address;\r
-  UINT8       Irq;\r
-  SERIAL_MODE Mode;\r
-} DEVICE_PRODUCER_SERIAL;\r
-\r
-#define DEVICE_SERIAL_MODE_NORMAL               0x00\r
-#define DEVICE_SERIAL_MODE_IRDA                 0x01\r
-#define DEVICE_SERIAL_MODE_ASK_IR               0x02\r
-#define DEVICE_SERIAL_MODE_DUPLEX_HALF          0x00\r
-#define DEVICE_SERIAL_MODE_DUPLEX_FULL          0x10\r
-\r
-//\r
-// DEVICE_PRODUCER_PARALLEL & its modes\r
-//\r
-typedef struct {\r
-  UINT16        Address;\r
-  UINT8         Irq;\r
-  UINT8         Dma;\r
-  PARALLEL_MODE Mode;\r
-} DEVICE_PRODUCER_PARALLEL;\r
-\r
-#define DEVICE_PARALLEL_MODE_MODE_OUTPUT_ONLY   0x00\r
-#define DEVICE_PARALLEL_MODE_MODE_BIDIRECTIONAL 0x01\r
-#define DEVICE_PARALLEL_MODE_MODE_EPP           0x02\r
-#define DEVICE_PARALLEL_MODE_MODE_ECP           0x03\r
-\r
-//\r
-// DEVICE_PRODUCER_FLOPPY\r
-//\r
-typedef struct {\r
-  UINT16  Address;\r
-  UINT8   Irq;\r
-  UINT8   Dma;\r
-  UINT8   NumberOfFloppy;\r
-} DEVICE_PRODUCER_FLOPPY;\r
-\r
-//\r
-// LEGACY_DEVICE_FLAGS\r
-//\r
-typedef struct {\r
-  UINT32  A20Kybd : 1;\r
-  UINT32  A20Port90 : 1;\r
-  UINT32  Reserved : 30;\r
-} LEGACY_DEVICE_FLAGS;\r
-\r
-//\r
-// DEVICE_PRODUCER_DATA_HEADER\r
-//\r
-typedef struct {\r
-  DEVICE_PRODUCER_SERIAL    Serial[4];\r
-  DEVICE_PRODUCER_PARALLEL  Parallel[3];\r
-  DEVICE_PRODUCER_FLOPPY    Floppy;\r
-  UINT8                     MousePresent;\r
-  LEGACY_DEVICE_FLAGS       Flags;\r
-} DEVICE_PRODUCER_DATA_HEADER;\r
-\r
-//\r
-// ATAPI_IDENTIFY\r
-//\r
-typedef struct {\r
-  UINT16  Raw[256];\r
-} ATAPI_IDENTIFY;\r
-\r
-//\r
-// HDD_INFO & its status\r
-//\r
-typedef struct {\r
-  UINT16          Status;\r
-  UINT32          Bus;\r
-  UINT32          Device;\r
-  UINT32          Function;\r
-  UINT16          CommandBaseAddress;\r
-  UINT16          ControlBaseAddress;\r
-  UINT16          BusMasterAddress;\r
-  UINT8           HddIrq;\r
-  ATAPI_IDENTIFY  IdentifyDrive[2];\r
-} HDD_INFO;\r
-\r
-#define HDD_PRIMARY               0x01\r
-#define HDD_SECONDARY             0x02\r
-#define HDD_MASTER_ATAPI_CDROM    0x04\r
-#define HDD_SLAVE_ATAPI_CDROM     0x08\r
-#define HDD_MASTER_IDE            0x20\r
-#define HDD_SLAVE_IDE             0x40\r
-#define HDD_MASTER_ATAPI_ZIPDISK  0x10\r
-#define HDD_SLAVE_ATAPI_ZIPDISK   0x80\r
-\r
-//\r
-// BBS_STATUS_FLAGS\r
-//\r
-typedef struct {\r
-  UINT16  OldPosition : 4;\r
-  UINT16  Reserved1 : 4;\r
-  UINT16  Enabled : 1;\r
-  UINT16  Failed : 1;\r
-  UINT16  MediaPresent : 2;\r
-  UINT16  Reserved2 : 4;\r
-} BBS_STATUS_FLAGS;\r
-\r
-//\r
-// BBS_TABLE, device type values & boot priority values\r
-//\r
-typedef struct {\r
-  UINT16            BootPriority;\r
-  UINT32            Bus;\r
-  UINT32            Device;\r
-  UINT32            Function;\r
-  UINT8             Class;\r
-  UINT8             SubClass;\r
-  UINT16            MfgStringOffset;\r
-  UINT16            MfgStringSegment;\r
-  UINT16            DeviceType;\r
-  BBS_STATUS_FLAGS  StatusFlags;\r
-  UINT16            BootHandlerOffset;\r
-  UINT16            BootHandlerSegment;\r
-  UINT16            DescStringOffset;\r
-  UINT16            DescStringSegment;\r
-  UINT32            InitPerReserved;\r
-  UINT32            AdditionalIrq13Handler;\r
-  UINT32            AdditionalIrq18Handler;\r
-  UINT32            AdditionalIrq19Handler;\r
-  UINT32            AdditionalIrq40Handler;\r
-  UINT8             AssignedDriveNumber;\r
-  UINT32            AdditionalIrq41Handler;\r
-  UINT32            AdditionalIrq46Handler;\r
-  UINT32            IBV1;\r
-  UINT32            IBV2;\r
-} BBS_TABLE;\r
-\r
-#define BBS_FLOPPY        0x01\r
-#define BBS_HARDDISK      0x02\r
-#define BBS_CDROM         0x03\r
-#define BBS_PCMCIA        0x04\r
-#define BBS_USB           0x05\r
-#define BBS_EMBED_NETWORK 0x06\r
-#define BBS_BEV_DEVICE    0x80\r
-#define BBS_UNKNOWN       0xff\r
-\r
-#define BBS_DO_NOT_BOOT_FROM    0xFFFC\r
-#define BBS_LOWEST_PRIORITY     0xFFFD\r
-#define BBS_UNPRIORITIZED_ENTRY 0xFFFE\r
-#define BBS_IGNORE_ENTRY        0xFFFF\r
-\r
-//\r
-// SMM_ATTRIBUTES & relating type, port and data size constants\r
-//\r
-typedef struct {\r
-  UINT16  Type : 3;\r
-  UINT16  PortGranularity : 3;\r
-  UINT16  DataGranularity : 3;\r
-  UINT16  Reserved : 7;\r
-} SMM_ATTRIBUTES;\r
-\r
-#define STANDARD_IO       0x00\r
-#define STANDARD_MEMORY   0x01\r
-\r
-#define PORT_SIZE_8       0x00\r
-#define PORT_SIZE_16      0x01\r
-#define PORT_SIZE_32      0x02\r
-#define PORT_SIZE_64      0x03\r
-\r
-#define DATA_SIZE_8       0x00\r
-#define DATA_SIZE_16      0x01\r
-#define DATA_SIZE_32      0x02\r
-#define DATA_SIZE_64      0x03\r
-\r
-//\r
-// SMM_FUNCTION & relating constants\r
-//\r
-typedef struct {\r
-  UINT16  Function : 15;\r
-  UINT16  Owner : 1;\r
-} SMM_FUNCTION;\r
-\r
-#define INT15_D042        0x0000\r
-#define GET_USB_BOOT_INFO 0x0001\r
-#define DMI_PNP_50_57     0x0002\r
-\r
-#define STANDARD_OWNER    0x0\r
-#define OEM_OWNER         0x1\r
-\r
-//\r
-// SMM_ENTRY\r
-//\r
-// This structure assumes both port and data sizes are 1. SmmAttribute must be\r
-// properly to reflect that assumption.\r
-//\r
-typedef struct {\r
-  SMM_ATTRIBUTES  SmmAttributes;\r
-  SMM_FUNCTION    SmmFunction;\r
-  UINT8           SmmPort;\r
-  UINT8           SmmData;\r
-} SMM_ENTRY;\r
-\r
-//\r
-// SMM_TABLE\r
-//\r
-typedef struct {\r
-  UINT16    NumSmmEntries;\r
-  SMM_ENTRY SmmEntry;\r
-} SMM_TABLE;\r
-\r
-//\r
-// UDC_ATTRIBUTES\r
-//\r
-typedef struct {\r
-  UINT8 DirectoryServiceValidity : 1;\r
-  UINT8 RabcaUsedFlag : 1;\r
-  UINT8 ExecuteHddDiagnosticsFlag : 1;\r
-  UINT8 Reserved : 5;\r
-} UDC_ATTRIBUTES;\r
-\r
-//\r
-// UD_TABLE\r
-//\r
-typedef struct {\r
-  UDC_ATTRIBUTES  Attributes;\r
-  UINT8           DeviceNumber;\r
-  UINT8           BbsTableEntryNumberForParentDevice;\r
-  UINT8           BbsTableEntryNumberForBoot;\r
-  UINT8           BbsTableEntryNumberForHddDiag;\r
-  UINT8           BeerData[128];\r
-  UINT8           ServiceAreaData[64];\r
-} UD_TABLE;\r
-\r
-//\r
-// EFI_TO_COMPATIBILITY16_BOOT_TABLE\r
-//\r
-#define EFI_TO_LEGACY_MAJOR_VERSION 0x02\r
-#define EFI_TO_LEGACY_MINOR_VERSION 0x00\r
-#define MAX_IDE_CONTROLLER          8\r
-\r
-typedef struct {\r
-  UINT16                      MajorVersion;\r
-  UINT16                      MinorVersion;\r
-  UINT32                      AcpiTable;   // 4 GB range\r
-  UINT32                      SmbiosTable; // 4 GB range\r
-  UINT32                      SmbiosTableLength;\r
-\r
-  //\r
-  // Legacy SIO state\r
-  //\r
-  DEVICE_PRODUCER_DATA_HEADER SioData;\r
-\r
-  UINT16                      DevicePathType;\r
-  UINT16                      PciIrqMask;\r
-  UINT32                      NumberE820Entries;\r
-\r
-  //\r
-  // Controller & Drive Identify[2] per controller information\r
-  //\r
-  HDD_INFO                    HddInfo[MAX_IDE_CONTROLLER];\r
-\r
-  UINT32                      NumberBbsEntries;\r
-  UINT32                      BbsTable;\r
-  UINT32                      SmmTable;\r
-  UINT32                      OsMemoryAbove1Mb;\r
-  UINT32                      UnconventionalDeviceTable;\r
-} EFI_TO_COMPATIBILITY16_BOOT_TABLE;\r
-\r
-///////////////////////////////////////////////////////////////////////////////\r
-// EFI_DISPATCH_OPROM_TABLE\r
-///////////////////////////////////////////////////////////////////////////////\r
-\r
-typedef struct {\r
-  UINT16  PnPInstallationCheckSegment;\r
-  UINT16  PnPInstallationCheckOffset;\r
-  UINT16  OpromSegment;\r
-  UINT8   PciBus;\r
-  UINT8   PciDeviceFunction;\r
-  UINT8   NumberBbsEntries;\r
-  VOID    *BbsTablePointer; /// @bug: variable size on 32/64-bit systems.\r
-} EFI_DISPATCH_OPROM_TABLE;\r
-\r
-///////////////////////////////////////////////////////////////////////////////\r
-// EFI_LEGACY_INSTALL_PCI_HANDLER\r
-///////////////////////////////////////////////////////////////////////////////\r
-typedef struct {\r
-  UINT8   PciBus;\r
-  UINT8   PciDeviceFun;\r
-  UINT8   PciSegment;\r
-  UINT8   PciClass;\r
-  UINT8   PciSubclass;\r
-  UINT8   PciInterface;\r
-\r
-  //\r
-  // Primary section\r
-  //\r
-  UINT8   PrimaryIrq;\r
-  UINT8   PrimaryReserved;\r
-  UINT16  PrimaryControl;\r
-  UINT16  PrimaryBase;\r
-  UINT16  PrimaryBusMaster;\r
-\r
-  //\r
-  // Secondary Section\r
-  //\r
-  UINT8   SecondaryIrq;\r
-  UINT8   SecondaryReserved;\r
-  UINT16  SecondaryControl;\r
-  UINT16  SecondaryBase;\r
-  UINT16  SecondaryBusMaster;\r
-} EFI_LEGACY_INSTALL_PCI_HANDLER;\r
-\r
-//\r
-// Restore default pack value\r
-//\r
-#pragma pack()\r
-\r
-#endif\r
diff --git a/IntelFrameworkPkg/Include/Framework/FrameworkSmmCis.h b/IntelFrameworkPkg/Include/Framework/FrameworkSmmCis.h
deleted file mode 100644 (file)
index 6fe8e66..0000000
+++ /dev/null
@@ -1,480 +0,0 @@
-/** @file\r
-  Include file matches things in the Smm CIS spec.\r
-\r
-  Copyright (c) 2007, Intel Corporation\r
-  All rights reserved. This program and the accompanying materials\r
-  are licensed and made available under the terms and conditions of the BSD License\r
-  which accompanies this distribution.  The full text of the license may be found at\r
-  http://opensource.org/licenses/bsd-license.php\r
-\r
-  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:  FrameworkSmmCis.h\r
-\r
-  @par Revision Reference:\r
-  Version 0.9.\r
-\r
-**/\r
-\r
-#ifndef _FRAMEWORK_SMM_CIS_H_\r
-#define _FRAMEWORK_SMM_CIS_H_\r
-\r
-#include <Common/FrameworkDxeCis.h>\r
-\r
-#define EFI_SMM_CPU_IO_GUID \\r
-  { \\r
-    0x5f439a0b, 0x45d8, 0x4682, {0xa4, 0xf4, 0xf0, 0x57, 0x6b, 0x51, 0x34, 0x41 } \\r
-  }\r
-\r
-typedef struct _EFI_SMM_SYSTEM_TABLE      EFI_SMM_SYSTEM_TABLE;\r
-typedef struct _EFI_SMM_CPU_IO_INTERFACE  EFI_SMM_CPU_IO_INTERFACE;\r
-\r
-\r
-//\r
-// SMM Base specification constant and types\r
-//\r
-#define SMM_SMST_SIGNATURE            EFI_SIGNATURE_32 ('S', 'M', 'S', 'T')\r
-#define EFI_SMM_SYSTEM_TABLE_REVISION (0 << 16) | (0x09)\r
-\r
-//\r
-// *******************************************************\r
-// EFI_SMM_IO_WIDTH\r
-// *******************************************************\r
-//\r
-typedef enum {\r
-  SMM_IO_UINT8  = 0,\r
-  SMM_IO_UINT16 = 1,\r
-  SMM_IO_UINT32 = 2,\r
-  SMM_IO_UINT64 = 3\r
-} EFI_SMM_IO_WIDTH;\r
-\r
-/**\r
-  Provides the basic memory and I/O interfaces that are used to\r
-  abstract accesses to devices.\r
-\r
-  @param  This             The EFI_SMM_CPU_IO_INTERFACE instance.\r
-  @param  Width            Signifies the width of the I/O operations.\r
-  @param  Address          The base address of the I/O operations.\r
-  @param  Count            The number of I/O operations to perform.\r
-  @param  Buffer           For read operations, the destination buffer to store the results.\r
-                           For write operations, the source buffer from which to write data.\r
-\r
-  @retval EFI_SUCCESS           The data was read from or written to the device.\r
-  @retval EFI_UNSUPPORTED       The Address is not valid for this system.\r
-  @retval EFI_INVALID_PARAMETER Width or Count, or both, were invalid.\r
-  @retval EFI_OUT_OF_RESOURCES  The request could not be completed due to a lack of resources.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SMM_CPU_IO) (\r
-  IN EFI_SMM_CPU_IO_INTERFACE         *This,\r
-  IN EFI_SMM_IO_WIDTH                 Width,\r
-  IN UINT64                           Address,\r
-  IN UINTN                            Count,\r
-  IN OUT VOID                         *Buffer\r
-  );\r
-\r
-typedef struct {\r
-  EFI_SMM_CPU_IO  Read;\r
-  EFI_SMM_CPU_IO  Write;\r
-} EFI_SMM_IO_ACCESS;\r
-\r
-struct _EFI_SMM_CPU_IO_INTERFACE {\r
-  EFI_SMM_IO_ACCESS Mem;\r
-  EFI_SMM_IO_ACCESS Io;\r
-};\r
-\r
-/**\r
-  Allocates pool memory from SMRAM for IA-32 or runtime memory for\r
-  the Itanium processor family.\r
-\r
-  @param  PoolType         The type of pool to allocate.The only supported type is EfiRuntimeServicesData\r
-  @param  Size             The number of bytes to allocate from the pool.\r
-  @param  Buffer           A pointer to a pointer to the allocated buffer if the call\r
-                           succeeds; undefined otherwise.\r
-\r
-  @retval EFI_SUCCESS           The requested number of bytes was allocated.\r
-  @retval EFI_OUT_OF_RESOURCES  The pool requested could not be allocated.\r
-  @retval EFI_UNSUPPORTED       In runtime.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SMMCORE_ALLOCATE_POOL) (\r
-  IN EFI_MEMORY_TYPE                PoolType,\r
-  IN UINTN                          Size,\r
-  OUT VOID                          **Buffer\r
-  );\r
-\r
-/**\r
-  Returns pool memory to the system.\r
-\r
-  @param  Buffer           Pointer to the buffer to free.\r
-\r
-  @retval EFI_SUCCESS           The memory was returned to the system.\r
-  @retval EFI_INVALID_PARAMETER Buffer was invalid.\r
-  @retval EFI_UNSUPPORTED       In runtime.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SMMCORE_FREE_POOL) (\r
-  IN VOID                   *Buffer\r
-  );\r
-\r
-/**\r
-  Allocates memory pages from the system.\r
-\r
-  @param  Type             The type of allocation to perform.\r
-  @param  MemoryType       The only supported type is EfiRuntimeServicesData\r
-  @param  NumberofPages    The number of contiguous 4 KB pages to allocate\r
-  @param  Memory           Pointer to a physical address. On input, the way in which\r
-                           the address is used depends on the value of Type. On output, the address\r
-                           is set to the base of the page range that was allocated.\r
-\r
-  @retval EFI_SUCCESS           The requested pages were allocated.\r
-  @retval EFI_OUT_OF_RESOURCES  The pages requested could not be allocated.\r
-  @retval EFI_NOT_FOUND         The requested pages could not be found.\r
-  @retval EFI_INVALID_PARAMETER Type is not AllocateAnyPages or AllocateMaxAddress\r
-                                or AllocateAddress. Or MemoryType is in the range EfiMaxMemoryType..0x7FFFFFFF.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SMMCORE_ALLOCATE_PAGES) (\r
-  IN EFI_ALLOCATE_TYPE      Type,\r
-  IN EFI_MEMORY_TYPE        MemoryType,\r
-  IN UINTN                  NumberOfPages,\r
-  OUT EFI_PHYSICAL_ADDRESS  *Memory\r
-  );\r
-\r
-/**\r
-  Frees memory pages for the system.\r
-\r
-  @param  Memory           The base physical address of the pages to be freed\r
-  @param  NumberOfPages    The number of contiguous 4 KB pages to free.\r
-\r
-  @retval EFI_SUCCESS           The requested memory pages were freed.\r
-  @retval EFI_INVALID_PARAMETER Memory is not a page-aligned address or NumberOfPages is invalid.\r
-  @retval EFI_NOT_FOUND         The requested memory pages were not allocated with SmmAllocatePages().\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SMMCORE_FREE_PAGES) (\r
-  IN EFI_PHYSICAL_ADDRESS   Memory,\r
-  IN UINTN                  NumberOfPages\r
-  );\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SMM_STARTUP_THIS_AP) (\r
-  IN  EFI_AP_PROCEDURE                    Procedure,\r
-  IN  UINTN                               CpuNumber,\r
-  IN  OUT VOID                            *ProcArguments OPTIONAL\r
-  );\r
-\r
-typedef struct {\r
-  UINT8                 Reserved1[248];\r
-  UINT32                SMBASE;\r
-  UINT32                SMMRevId;\r
-  UINT16                IORestart;\r
-  UINT16                AutoHALTRestart;\r
-  UINT8                 Reserved2[164];\r
-  UINT32                ES;\r
-  UINT32                CS;\r
-  UINT32                SS;\r
-  UINT32                DS;\r
-  UINT32                FS;\r
-  UINT32                GS;\r
-  UINT32                LDTBase;\r
-  UINT32                TR;\r
-  UINT32                DR7;\r
-  UINT32                DR6;\r
-  UINT32                EAX;\r
-  UINT32                ECX;\r
-  UINT32                EDX;\r
-  UINT32                EBX;\r
-  UINT32                ESP;\r
-  UINT32                EBP;\r
-  UINT32                ESI;\r
-  UINT32                EDI;\r
-  UINT32                EIP;\r
-  UINT32                EFLAGS;\r
-  UINT32                CR3;\r
-  UINT32                CR0;\r
-} EFI_SMI_CPU_SAVE_STATE;\r
-\r
-typedef struct {\r
-  UINT64   reserved;\r
-  UINT64   r1;\r
-  UINT64   r2;\r
-  UINT64   r3;\r
-  UINT64   r4;\r
-  UINT64   r5;\r
-  UINT64   r6;\r
-  UINT64   r7;\r
-  UINT64   r8;\r
-  UINT64   r9;\r
-  UINT64   r10;\r
-  UINT64   r11;\r
-  UINT64   r12;\r
-  UINT64   r13;\r
-  UINT64   r14;\r
-  UINT64   r15;\r
-  UINT64   r16;\r
-  UINT64   r17;\r
-  UINT64   r18;\r
-  UINT64   r19;\r
-  UINT64   r20;\r
-  UINT64   r21;\r
-  UINT64   r22;\r
-  UINT64   r23;\r
-  UINT64   r24;\r
-  UINT64   r25;\r
-  UINT64   r26;\r
-  UINT64   r27;\r
-  UINT64   r28;\r
-  UINT64   r29;\r
-  UINT64   r30;\r
-  UINT64   r31;\r
-\r
-  UINT64   pr;\r
-\r
-  UINT64   b0;\r
-  UINT64   b1;\r
-  UINT64   b2;\r
-  UINT64   b3;\r
-  UINT64   b4;\r
-  UINT64   b5;\r
-  UINT64   b6;\r
-  UINT64   b7;\r
-\r
-  // application registers\r
-  UINT64   ar_rsc;\r
-  UINT64   ar_bsp;\r
-  UINT64   ar_bspstore;\r
-  UINT64   ar_rnat;\r
-\r
-  UINT64   ar_fcr;\r
-\r
-  UINT64   ar_eflag;\r
-  UINT64   ar_csd;\r
-  UINT64   ar_ssd;\r
-  UINT64   ar_cflg;\r
-  UINT64   ar_fsr;\r
-  UINT64   ar_fir;\r
-  UINT64   ar_fdr;\r
-\r
-  UINT64   ar_ccv;\r
-\r
-  UINT64   ar_unat;\r
-\r
-  UINT64   ar_fpsr;\r
-\r
-  UINT64   ar_pfs;\r
-  UINT64   ar_lc;\r
-  UINT64   ar_ec;\r
-\r
-  // control registers\r
-  UINT64   cr_dcr;\r
-  UINT64   cr_itm;\r
-  UINT64   cr_iva;\r
-  UINT64   cr_pta;\r
-  UINT64   cr_ipsr;\r
-  UINT64   cr_isr;\r
-  UINT64   cr_iip;\r
-  UINT64   cr_ifa;\r
-  UINT64   cr_itir;\r
-  UINT64   cr_iipa;\r
-  UINT64   cr_ifs;\r
-  UINT64   cr_iim;\r
-  UINT64   cr_iha;\r
-\r
-  // debug registers\r
-  UINT64   dbr0;\r
-  UINT64   dbr1;\r
-  UINT64   dbr2;\r
-  UINT64   dbr3;\r
-  UINT64   dbr4;\r
-  UINT64   dbr5;\r
-  UINT64   dbr6;\r
-  UINT64   dbr7;\r
-\r
-  UINT64   ibr0;\r
-  UINT64   ibr1;\r
-  UINT64   ibr2;\r
-  UINT64   ibr3;\r
-  UINT64   ibr4;\r
-  UINT64   ibr5;\r
-  UINT64   ibr6;\r
-  UINT64   ibr7;\r
-\r
-  // virtual registers\r
-  UINT64   int_nat;         // nat bits for R1-R31\r
-\r
-} EFI_PMI_SYSTEM_CONTEXT;\r
-\r
-typedef union {\r
-  EFI_SMI_CPU_SAVE_STATE     Ia32SaveState;\r
-  EFI_PMI_SYSTEM_CONTEXT     ItaniumSaveState;\r
-} EFI_SMM_CPU_SAVE_STATE;\r
-\r
-typedef struct {\r
-  UINT16                Fcw;\r
-  UINT16                Fsw;\r
-  UINT16                Ftw;\r
-  UINT16                Opcode;\r
-  UINT32                Eip;\r
-  UINT16                Cs;\r
-  UINT16                Rsvd1;\r
-  UINT32                DataOffset;\r
-  UINT16                Ds;\r
-  UINT8                 Rsvd2[10];\r
-  UINT8                 St0Mm0[10], Rsvd3[6];\r
-  UINT8                 St0Mm1[10], Rsvd4[6];\r
-  UINT8                 St0Mm2[10], Rsvd5[6];\r
-  UINT8                 St0Mm3[10], Rsvd6[6];\r
-  UINT8                 St0Mm4[10], Rsvd7[6];\r
-  UINT8                 St0Mm5[10], Rsvd8[6];\r
-  UINT8                 St0Mm6[10], Rsvd9[6];\r
-  UINT8                 St0Mm7[10], Rsvd10[6];\r
-  UINT8                 Rsvd11[22*16];\r
-} EFI_SMI_OPTIONAL_FPSAVE_STATE;\r
-\r
-typedef struct {\r
-  UINT64   f2[2];\r
-  UINT64   f3[2];\r
-  UINT64   f4[2];\r
-  UINT64   f5[2];\r
-  UINT64   f6[2];\r
-  UINT64   f7[2];\r
-  UINT64   f8[2];\r
-  UINT64   f9[2];\r
-  UINT64   f10[2];\r
-  UINT64   f11[2];\r
-  UINT64   f12[2];\r
-  UINT64   f13[2];\r
-  UINT64   f14[2];\r
-  UINT64   f15[2];\r
-  UINT64   f16[2];\r
-  UINT64   f17[2];\r
-  UINT64   f18[2];\r
-  UINT64   f19[2];\r
-  UINT64   f20[2];\r
-  UINT64   f21[2];\r
-  UINT64   f22[2];\r
-  UINT64   f23[2];\r
-  UINT64   f24[2];\r
-  UINT64   f25[2];\r
-  UINT64   f26[2];\r
-  UINT64   f27[2];\r
-  UINT64   f28[2];\r
-  UINT64   f29[2];\r
-  UINT64   f30[2];\r
-  UINT64   f31[2];\r
-} EFI_PMI_OPTIONAL_FLOATING_POINT_CONTEXT;\r
-\r
-typedef union {\r
-  EFI_SMI_OPTIONAL_FPSAVE_STATE             Ia32FpSave;\r
-  EFI_PMI_OPTIONAL_FLOATING_POINT_CONTEXT   ItaniumFpSave;\r
-} EFI_SMM_FLOATING_POINT_SAVE_STATE;\r
-\r
-/**\r
-  This function is the main entry point for an SMM handler dispatch\r
-  or communicate-based callback.\r
-\r
-  @param  SmmImageHandle   A unique value returned by the SMM infrastructure\r
-                           in response to registration for a communicate-based callback or dispatch.\r
-  @param  CommunicationBuffer\r
-                           An optional buffer that will be populated\r
-                           by the SMM infrastructure in response to a non-SMM agent (preboot or runtime)\r
-                           invoking the EFI_SMM_BASE_PROTOCOL.Communicate() service.\r
-  @param  SourceSize       If CommunicationBuffer is non-NULL, this field\r
-                           indicates the size of the data payload in this buffer.\r
-\r
-  @return Status Code\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SMM_HANDLER_ENTRY_POINT) (\r
-  IN EFI_HANDLE             SmmImageHandle,\r
-  IN OUT VOID               *CommunicationBuffer OPTIONAL,\r
-  IN OUT UINTN              *SourceSize OPTIONAL\r
-  );\r
-\r
-/**\r
-  The SmmInstallConfigurationTable() function is used to maintain the list\r
-  of configuration tables that are stored in the System Management System\r
-  Table.  The list is stored as an array of (GUID, Pointer) pairs.  The list\r
-  must be allocated from pool memory with PoolType set to EfiRuntimeServicesData.\r
-\r
-  @param  SystemTable      A pointer to the SMM System Table.\r
-  @param  Guid             A pointer to the GUID for the entry to add, update, or remove.\r
-  @param  Table            A pointer to the buffer of the table to add.\r
-  @param  TableSize        The size of the table to install.\r
-\r
-  @retval EFI_SUCCESS           The (Guid, Table) pair was added, updated, or removed.\r
-  @retval EFI_INVALID_PARAMETER Guid is not valid.\r
-  @retval EFI_NOT_FOUND         An attempt was made to delete a non-existent entry.\r
-  @retval EFI_OUT_OF_RESOURCES  There is not enough memory available to complete the operation.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SMM_INSTALL_CONFIGURATION_TABLE) (\r
-  IN EFI_SMM_SYSTEM_TABLE         *SystemTable,\r
-  IN EFI_GUID                     *Guid,\r
-  IN VOID                         *Table,\r
-  IN UINTN                        TableSize\r
-  );\r
-\r
-//\r
-// System Management System Table (SMST)\r
-//\r
-struct _EFI_SMM_SYSTEM_TABLE {\r
-  EFI_TABLE_HEADER                    Hdr;\r
-\r
-  CHAR16                              *SmmFirmwareVendor;\r
-  UINT32                              SmmFirmwareRevision;\r
-\r
-  EFI_SMM_INSTALL_CONFIGURATION_TABLE SmmInstallConfigurationTable;\r
-\r
-  //\r
-  // I/O Services\r
-  //\r
-  EFI_GUID                            EfiSmmCpuIoGuid;\r
-  EFI_SMM_CPU_IO_INTERFACE            SmmIo;\r
-\r
-  //\r
-  // Runtime memory service\r
-  //\r
-  EFI_SMMCORE_ALLOCATE_POOL           SmmAllocatePool;\r
-  EFI_SMMCORE_FREE_POOL               SmmFreePool;\r
-  EFI_SMMCORE_ALLOCATE_PAGES          SmmAllocatePages;\r
-  EFI_SMMCORE_FREE_PAGES              SmmFreePages;\r
-\r
-  //\r
-  // MP service\r
-  //\r
-  EFI_SMM_STARTUP_THIS_AP             SmmStartupThisAp;\r
-\r
-  //\r
-  // CPU information records\r
-  //\r
-  UINTN                               CurrentlyExecutingCpu;\r
-  UINTN                               NumberOfCpus;\r
-  EFI_SMM_CPU_SAVE_STATE              *CpuSaveState;\r
-  EFI_SMM_FLOATING_POINT_SAVE_STATE   *CpuOptionalFloatingPointState;\r
-\r
-  //\r
-  // Extensibility table\r
-  //\r
-  UINTN                               NumberOfTableEntries;\r
-  EFI_CONFIGURATION_TABLE             *SmmConfigurationTable;\r
-};\r
-\r
-#endif\r
diff --git a/IntelFrameworkPkg/Include/Framework/FrameworkStatusCode.h b/IntelFrameworkPkg/Include/Framework/FrameworkStatusCode.h
deleted file mode 100644 (file)
index 6e997b6..0000000
+++ /dev/null
@@ -1,905 +0,0 @@
-/** @file\r
-  Status Code Definitions, according to Intel Platform Innovation Framework\r
-  for EFI Status Codes Specification\r
-\r
-  The file is divided into sections for ease of use.\r
-\r
-<pre>\r
-  Section:    Contents:\r
-  1           General Status Code Definitions\r
-  2           Class definitions\r
-  3           Computing Unit Subclasses, Progress and Error Codes\r
-  4           Peripheral Subclasses, Progress and Error Codes.\r
-  5           IO Bus Subclasses, Progress and Error Codes.\r
-  6           Software Subclasses, Progress and Error Codes.\r
-  7           Debug Codes\r
-</pre>\r
-\r
-  Copyright (c) 2007, Intel Corporation\r
-  All rights reserved. This program and the accompanying materials\r
-  are licensed and made available under the terms and conditions of the BSD License\r
-  which accompanies this distribution.  The full text of the license may be found at\r
-  http://opensource.org/licenses/bsd-license.php\r
-\r
-  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:  StatusCode.h\r
-\r
-  @par Revision Reference:\r
-  Version 0.92.\r
-\r
-**/\r
-\r
-#ifndef _FRAMEWORK_STATUS_CODE_H_\r
-#define _FRAMEWORK_STATUS_CODE_H_\r
-\r
-#include <PiPei.h>\r
-\r
-//\r
-// /////////////////////////////////////////////////////////////////////////////\r
-// Section 1\r
-////////////////////////////////////////////////////////////////////////////////\r
-\r
-//\r
-// Data Hub Status Code class record definition\r
-// This structure isn't adopted by PI, so is defined here.\r
-//\r
-typedef struct {\r
-  EFI_STATUS_CODE_TYPE  CodeType;\r
-  EFI_STATUS_CODE_VALUE Value;\r
-  UINT32                Instance;\r
-  EFI_GUID              CallerId;\r
-  EFI_STATUS_CODE_DATA  Data;\r
-} DATA_HUB_STATUS_CODE_DATA_RECORD;\r
-\r
-//\r
-// /////////////////////////////////////////////////////////////////////////////\r
-// Section 2\r
-///////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Class definitions\r
-// Values of 4-127 are reserved for future use by this\r
-// specification.\r
-// Values in the range 127-255 are reserved for OEM use.\r
-//\r
-#define EFI_COMPUTING_UNIT  0x00000000\r
-#define EFI_PERIPHERAL      0x01000000\r
-#define EFI_IO_BUS          0x02000000\r
-#define EFI_SOFTWARE        0x03000000\r
-\r
-//\r
-// General partitioning scheme for Progress and Error Codes are\r
-// 0x0000-0x0FFF  - Shared by all sub-classes in a given class\r
-// 0x1000-0x7FFF  - Subclass Specific\r
-// 0x8000-0xFFFF  - OEM specific\r
-//\r
-#define EFI_SUBCLASS_SPECIFIC 0x1000\r
-#define EFI_OEM_SPECIFIC      0x8000\r
-\r
-//\r
-// /////////////////////////////////////////////////////////////////////////////\r
-// Section 3\r
-///////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Computing Unit Subclass definitions.\r
-// Values of 8-127 are reserved for future use by this\r
-// specification.\r
-// Values of 128-255 are reserved for OEM use.\r
-//\r
-#define EFI_COMPUTING_UNIT_UNSPECIFIED        (EFI_COMPUTING_UNIT | 0x00000000)\r
-#define EFI_COMPUTING_UNIT_HOST_PROCESSOR     (EFI_COMPUTING_UNIT | 0x00010000)\r
-#define EFI_COMPUTING_UNIT_FIRMWARE_PROCESSOR (EFI_COMPUTING_UNIT | 0x00020000)\r
-#define EFI_COMPUTING_UNIT_IO_PROCESSOR       (EFI_COMPUTING_UNIT | 0x00030000)\r
-#define EFI_COMPUTING_UNIT_CACHE              (EFI_COMPUTING_UNIT | 0x00040000)\r
-#define EFI_COMPUTING_UNIT_MEMORY             (EFI_COMPUTING_UNIT | 0x00050000)\r
-#define EFI_COMPUTING_UNIT_CHIPSET            (EFI_COMPUTING_UNIT | 0x00060000)\r
-\r
-//\r
-// Computing Unit Class Progress Code definitions.\r
-// These are shared by all subclasses.\r
-//\r
-#define EFI_CU_PC_INIT_BEGIN  0x00000000\r
-#define EFI_CU_PC_INIT_END    0x00000001\r
-\r
-//\r
-// Computing Unit Unspecified Subclass Progress Code definitions.\r
-//\r
-//\r
-// Computing Unit Host Processor Subclass Progress Code definitions.\r
-//\r
-#define EFI_CU_HP_PC_POWER_ON_INIT          (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_CU_HP_PC_CACHE_INIT             (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-#define EFI_CU_HP_PC_RAM_INIT               (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
-#define EFI_CU_HP_PC_MEMORY_CONTROLLER_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000003)\r
-#define EFI_CU_HP_PC_IO_INIT                (EFI_SUBCLASS_SPECIFIC | 0x00000004)\r
-#define EFI_CU_HP_PC_BSP_SELECT             (EFI_SUBCLASS_SPECIFIC | 0x00000005)\r
-#define EFI_CU_HP_PC_BSP_RESELECT           (EFI_SUBCLASS_SPECIFIC | 0x00000006)\r
-#define EFI_CU_HP_PC_AP_INIT                (EFI_SUBCLASS_SPECIFIC | 0x00000007)\r
-#define EFI_CU_HP_PC_SMM_INIT               (EFI_SUBCLASS_SPECIFIC | 0x00000008)\r
-\r
-//\r
-// Computing Unit Firmware Processor Subclass Progress Code definitions.\r
-//\r
-//\r
-// Computing Unit IO Processor Subclass Progress Code definitions.\r
-//\r
-//\r
-// Computing Unit Cache Subclass Progress Code definitions.\r
-//\r
-#define EFI_CU_CACHE_PC_PRESENCE_DETECT (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_CU_CACHE_PC_CONFIGURATION   (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-\r
-//\r
-// Computing Unit Memory Subclass Progress Code definitions.\r
-//\r
-#define EFI_CU_MEMORY_PC_SPD_READ         (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_CU_MEMORY_PC_PRESENCE_DETECT  (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-#define EFI_CU_MEMORY_PC_TIMING           (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
-#define EFI_CU_MEMORY_PC_CONFIGURING      (EFI_SUBCLASS_SPECIFIC | 0x00000003)\r
-#define EFI_CU_MEMORY_PC_OPTIMIZING       (EFI_SUBCLASS_SPECIFIC | 0x00000004)\r
-#define EFI_CU_MEMORY_PC_INIT             (EFI_SUBCLASS_SPECIFIC | 0x00000005)\r
-#define EFI_CU_MEMORY_PC_TEST             (EFI_SUBCLASS_SPECIFIC | 0x00000006)\r
-\r
-//\r
-// Computing Unit Chipset Subclass Progress Code definitions.\r
-//\r
-//\r
-// Computing Unit Class Error Code definitions.\r
-// These are shared by all subclasses.\r
-//\r
-#define EFI_CU_EC_NON_SPECIFIC    0x00000000\r
-#define EFI_CU_EC_DISABLED        0x00000001\r
-#define EFI_CU_EC_NOT_SUPPORTED   0x00000002\r
-#define EFI_CU_EC_NOT_DETECTED    0x00000003\r
-#define EFI_CU_EC_NOT_CONFIGURED  0x00000004\r
-\r
-//\r
-// Computing Unit Unspecified Subclass Error Code definitions.\r
-//\r
-//\r
-// Computing Unit Host Processor Subclass Error Code definitions.\r
-//\r
-#define EFI_CU_HP_EC_INVALID_TYPE         (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_CU_HP_EC_INVALID_SPEED        (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-#define EFI_CU_HP_EC_MISMATCH             (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
-#define EFI_CU_HP_EC_TIMER_EXPIRED        (EFI_SUBCLASS_SPECIFIC | 0x00000003)\r
-#define EFI_CU_HP_EC_SELF_TEST            (EFI_SUBCLASS_SPECIFIC | 0x00000004)\r
-#define EFI_CU_HP_EC_INTERNAL             (EFI_SUBCLASS_SPECIFIC | 0x00000005)\r
-#define EFI_CU_HP_EC_THERMAL              (EFI_SUBCLASS_SPECIFIC | 0x00000006)\r
-#define EFI_CU_HP_EC_LOW_VOLTAGE          (EFI_SUBCLASS_SPECIFIC | 0x00000007)\r
-#define EFI_CU_HP_EC_HIGH_VOLTAGE         (EFI_SUBCLASS_SPECIFIC | 0x00000008)\r
-#define EFI_CU_HP_EC_CACHE                (EFI_SUBCLASS_SPECIFIC | 0x00000009)\r
-#define EFI_CU_HP_EC_MICROCODE_UPDATE     (EFI_SUBCLASS_SPECIFIC | 0x0000000A)\r
-#define EFI_CU_HP_EC_CORRECTABLE          (EFI_SUBCLASS_SPECIFIC | 0x0000000B)\r
-#define EFI_CU_HP_EC_UNCORRECTABLE        (EFI_SUBCLASS_SPECIFIC | 0x0000000C)\r
-#define EFI_CU_HP_EC_NO_MICROCODE_UPDATE  (EFI_SUBCLASS_SPECIFIC | 0x0000000D)\r
-\r
-//\r
-// Computing Unit Firmware Processor Subclass Error Code definitions.\r
-//\r
-#define EFI_CU_FP_EC_HARD_FAIL  (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_CU_FP_EC_SOFT_FAIL  (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-#define EFI_CU_FP_EC_COMM_ERROR (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
-\r
-//\r
-// Computing Unit IO Processor Subclass Error Code definitions.\r
-//\r
-//\r
-// Computing Unit Cache Subclass Error Code definitions.\r
-//\r
-#define EFI_CU_CACHE_EC_INVALID_TYPE  (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_CU_CACHE_EC_INVALID_SPEED (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-#define EFI_CU_CACHE_EC_INVALID_SIZE  (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
-#define EFI_CU_CACHE_EC_MISMATCH      (EFI_SUBCLASS_SPECIFIC | 0x00000003)\r
-\r
-//\r
-// Computing Unit Memory Subclass Error Code definitions.\r
-//\r
-#define EFI_CU_MEMORY_EC_INVALID_TYPE   (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_CU_MEMORY_EC_INVALID_SPEED  (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-#define EFI_CU_MEMORY_EC_CORRECTABLE    (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
-#define EFI_CU_MEMORY_EC_UNCORRECTABLE  (EFI_SUBCLASS_SPECIFIC | 0x00000003)\r
-#define EFI_CU_MEMORY_EC_SPD_FAIL       (EFI_SUBCLASS_SPECIFIC | 0x00000004)\r
-#define EFI_CU_MEMORY_EC_INVALID_SIZE   (EFI_SUBCLASS_SPECIFIC | 0x00000005)\r
-#define EFI_CU_MEMORY_EC_MISMATCH       (EFI_SUBCLASS_SPECIFIC | 0x00000006)\r
-#define EFI_CU_MEMORY_EC_S3_RESUME_FAIL (EFI_SUBCLASS_SPECIFIC | 0x00000007)\r
-#define EFI_CU_MEMORY_EC_UPDATE_FAIL    (EFI_SUBCLASS_SPECIFIC | 0x00000008)\r
-#define EFI_CU_MEMORY_EC_NONE_DETECTED  (EFI_SUBCLASS_SPECIFIC | 0x00000009)\r
-#define EFI_CU_MEMORY_EC_NONE_USEFUL    (EFI_SUBCLASS_SPECIFIC | 0x0000000A)\r
-\r
-//\r
-// Computing Unit Chipset Subclass Error Code definitions.\r
-//\r
-\r
-///////////////////////////////////////////////////////////////////////////////\r
-// Section 4\r
-///////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Peripheral Subclass definitions.\r
-// Values of 12-127 are reserved for future use by this\r
-// specification.\r
-// Values of 128-255 are reserved for OEM use.\r
-//\r
-#define EFI_PERIPHERAL_UNSPECIFIED      (EFI_PERIPHERAL | 0x00000000)\r
-#define EFI_PERIPHERAL_KEYBOARD         (EFI_PERIPHERAL | 0x00010000)\r
-#define EFI_PERIPHERAL_MOUSE            (EFI_PERIPHERAL | 0x00020000)\r
-#define EFI_PERIPHERAL_LOCAL_CONSOLE    (EFI_PERIPHERAL | 0x00030000)\r
-#define EFI_PERIPHERAL_REMOTE_CONSOLE   (EFI_PERIPHERAL | 0x00040000)\r
-#define EFI_PERIPHERAL_SERIAL_PORT      (EFI_PERIPHERAL | 0x00050000)\r
-#define EFI_PERIPHERAL_PARALLEL_PORT    (EFI_PERIPHERAL | 0x00060000)\r
-#define EFI_PERIPHERAL_FIXED_MEDIA      (EFI_PERIPHERAL | 0x00070000)\r
-#define EFI_PERIPHERAL_REMOVABLE_MEDIA  (EFI_PERIPHERAL | 0x00080000)\r
-#define EFI_PERIPHERAL_AUDIO_INPUT      (EFI_PERIPHERAL | 0x00090000)\r
-#define EFI_PERIPHERAL_AUDIO_OUTPUT     (EFI_PERIPHERAL | 0x000A0000)\r
-#define EFI_PERIPHERAL_LCD_DEVICE       (EFI_PERIPHERAL | 0x000B0000)\r
-#define EFI_PERIPHERAL_NETWORK          (EFI_PERIPHERAL | 0x000C0000)\r
-\r
-//\r
-// Peripheral Class Progress Code definitions.\r
-// These are shared by all subclasses.\r
-//\r
-#define EFI_P_PC_INIT             0x00000000\r
-#define EFI_P_PC_RESET            0x00000001\r
-#define EFI_P_PC_DISABLE          0x00000002\r
-#define EFI_P_PC_PRESENCE_DETECT  0x00000003\r
-#define EFI_P_PC_ENABLE           0x00000004\r
-#define EFI_P_PC_RECONFIG         0x00000005\r
-#define EFI_P_PC_DETECTED         0x00000006\r
-\r
-//\r
-// Peripheral Class Unspecified Subclass Progress Code definitions.\r
-//\r
-//\r
-// Peripheral Class Keyboard Subclass Progress Code definitions.\r
-//\r
-#define EFI_P_KEYBOARD_PC_CLEAR_BUFFER  (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_P_KEYBOARD_PC_SELF_TEST     (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-\r
-//\r
-// Peripheral Class Mouse Subclass Progress Code definitions.\r
-//\r
-#define EFI_P_MOUSE_PC_SELF_TEST  (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-\r
-//\r
-// Peripheral Class Local Console Subclass Progress Code definitions.\r
-//\r
-//\r
-// Peripheral Class Remote Console Subclass Progress Code definitions.\r
-//\r
-//\r
-// Peripheral Class Serial Port Subclass Progress Code definitions.\r
-//\r
-#define EFI_P_SERIAL_PORT_PC_CLEAR_BUFFER (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-\r
-//\r
-// Peripheral Class Parallel Port Subclass Progress Code definitions.\r
-//\r
-//\r
-// Peripheral Class Fixed Media Subclass Progress Code definitions.\r
-//\r
-//\r
-// Peripheral Class Removable Media Subclass Progress Code definitions.\r
-//\r
-//\r
-// Peripheral Class Audio Input Subclass Progress Code definitions.\r
-//\r
-//\r
-// Peripheral Class Audio Output Subclass Progress Code definitions.\r
-//\r
-//\r
-// Peripheral Class LCD Device Subclass Progress Code definitions.\r
-//\r
-//\r
-// Peripheral Class Network Subclass Progress Code definitions.\r
-//\r
-//\r
-// Peripheral Class Error Code definitions.\r
-// These are shared by all subclasses.\r
-//\r
-#define EFI_P_EC_NON_SPECIFIC       0x00000000\r
-#define EFI_P_EC_DISABLED           0x00000001\r
-#define EFI_P_EC_NOT_SUPPORTED      0x00000002\r
-#define EFI_P_EC_NOT_DETECTED       0x00000003\r
-#define EFI_P_EC_NOT_CONFIGURED     0x00000004\r
-#define EFI_P_EC_INTERFACE_ERROR    0x00000005\r
-#define EFI_P_EC_CONTROLLER_ERROR   0x00000006\r
-#define EFI_P_EC_INPUT_ERROR        0x00000007\r
-#define EFI_P_EC_OUTPUT_ERROR       0x00000008\r
-#define EFI_P_EC_RESOURCE_CONFLICT  0x00000009\r
-\r
-//\r
-// Peripheral Class Unspecified Subclass Error Code definitions.\r
-//\r
-//\r
-// Peripheral Class Keyboard Subclass Error Code definitions.\r
-//\r
-#define EFI_P_KEYBOARD_EC_LOCKED    (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_P_KEYBOARD_EC_STUCK_KEY (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-\r
-//\r
-// Peripheral Class Mouse Subclass Error Code definitions.\r
-//\r
-#define EFI_P_MOUSE_EC_LOCKED (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-\r
-//\r
-// Peripheral Class Local Console Subclass Error Code definitions.\r
-//\r
-//\r
-// Peripheral Class Remote Console Subclass Error Code definitions.\r
-//\r
-//\r
-// Peripheral Class Serial Port Subclass Error Code definitions.\r
-//\r
-//\r
-// Peripheral Class Parallel Port Subclass Error Code definitions.\r
-//\r
-//\r
-// Peripheral Class Fixed Media Subclass Error Code definitions.\r
-//\r
-//\r
-// Peripheral Class Removable Media Subclass Error Code definitions.\r
-//\r
-//\r
-// Peripheral Class Audio Input Subclass Error Code definitions.\r
-//\r
-//\r
-// Peripheral Class Audio Output Subclass Error Code definitions.\r
-//\r
-//\r
-// Peripheral Class LCD Device Subclass Error Code definitions.\r
-//\r
-//\r
-// Peripheral Class Network Subclass Error Code definitions.\r
-//\r
-\r
-///////////////////////////////////////////////////////////////////////////////\r
-// Section 5\r
-///////////////////////////////////////////////////////////////////////////////\r
-//\r
-// IO Bus Subclass definitions.\r
-// Values of 14-127 are reserved for future use by this\r
-// specification.\r
-// Values of 128-255 are reserved for OEM use.\r
-//\r
-#define EFI_IO_BUS_UNSPECIFIED  (EFI_IO_BUS | 0x00000000)\r
-#define EFI_IO_BUS_PCI          (EFI_IO_BUS | 0x00010000)\r
-#define EFI_IO_BUS_USB          (EFI_IO_BUS | 0x00020000)\r
-#define EFI_IO_BUS_IBA          (EFI_IO_BUS | 0x00030000)\r
-#define EFI_IO_BUS_AGP          (EFI_IO_BUS | 0x00040000)\r
-#define EFI_IO_BUS_PC_CARD      (EFI_IO_BUS | 0x00050000)\r
-#define EFI_IO_BUS_LPC          (EFI_IO_BUS | 0x00060000)\r
-#define EFI_IO_BUS_SCSI         (EFI_IO_BUS | 0x00070000)\r
-#define EFI_IO_BUS_ATA_ATAPI    (EFI_IO_BUS | 0x00080000)\r
-#define EFI_IO_BUS_FC           (EFI_IO_BUS | 0x00090000)\r
-#define EFI_IO_BUS_IP_NETWORK   (EFI_IO_BUS | 0x000A0000)\r
-#define EFI_IO_BUS_SMBUS        (EFI_IO_BUS | 0x000B0000)\r
-#define EFI_IO_BUS_I2C          (EFI_IO_BUS | 0x000C0000)\r
-\r
-//\r
-// IO Bus Class Progress Code definitions.\r
-// These are shared by all subclasses.\r
-//\r
-#define EFI_IOB_PC_INIT     0x00000000\r
-#define EFI_IOB_PC_RESET    0x00000001\r
-#define EFI_IOB_PC_DISABLE  0x00000002\r
-#define EFI_IOB_PC_DETECT   0x00000003\r
-#define EFI_IOB_PC_ENABLE   0x00000004\r
-#define EFI_IOB_PC_RECONFIG 0x00000005\r
-#define EFI_IOB_PC_HOTPLUG  0x00000006\r
-\r
-//\r
-// IO Bus Class Unspecified Subclass Progress Code definitions.\r
-//\r
-//\r
-// IO Bus Class PCI Subclass Progress Code definitions.\r
-//\r
-#define EFI_IOB_PCI_PC_BUS_ENUM   (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_IOB_PCI_PC_RES_ALLOC  (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-#define EFI_IOB_PCI_PC_HPC_INIT   (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
-\r
-//\r
-// IO Bus Class USB Subclass Progress Code definitions.\r
-//\r
-//\r
-// IO Bus Class IBA Subclass Progress Code definitions.\r
-//\r
-//\r
-// IO Bus Class AGP Subclass Progress Code definitions.\r
-//\r
-//\r
-// IO Bus Class PC Card Subclass Progress Code definitions.\r
-//\r
-//\r
-// IO Bus Class LPC Subclass Progress Code definitions.\r
-//\r
-//\r
-// IO Bus Class SCSI Subclass Progress Code definitions.\r
-//\r
-//\r
-// IO Bus Class ATA/ATAPI Subclass Progress Code definitions.\r
-//\r
-#define EFI_IOB_ATA_BUS_SMART_ENABLE          (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_IOB_ATA_BUS_SMART_DISABLE         (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-#define EFI_IOB_ATA_BUS_SMART_OVERTHRESHOLD   (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
-#define EFI_IOB_ATA_BUS_SMART_UNDERTHRESHOLD  (EFI_SUBCLASS_SPECIFIC | 0x00000003)\r
-\r
-//\r
-// IO Bus Class FC Subclass Progress Code definitions.\r
-//\r
-//\r
-// IO Bus Class IP Network Subclass Progress Code definitions.\r
-//\r
-//\r
-// IO Bus Class SMBUS Subclass Progress Code definitions.\r
-//\r
-//\r
-// IO Bus Class I2C Subclass Progress Code definitions.\r
-//\r
-//\r
-// IO Bus Class Error Code definitions.\r
-// These are shared by all subclasses.\r
-//\r
-#define EFI_IOB_EC_NON_SPECIFIC       0x00000000\r
-#define EFI_IOB_EC_DISABLED           0x00000001\r
-#define EFI_IOB_EC_NOT_SUPPORTED      0x00000002\r
-#define EFI_IOB_EC_NOT_DETECTED       0x00000003\r
-#define EFI_IOB_EC_NOT_CONFIGURED     0x00000004\r
-#define EFI_IOB_EC_INTERFACE_ERROR    0x00000005\r
-#define EFI_IOB_EC_CONTROLLER_ERROR   0x00000006\r
-#define EFI_IOB_EC_READ_ERROR         0x00000007\r
-#define EFI_IOB_EC_WRITE_ERROR        0x00000008\r
-#define EFI_IOB_EC_RESOURCE_CONFLICT  0x00000009\r
-\r
-//\r
-// IO Bus Class Unspecified Subclass Error Code definitions.\r
-//\r
-//\r
-// IO Bus Class PCI Subclass Error Code definitions.\r
-//\r
-#define EFI_IOB_PCI_EC_PERR (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_IOB_PCI_EC_SERR (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-\r
-//\r
-// IO Bus Class USB Subclass Error Code definitions.\r
-//\r
-//\r
-// IO Bus Class IBA Subclass Error Code definitions.\r
-//\r
-//\r
-// IO Bus Class AGP Subclass Error Code definitions.\r
-//\r
-//\r
-// IO Bus Class PC Card Subclass Error Code definitions.\r
-//\r
-//\r
-// IO Bus Class LPC Subclass Error Code definitions.\r
-//\r
-//\r
-// IO Bus Class SCSI Subclass Error Code definitions.\r
-//\r
-//\r
-// IO Bus Class ATA/ATAPI Subclass Error Code definitions.\r
-//\r
-#define EFI_IOB_ATA_BUS_SMART_NOTSUPPORTED  (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_IOB_ATA_BUS_SMART_DISABLED      (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-\r
-//\r
-// IO Bus Class FC Subclass Error Code definitions.\r
-//\r
-//\r
-// IO Bus Class IP Network Subclass Error Code definitions.\r
-//\r
-//\r
-// IO Bus Class SMBUS Subclass Error Code definitions.\r
-//\r
-//\r
-// IO Bus Class I2C Subclass Error Code definitions.\r
-//\r
-\r
-///////////////////////////////////////////////////////////////////////////////\r
-// Section 6\r
-///////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Software Subclass definitions.\r
-// Values of 14-127 are reserved for future use by this\r
-// specification.\r
-// Values of 128-255 are reserved for OEM use.\r
-//\r
-#define EFI_SOFTWARE_UNSPECIFIED          (EFI_SOFTWARE | 0x00000000)\r
-#define EFI_SOFTWARE_SEC                  (EFI_SOFTWARE | 0x00010000)\r
-#define EFI_SOFTWARE_PEI_CORE             (EFI_SOFTWARE | 0x00020000)\r
-#define EFI_SOFTWARE_PEI_MODULE           (EFI_SOFTWARE | 0x00030000)\r
-#define EFI_SOFTWARE_DXE_CORE             (EFI_SOFTWARE | 0x00040000)\r
-#define EFI_SOFTWARE_DXE_BS_DRIVER        (EFI_SOFTWARE | 0x00050000)\r
-#define EFI_SOFTWARE_DXE_RT_DRIVER        (EFI_SOFTWARE | 0x00060000)\r
-#define EFI_SOFTWARE_SMM_DRIVER           (EFI_SOFTWARE | 0x00070000)\r
-#define EFI_SOFTWARE_EFI_APPLICATION      (EFI_SOFTWARE | 0x00080000)\r
-#define EFI_SOFTWARE_EFI_OS_LOADER        (EFI_SOFTWARE | 0x00090000)\r
-#define EFI_SOFTWARE_RT                   (EFI_SOFTWARE | 0x000A0000)\r
-#define EFI_SOFTWARE_AL                   (EFI_SOFTWARE | 0x000B0000)\r
-#define EFI_SOFTWARE_EBC_EXCEPTION        (EFI_SOFTWARE | 0x000C0000)\r
-#define EFI_SOFTWARE_IA32_EXCEPTION       (EFI_SOFTWARE | 0x000D0000)\r
-#define EFI_SOFTWARE_IPF_EXCEPTION        (EFI_SOFTWARE | 0x000E0000)\r
-#define EFI_SOFTWARE_PEI_SERVICE          (EFI_SOFTWARE | 0x000F0000)\r
-#define EFI_SOFTWARE_EFI_BOOT_SERVICE     (EFI_SOFTWARE | 0x00100000)\r
-#define EFI_SOFTWARE_EFI_RUNTIME_SERVICE  (EFI_SOFTWARE | 0x00110000)\r
-#define EFI_SOFTWARE_EFI_DXE_SERVICE      (EFI_SOFTWARE | 0x00120000)\r
-#define EFI_SOFTWARE_X64_EXCEPTION        (EFI_SOFTWARE | 0x00130000)\r
-\r
-//\r
-// Software Class Progress Code definitions.\r
-// These are shared by all subclasses.\r
-//\r
-#define EFI_SW_PC_INIT                0x00000000\r
-#define EFI_SW_PC_LOAD                0x00000001\r
-#define EFI_SW_PC_INIT_BEGIN          0x00000002\r
-#define EFI_SW_PC_INIT_END            0x00000003\r
-#define EFI_SW_PC_AUTHENTICATE_BEGIN  0x00000004\r
-#define EFI_SW_PC_AUTHENTICATE_END    0x00000005\r
-#define EFI_SW_PC_INPUT_WAIT          0x00000006\r
-#define EFI_SW_PC_USER_SETUP          0x00000007\r
-\r
-//\r
-// Software Class Unspecified Subclass Progress Code definitions.\r
-//\r
-//\r
-// Software Class SEC Subclass Progress Code definitions.\r
-//\r
-#define EFI_SW_SEC_PC_ENTRY_POINT     (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_SW_SEC_PC_HANDOFF_TO_NEXT (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-\r
-//\r
-// Software Class PEI Core Subclass Progress Code definitions.\r
-//\r
-#define EFI_SW_PEI_CORE_PC_ENTRY_POINT      (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_SW_PEI_CORE_PC_HANDOFF_TO_NEXT  (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-#define EFI_SW_PEI_CORE_PC_RETURN_TO_LAST   (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
-\r
-//\r
-// Software Class PEI Module Subclass Progress Code definitions.\r
-//\r
-#define EFI_SW_PEIM_PC_RECOVERY_BEGIN (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_SW_PEIM_PC_CAPSULE_LOAD   (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-#define EFI_SW_PEIM_PC_CAPSULE_START  (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
-#define EFI_SW_PEIM_PC_RECOVERY_USER  (EFI_SUBCLASS_SPECIFIC | 0x00000003)\r
-#define EFI_SW_PEIM_PC_RECOVERY_AUTO  (EFI_SUBCLASS_SPECIFIC | 0x00000004)\r
-\r
-//\r
-// Software Class DXE Core Subclass Progress Code definitions.\r
-//\r
-#define EFI_SW_DXE_CORE_PC_ENTRY_POINT      (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_SW_DXE_CORE_PC_HANDOFF_TO_NEXT  (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-#define EFI_SW_DXE_CORE_PC_RETURN_TO_LAST   (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
-#define EFI_SW_DXE_CORE_PC_START_DRIVER     (EFI_SUBCLASS_SPECIFIC | 0x00000003)\r
-\r
-//\r
-// Software Class DXE BS Driver Subclass Progress Code definitions.\r
-//\r
-#define EFI_SW_DXE_BS_PC_LEGACY_OPROM_INIT            (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_SW_DXE_BS_PC_READY_TO_BOOT_EVENT          (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-#define EFI_SW_DXE_BS_PC_LEGACY_BOOT_EVENT            (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
-#define EFI_SW_DXE_BS_PC_EXIT_BOOT_SERVICES_EVENT     (EFI_SUBCLASS_SPECIFIC | 0x00000003)\r
-#define EFI_SW_DXE_BS_PC_VIRTUAL_ADDRESS_CHANGE_EVENT (EFI_SUBCLASS_SPECIFIC | 0x00000004)\r
-#define EFI_SW_DXE_BS_PC_BEGIN_CONNECTING_DRIVERS     (EFI_SUBCLASS_SPECIFIC | 0x00000005)\r
-#define EFI_SW_DXE_BS_PC_VERIFYING_PASSWORD           (EFI_SUBCLASS_SPECIFIC | 0x00000006)\r
-\r
-//\r
-// Software Class DXE RT Driver Subclass Progress Code definitions.\r
-//\r
-#define EFI_SW_DXE_RT_PC_S0 (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_SW_DXE_RT_PC_S1 (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-#define EFI_SW_DXE_RT_PC_S2 (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
-#define EFI_SW_DXE_RT_PC_S3 (EFI_SUBCLASS_SPECIFIC | 0x00000003)\r
-#define EFI_SW_DXE_RT_PC_S4 (EFI_SUBCLASS_SPECIFIC | 0x00000004)\r
-#define EFI_SW_DXE_RT_PC_S5 (EFI_SUBCLASS_SPECIFIC | 0x00000005)\r
-\r
-//\r
-// Software Class SMM Driver Subclass Progress Code definitions.\r
-//\r
-//\r
-// Software Class EFI Application Subclass Progress Code definitions.\r
-//\r
-//\r
-// Software Class EFI OS Loader Subclass Progress Code definitions.\r
-//\r
-//\r
-// Software Class EFI RT Subclass Progress Code definitions.\r
-//\r
-#define EFI_SW_RT_PC_ENTRY_POINT      (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_SW_RT_PC_HANDOFF_TO_NEXT  (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-#define EFI_SW_RT_PC_RETURN_TO_LAST   (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
-\r
-//\r
-// Software Class EFI AL Subclass Progress Code definitions.\r
-//\r
-#define EFI_SW_AL_PC_ENTRY_POINT    (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_SW_AL_PC_RETURN_TO_LAST (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-\r
-//\r
-// Software Class EBC Exception Subclass Progress Code definitions.\r
-//\r
-//\r
-// Software Class IA32 Exception Subclass Progress Code definitions.\r
-//\r
-//\r
-// Software Class X64 Exception Subclass Progress Code definitions.\r
-//\r
-//\r
-// Software Class IPF Exception Subclass Progress Code definitions.\r
-//\r
-//\r
-// Software Class PEI Services Subclass Progress Code definitions.\r
-//\r
-#define EFI_SW_PS_PC_INSTALL_PPI            (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_SW_PS_PC_REINSTALL_PPI          (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-#define EFI_SW_PS_PC_LOCATE_PPI             (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
-#define EFI_SW_PS_PC_NOTIFY_PPI             (EFI_SUBCLASS_SPECIFIC | 0x00000003)\r
-#define EFI_SW_PS_PC_GET_BOOT_MODE          (EFI_SUBCLASS_SPECIFIC | 0x00000004)\r
-#define EFI_SW_PS_PC_SET_BOOT_MODE          (EFI_SUBCLASS_SPECIFIC | 0x00000005)\r
-#define EFI_SW_PS_PC_GET_HOB_LIST           (EFI_SUBCLASS_SPECIFIC | 0x00000006)\r
-#define EFI_SW_PS_PC_CREATE_HOB             (EFI_SUBCLASS_SPECIFIC | 0x00000007)\r
-#define EFI_SW_PS_PC_FFS_FIND_NEXT_VOLUME   (EFI_SUBCLASS_SPECIFIC | 0x00000008)\r
-#define EFI_SW_PS_PC_FFS_FIND_NEXT_FILE     (EFI_SUBCLASS_SPECIFIC | 0x00000009)\r
-#define EFI_SW_PS_PC_FFS_FIND_SECTION_DATA  (EFI_SUBCLASS_SPECIFIC | 0x0000000A)\r
-#define EFI_SW_PS_PC_INSTALL_PEI_MEMORY     (EFI_SUBCLASS_SPECIFIC | 0x0000000B)\r
-#define EFI_SW_PS_PC_ALLOCATE_PAGES         (EFI_SUBCLASS_SPECIFIC | 0x0000000C)\r
-#define EFI_SW_PS_PC_ALLOCATE_POOL          (EFI_SUBCLASS_SPECIFIC | 0x0000000D)\r
-#define EFI_SW_PS_PC_COPY_MEM               (EFI_SUBCLASS_SPECIFIC | 0x0000000E)\r
-#define EFI_SW_PS_PC_SET_MEM                (EFI_SUBCLASS_SPECIFIC | 0x0000000F)\r
-\r
-//\r
-// Software Class EFI Boot Services Subclass Progress Code definitions.\r
-//\r
-#define EFI_SW_BS_PC_RAISE_TPL                      (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_SW_BS_PC_RESTORE_TPL                    (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-#define EFI_SW_BS_PC_ALLOCATE_PAGES                 (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
-#define EFI_SW_BS_PC_FREE_PAGES                     (EFI_SUBCLASS_SPECIFIC | 0x00000003)\r
-#define EFI_SW_BS_PC_GET_MEMORY_MAP                 (EFI_SUBCLASS_SPECIFIC | 0x00000004)\r
-#define EFI_SW_BS_PC_ALLOCATE_POOL                  (EFI_SUBCLASS_SPECIFIC | 0x00000005)\r
-#define EFI_SW_BS_PC_FREE_POOL                      (EFI_SUBCLASS_SPECIFIC | 0x00000006)\r
-#define EFI_SW_BS_PC_CREATE_EVENT                   (EFI_SUBCLASS_SPECIFIC | 0x00000007)\r
-#define EFI_SW_BS_PC_SET_TIMER                      (EFI_SUBCLASS_SPECIFIC | 0x00000008)\r
-#define EFI_SW_BS_PC_WAIT_FOR_EVENT                 (EFI_SUBCLASS_SPECIFIC | 0x00000009)\r
-#define EFI_SW_BS_PC_SIGNAL_EVENT                   (EFI_SUBCLASS_SPECIFIC | 0x0000000A)\r
-#define EFI_SW_BS_PC_CLOSE_EVENT                    (EFI_SUBCLASS_SPECIFIC | 0x0000000B)\r
-#define EFI_SW_BS_PC_CHECK_EVENT                    (EFI_SUBCLASS_SPECIFIC | 0x0000000C)\r
-#define EFI_SW_BS_PC_INSTALL_PROTOCOL_INTERFACE     (EFI_SUBCLASS_SPECIFIC | 0x0000000D)\r
-#define EFI_SW_BS_PC_REINSTALL_PROTOCOL_INTERFACE   (EFI_SUBCLASS_SPECIFIC | 0x0000000E)\r
-#define EFI_SW_BS_PC_UNINSTALL_PROTOCOL_INTERFACE   (EFI_SUBCLASS_SPECIFIC | 0x0000000F)\r
-#define EFI_SW_BS_PC_HANDLE_PROTOCOL                (EFI_SUBCLASS_SPECIFIC | 0x00000010)\r
-#define EFI_SW_BS_PC_PC_HANDLE_PROTOCOL             (EFI_SUBCLASS_SPECIFIC | 0x00000011)\r
-#define EFI_SW_BS_PC_REGISTER_PROTOCOL_NOTIFY       (EFI_SUBCLASS_SPECIFIC | 0x00000012)\r
-#define EFI_SW_BS_PC_LOCATE_HANDLE                  (EFI_SUBCLASS_SPECIFIC | 0x00000013)\r
-#define EFI_SW_BS_PC_INSTALL_CONFIGURATION_TABLE    (EFI_SUBCLASS_SPECIFIC | 0x00000014)\r
-#define EFI_SW_BS_PC_LOAD_IMAGE                     (EFI_SUBCLASS_SPECIFIC | 0x00000015)\r
-#define EFI_SW_BS_PC_START_IMAGE                    (EFI_SUBCLASS_SPECIFIC | 0x00000016)\r
-#define EFI_SW_BS_PC_EXIT                           (EFI_SUBCLASS_SPECIFIC | 0x00000017)\r
-#define EFI_SW_BS_PC_UNLOAD_IMAGE                   (EFI_SUBCLASS_SPECIFIC | 0x00000018)\r
-#define EFI_SW_BS_PC_EXIT_BOOT_SERVICES             (EFI_SUBCLASS_SPECIFIC | 0x00000019)\r
-#define EFI_SW_BS_PC_GET_NEXT_MONOTONIC_COUNT       (EFI_SUBCLASS_SPECIFIC | 0x0000001A)\r
-#define EFI_SW_BS_PC_STALL                          (EFI_SUBCLASS_SPECIFIC | 0x0000001B)\r
-#define EFI_SW_BS_PC_SET_WATCHDOG_TIMER             (EFI_SUBCLASS_SPECIFIC | 0x0000001C)\r
-#define EFI_SW_BS_PC_CONNECT_CONTROLLER             (EFI_SUBCLASS_SPECIFIC | 0x0000001D)\r
-#define EFI_SW_BS_PC_DISCONNECT_CONTROLLER          (EFI_SUBCLASS_SPECIFIC | 0x0000001E)\r
-#define EFI_SW_BS_PC_OPEN_PROTOCOL                  (EFI_SUBCLASS_SPECIFIC | 0x0000001F)\r
-#define EFI_SW_BS_PC_CLOSE_PROTOCOL                 (EFI_SUBCLASS_SPECIFIC | 0x00000020)\r
-#define EFI_SW_BS_PC_OPEN_PROTOCOL_INFORMATION      (EFI_SUBCLASS_SPECIFIC | 0x00000021)\r
-#define EFI_SW_BS_PC_PROTOCOLS_PER_HANDLE           (EFI_SUBCLASS_SPECIFIC | 0x00000022)\r
-#define EFI_SW_BS_PC_LOCATE_HANDLE_BUFFER           (EFI_SUBCLASS_SPECIFIC | 0x00000023)\r
-#define EFI_SW_BS_PC_LOCATE_PROTOCOL                (EFI_SUBCLASS_SPECIFIC | 0x00000024)\r
-#define EFI_SW_BS_PC_INSTALL_MULTIPLE_INTERFACES    (EFI_SUBCLASS_SPECIFIC | 0x00000025)\r
-#define EFI_SW_BS_PC_UNINSTALL_MULTIPLE_INTERFACES  (EFI_SUBCLASS_SPECIFIC | 0x00000026)\r
-#define EFI_SW_BS_PC_CALCULATE_CRC_32               (EFI_SUBCLASS_SPECIFIC | 0x00000027)\r
-#define EFI_SW_BS_PC_COPY_MEM                       (EFI_SUBCLASS_SPECIFIC | 0x00000028)\r
-#define EFI_SW_BS_PC_SET_MEM                        (EFI_SUBCLASS_SPECIFIC | 0x00000029)\r
-\r
-//\r
-// Software Class EFI Runtime Services Subclass Progress Code definitions.\r
-//\r
-#define EFI_SW_RS_PC_GET_TIME                       (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_SW_RS_PC_SET_TIME                       (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-#define EFI_SW_RS_PC_GET_WAKEUP_TIME                (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
-#define EFI_SW_RS_PC_SET_WAKEUP_TIME                (EFI_SUBCLASS_SPECIFIC | 0x00000003)\r
-#define EFI_SW_RS_PC_SET_VIRTUAL_ADDRESS_MAP        (EFI_SUBCLASS_SPECIFIC | 0x00000004)\r
-#define EFI_SW_RS_PC_CONVERT_POINTER                (EFI_SUBCLASS_SPECIFIC | 0x00000005)\r
-#define EFI_SW_RS_PC_GET_VARIABLE                   (EFI_SUBCLASS_SPECIFIC | 0x00000006)\r
-#define EFI_SW_RS_PC_GET_NEXT_VARIABLE_NAME         (EFI_SUBCLASS_SPECIFIC | 0x00000007)\r
-#define EFI_SW_RS_PC_SET_VARIABLE                   (EFI_SUBCLASS_SPECIFIC | 0x00000008)\r
-#define EFI_SW_RS_PC_GET_NEXT_HIGH_MONOTONIC_COUNT  (EFI_SUBCLASS_SPECIFIC | 0x00000009)\r
-#define EFI_SW_RS_PC_RESET_SYSTEM                   (EFI_SUBCLASS_SPECIFIC | 0x0000000A)\r
-\r
-//\r
-// Software Class EFI DXE Services Subclass Progress Code definitions\r
-//\r
-#define EFI_SW_DS_PC_ADD_MEMORY_SPACE             (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_SW_DS_PC_ALLOCATE_MEMORY_SPACE        (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-#define EFI_SW_DS_PC_FREE_MEMORY_SPACE            (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
-#define EFI_SW_DS_PC_REMOVE_MEMORY_SPACE          (EFI_SUBCLASS_SPECIFIC | 0x00000003)\r
-#define EFI_SW_DS_PC_GET_MEMORY_SPACE_DESCRIPTOR  (EFI_SUBCLASS_SPECIFIC | 0x00000004)\r
-#define EFI_SW_DS_PC_SET_MEMORY_SPACE_ATTRIBUTES  (EFI_SUBCLASS_SPECIFIC | 0x00000005)\r
-#define EFI_SW_DS_PC_GET_MEMORY_SPACE_MAP         (EFI_SUBCLASS_SPECIFIC | 0x00000006)\r
-#define EFI_SW_DS_PC_ADD_IO_SPACE                 (EFI_SUBCLASS_SPECIFIC | 0x00000007)\r
-#define EFI_SW_DS_PC_ALLOCATE_IO_SPACE            (EFI_SUBCLASS_SPECIFIC | 0x00000008)\r
-#define EFI_SW_DS_PC_FREE_IO_SPACE                (EFI_SUBCLASS_SPECIFIC | 0x00000009)\r
-#define EFI_SW_DS_PC_REMOVE_IO_SPACE              (EFI_SUBCLASS_SPECIFIC | 0x0000000A)\r
-#define EFI_SW_DS_PC_GET_IO_SPACE_DESCRIPTOR      (EFI_SUBCLASS_SPECIFIC | 0x0000000B)\r
-#define EFI_SW_DS_PC_GET_IO_SPACE_MAP             (EFI_SUBCLASS_SPECIFIC | 0x0000000C)\r
-#define EFI_SW_DS_PC_DISPATCH                     (EFI_SUBCLASS_SPECIFIC | 0x0000000D)\r
-#define EFI_SW_DS_PC_SCHEDULE                     (EFI_SUBCLASS_SPECIFIC | 0x0000000E)\r
-#define EFI_SW_DS_PC_TRUST                        (EFI_SUBCLASS_SPECIFIC | 0x0000000F)\r
-#define EFI_SW_DS_PC_PROCESS_FIRMWARE_VOLUME      (EFI_SUBCLASS_SPECIFIC | 0x00000010)\r
-\r
-//\r
-// Software Class Error Code definitions.\r
-// These are shared by all subclasses.\r
-//\r
-#define EFI_SW_EC_NON_SPECIFIC            0x00000000\r
-#define EFI_SW_EC_LOAD_ERROR              0x00000001\r
-#define EFI_SW_EC_INVALID_PARAMETER       0x00000002\r
-#define EFI_SW_EC_UNSUPPORTED             0x00000003\r
-#define EFI_SW_EC_INVALID_BUFFER          0x00000004\r
-#define EFI_SW_EC_OUT_OF_RESOURCES        0x00000005\r
-#define EFI_SW_EC_ABORTED                 0x00000006\r
-#define EFI_SW_EC_ILLEGAL_SOFTWARE_STATE  0x00000007\r
-#define EFI_SW_EC_ILLEGAL_HARDWARE_STATE  0x00000008\r
-#define EFI_SW_EC_START_ERROR             0x00000009\r
-#define EFI_SW_EC_BAD_DATE_TIME           0x0000000A\r
-#define EFI_SW_EC_CFG_INVALID             0x0000000B\r
-#define EFI_SW_EC_CFG_CLR_REQUEST         0x0000000C\r
-#define EFI_SW_EC_CFG_DEFAULT             0x0000000D\r
-#define EFI_SW_EC_PWD_INVALID             0x0000000E\r
-#define EFI_SW_EC_PWD_CLR_REQUEST         0x0000000F\r
-#define EFI_SW_EC_PWD_CLEARED             0x00000010\r
-#define EFI_SW_EC_EVENT_LOG_FULL          0x00000011\r
-\r
-//\r
-// Software Class Unspecified Subclass Error Code definitions.\r
-//\r
-//\r
-// Software Class SEC Subclass Error Code definitions.\r
-//\r
-//\r
-// Software Class PEI Core Subclass Error Code definitions.\r
-//\r
-#define EFI_SW_PEI_CORE_EC_DXE_CORRUPT  (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-\r
-//\r
-// Software Class PEI Module Subclass Error Code definitions.\r
-//\r
-#define EFI_SW_PEIM_EC_NO_RECOVERY_CAPSULE        (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_SW_PEIM_EC_INVALID_CAPSULE_DESCRIPTOR (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-\r
-//\r
-// Software Class DXE Core Subclass Error Code definitions.\r
-//\r
-#define EFI_SW_CSM_LEGACY_ROM_INIT  (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-//\r
-// Software Class DXE Boot Service Driver Subclass Error Code definitions.\r
-//\r
-#define EFI_SW_DXE_BS_EC_LEGACY_OPROM_NO_SPACE  (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-\r
-//\r
-// Software Class DXE Runtime Service Driver Subclass Error Code definitions.\r
-//\r
-//\r
-// Software Class SMM Driver Subclass Error Code definitions.\r
-//\r
-//\r
-// Software Class EFI Application Subclass Error Code definitions.\r
-//\r
-//\r
-// Software Class EFI OS Loader Subclass Error Code definitions.\r
-//\r
-//\r
-// Software Class EFI RT Subclass Error Code definitions.\r
-//\r
-//\r
-// Software Class EFI AL Subclass Error Code definitions.\r
-//\r
-//\r
-// Software Class EBC Exception Subclass Error Code definitions.\r
-// These exceptions are derived from the debug protocol definitions in the EFI\r
-// specification.\r
-//\r
-#define EFI_SW_EC_EBC_UNDEFINED             (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_UNDEFINED)\r
-#define EFI_SW_EC_EBC_DIVIDE_ERROR          (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_DIVIDE_ERROR)\r
-#define EFI_SW_EC_EBC_DEBUG                 (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_DEBUG)\r
-#define EFI_SW_EC_EBC_BREAKPOINT            (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_BREAKPOINT)\r
-#define EFI_SW_EC_EBC_OVERFLOW              (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_OVERFLOW)\r
-#define EFI_SW_EC_EBC_INVALID_OPCODE        (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_INVALID_OPCODE)\r
-#define EFI_SW_EC_EBC_STACK_FAULT           (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_STACK_FAULT)\r
-#define EFI_SW_EC_EBC_ALIGNMENT_CHECK       (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_ALIGNMENT_CHECK)\r
-#define EFI_SW_EC_EBC_INSTRUCTION_ENCODING  (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_INSTRUCTION_ENCODING)\r
-#define EFI_SW_EC_EBC_BAD_BREAK             (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_BAD_BREAK)\r
-#define EFI_SW_EC_EBC_STEP                  (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_STEP)\r
-\r
-//\r
-// Software Class IA32 Exception Subclass Error Code definitions.\r
-// These exceptions are derived from the debug protocol definitions in the EFI\r
-// specification.\r
-//\r
-#define EFI_SW_EC_IA32_DIVIDE_ERROR     (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_DIVIDE_ERROR)\r
-#define EFI_SW_EC_IA32_DEBUG            (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_DEBUG)\r
-#define EFI_SW_EC_IA32_NMI              (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_NMI)\r
-#define EFI_SW_EC_IA32_BREAKPOINT       (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_BREAKPOINT)\r
-#define EFI_SW_EC_IA32_OVERFLOW         (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_OVERFLOW)\r
-#define EFI_SW_EC_IA32_BOUND            (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_BOUND)\r
-#define EFI_SW_EC_IA32_INVALID_OPCODE   (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_INVALID_OPCODE)\r
-#define EFI_SW_EC_IA32_DOUBLE_FAULT     (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_DOUBLE_FAULT)\r
-#define EFI_SW_EC_IA32_INVALID_TSS      (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_INVALID_TSS)\r
-#define EFI_SW_EC_IA32_SEG_NOT_PRESENT  (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_SEG_NOT_PRESENT)\r
-#define EFI_SW_EC_IA32_STACK_FAULT      (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_STACK_FAULT)\r
-#define EFI_SW_EC_IA32_GP_FAULT         (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_GP_FAULT)\r
-#define EFI_SW_EC_IA32_PAGE_FAULT       (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_PAGE_FAULT)\r
-#define EFI_SW_EC_IA32_FP_ERROR         (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_FP_ERROR)\r
-#define EFI_SW_EC_IA32_ALIGNMENT_CHECK  (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_ALIGNMENT_CHECK)\r
-#define EFI_SW_EC_IA32_MACHINE_CHECK    (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_MACHINE_CHECK)\r
-#define EFI_SW_EC_IA32_SIMD             (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_SIMD)\r
-\r
-//\r
-// Software Class X64 Exception Subclass Error Code definitions.\r
-// These exceptions are derived from the debug protocol definitions in the EFI\r
-// specification.\r
-//\r
-#define EFI_SW_EC_X64_DIVIDE_ERROR      (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_DIVIDE_ERROR)\r
-#define EFI_SW_EC_X64_DEBUG             (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_DEBUG)\r
-#define EFI_SW_EC_X64_NMI               (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_NMI)\r
-#define EFI_SW_EC_X64_BREAKPOINT        (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_BREAKPOINT)\r
-#define EFI_SW_EC_X64_OVERFLOW          (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_OVERFLOW)\r
-#define EFI_SW_EC_X64_BOUND             (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_BOUND)\r
-#define EFI_SW_EC_X64_INVALID_OPCODE    (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_INVALID_OPCODE)\r
-#define EFI_SW_EC_X64_DOUBLE_FAULT      (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_DOUBLE_FAULT)\r
-#define EFI_SW_EC_X64_INVALID_TSS       (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_INVALID_TSS)\r
-#define EFI_SW_EC_X64_SEG_NOT_PRESENT   (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_SEG_NOT_PRESENT)\r
-#define EFI_SW_EC_X64_STACK_FAULT       (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_STACK_FAULT)\r
-#define EFI_SW_EC_X64_GP_FAULT          (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_GP_FAULT)\r
-#define EFI_SW_EC_X64_PAGE_FAULT        (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_PAGE_FAULT)\r
-#define EFI_SW_EC_X64_FP_ERROR          (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_FP_ERROR)\r
-#define EFI_SW_EC_X64_ALIGNMENT_CHECK   (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_ALIGNMENT_CHECK)\r
-#define EFI_SW_EC_X64_MACHINE_CHECK     (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_MACHINE_CHECK)\r
-#define EFI_SW_EC_X64_SIMD              (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_SIMD)\r
-\r
-//\r
-// Software Class IPF Exception Subclass Error Code definitions.\r
-// These exceptions are derived from the debug protocol definitions in the EFI\r
-// specification.\r
-//\r
-#define EFI_SW_EC_IPF_ALT_DTLB            (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_ALT_DTLB)\r
-#define EFI_SW_EC_IPF_DNESTED_TLB         (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_DNESTED_TLB)\r
-#define EFI_SW_EC_IPF_BREAKPOINT          (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_BREAKPOINT)\r
-#define EFI_SW_EC_IPF_EXTERNAL_INTERRUPT  (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_EXTERNAL_INTERRUPT)\r
-#define EFI_SW_EC_IPF_GEN_EXCEPT          (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_GEN_EXCEPT)\r
-#define EFI_SW_EC_IPF_NAT_CONSUMPTION     (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_NAT_CONSUMPTION)\r
-#define EFI_SW_EC_IPF_DEBUG_EXCEPT        (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_DEBUG_EXCEPT)\r
-#define EFI_SW_EC_IPF_UNALIGNED_ACCESS    (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_UNALIGNED_ACCESS)\r
-#define EFI_SW_EC_IPF_FP_FAULT            (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_FP_FAULT)\r
-#define EFI_SW_EC_IPF_FP_TRAP             (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_FP_TRAP)\r
-#define EFI_SW_EC_IPF_TAKEN_BRANCH        (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_TAKEN_BRANCH)\r
-#define EFI_SW_EC_IPF_SINGLE_STEP         (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_SINGLE_STEP)\r
-\r
-\r
-//\r
-// Software Class PEI Service Subclass Error Code definitions.\r
-//\r
-//\r
-// Software Class EFI Boot Service Subclass Error Code definitions.\r
-//\r
-//\r
-// Software Class EFI Runtime Service Subclass Error Code definitions.\r
-//\r
-//\r
-// Software Class EFI DXE Service Subclass Error Code definitions.\r
-//\r
-\r
-///////////////////////////////////////////////////////////////////////////////\r
-// Section 7\r
-///////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Debug Code definitions for all classes and subclass\r
-// Only one debug code is defined at this point and should\r
-// be used for anything that gets sent to debug stream.\r
-//\r
-#define EFI_DC_UNSPECIFIED  0x0\r
-\r
-#endif\r
diff --git a/IntelFrameworkPkg/Include/Framework/FrameworkStatusCodeDataTypeId.h b/IntelFrameworkPkg/Include/Framework/FrameworkStatusCodeDataTypeId.h
deleted file mode 100644 (file)
index 92c222a..0000000
+++ /dev/null
@@ -1,433 +0,0 @@
-/** @file\r
-  This file defines the data structures to support Status Code Data.\r
-\r
-  Copyright (c) 2007, Intel Corporation\r
-  All rights reserved. This program and the accompanying materials\r
-  are licensed and made available under the terms and conditions of the BSD License\r
-  which accompanies this distribution.  The full text of the license may be found at\r
-  http://opensource.org/licenses/bsd-license.php\r
-\r
-  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:  FrameworkStatusCodeDataTypeId.h\r
-\r
-  @par Revision Reference:\r
-  These definitions are from Framework of EFI Status Code Spec\r
-  Version 0.92.\r
-\r
-**/\r
-\r
-#ifndef __FRAMEWORK_STATUS_CODE_DATA_TYPE_ID_H__\r
-#define __FRAMEWORK_STATUS_CODE_DATA_TYPE_ID_H__\r
-\r
-#include <Common/DataHubRecords.h>\r
-#include <Protocol/DebugSupport.h>\r
-\r
-///\r
-/// The size of string\r
-///\r
-#define EFI_STATUS_CODE_DATA_MAX_STRING_SIZE  150\r
-\r
-///\r
-/// This is the max data size including all the headers which can be passed\r
-/// as Status Code data. This data should be multiple of 8 byte\r
-/// to avoid any kind of boundary issue. Also, sum of this data size (inclusive\r
-/// of size of EFI_STATUS_CODE_DATA should not exceed the max record size of\r
-/// data hub\r
-///\r
-#define EFI_STATUS_CODE_DATA_MAX_SIZE 200\r
-\r
-#pragma pack(1)\r
-typedef enum {\r
-  EfiStringAscii,\r
-  EfiStringUnicode,\r
-  EfiStringToken\r
-} EFI_STRING_TYPE;\r
-\r
-typedef struct {\r
-  EFI_HII_HANDLE  Handle;\r
-  STRING_REF      Token;\r
-} EFI_STATUS_CODE_STRING_TOKEN;\r
-\r
-typedef union {\r
-  CHAR8                         *Ascii;\r
-  CHAR16                        *Unicode;\r
-  EFI_STATUS_CODE_STRING_TOKEN  Hii;\r
-} EFI_STATUS_CODE_STRING;\r
-\r
-typedef struct {\r
-  EFI_STATUS_CODE_DATA                          DataHeader;\r
-  EFI_STRING_TYPE                               StringType;\r
-  EFI_STATUS_CODE_STRING                        String;\r
-} EFI_STATUS_CODE_STRING_DATA;\r
-\r
-#pragma pack()\r
-\r
-#pragma pack(1)\r
-\r
-typedef struct {\r
-  UINT32  ErrorLevel;\r
-  //\r
-  // 12 * sizeof (UINT64) Var Arg stack\r
-  //\r
-  // ascii DEBUG () Format string\r
-  //\r
-} EFI_DEBUG_INFO;\r
-\r
-#pragma pack()\r
-\r
-//\r
-// declaration for EFI_EXP_DATA. This may change\r
-//\r
-// typedef UINTN   EFI_EXP_DATA;\r
-\r
-///\r
-/// Voltage Extended Error Data\r
-///\r
-typedef struct {\r
-  EFI_STATUS_CODE_DATA  DataHeader;\r
-  EFI_EXP_BASE10_DATA   Voltage;\r
-  EFI_EXP_BASE10_DATA   Threshold;\r
-} EFI_COMPUTING_UNIT_VOLTAGE_ERROR_DATA;\r
-\r
-typedef struct {\r
-  EFI_EXP_BASE10_DATA   Voltage;\r
-  EFI_EXP_BASE10_DATA   Threshold;\r
-} EFI_COMPUTING_UNIT_VOLTAGE_ERROR_DATA_PAYLOAD;\r
-\r
-///\r
-/// Microcode Update Extended Error Data\r
-///\r
-typedef struct {\r
-  EFI_STATUS_CODE_DATA  DataHeader;\r
-  UINT32                Version;\r
-} EFI_COMPUTING_UNIT_MICROCODE_UPDATE_ERROR_DATA;\r
-\r
-typedef struct {\r
-  UINT32                Version;\r
-} EFI_COMPUTING_UNIT_MICROCODE_UPDATE_ERROR_DATA_PAYLOAD;\r
-\r
-///\r
-/// Asynchronous Timer Extended Error Data\r
-///\r
-typedef struct {\r
-  EFI_STATUS_CODE_DATA  DataHeader;\r
-  EFI_EXP_BASE10_DATA   TimerLimit;\r
-} EFI_COMPUTING_UNIT_TIMER_EXPIRED_ERROR_DATA;\r
-\r
-typedef struct {\r
-  EFI_EXP_BASE10_DATA   TimerLimit;\r
-} EFI_COMPUTING_UNIT_TIMER_EXPIRED_ERROR_DATA_PAYLOAD;\r
-\r
-///\r
-/// Host Processor Mismatch Extended Error Data\r
-///\r
-typedef struct {\r
-  EFI_STATUS_CODE_DATA  DataHeader;\r
-  UINT32                Instance;\r
-  UINT16                Attributes;\r
-} EFI_HOST_PROCESSOR_MISMATCH_ERROR_DATA;\r
-\r
-typedef struct {\r
-  UINT32                Instance;\r
-  UINT16                Attributes;\r
-} EFI_HOST_PROCESSOR_MISMATCH_ERROR_DATA_PAYLOAD;\r
-\r
-//\r
-// EFI_COMPUTING_UNIT_MISMATCH_ATTRIBUTES\r
-// All other attributes are reserved for future use and\r
-// must be initialized to 0.\r
-//\r
-#define EFI_COMPUTING_UNIT_MISMATCH_SPEED       0x0001\r
-#define EFI_COMPUTING_UNIT_MISMATCH_FSB_SPEED   0x0002\r
-#define EFI_COMPUTING_UNIT_MISMATCH_FAMILY      0x0004\r
-#define EFI_COMPUTING_UNIT_MISMATCH_MODEL       0x0008\r
-#define EFI_COMPUTING_UNIT_MISMATCH_STEPPING    0x0010\r
-#define EFI_COMPUTING_UNIT_MISMATCH_CACHE_SIZE  0x0020\r
-#define EFI_COMPUTING_UNIT_MISMATCH_OEM1        0x1000\r
-#define EFI_COMPUTING_UNIT_MISMATCH_OEM2        0x2000\r
-#define EFI_COMPUTING_UNIT_MISMATCH_OEM3        0x4000\r
-#define EFI_COMPUTING_UNIT_MISMATCH_OEM4        0x8000\r
-\r
-///\r
-/// Thermal Extended Error Data\r
-///\r
-typedef struct {\r
-  EFI_STATUS_CODE_DATA  DataHeader;\r
-  EFI_EXP_BASE10_DATA   Temperature;\r
-  EFI_EXP_BASE10_DATA   Threshold;\r
-} EFI_COMPUTING_UNIT_THERMAL_ERROR_DATA;\r
-\r
-typedef struct {\r
-  EFI_EXP_BASE10_DATA   Temperature;\r
-  EFI_EXP_BASE10_DATA   Threshold;\r
-} EFI_COMPUTING_UNIT_THERMAL_ERROR_DATA_PAYLOAD;\r
-\r
-///\r
-/// Processor Disabled Extended Error Data\r
-///\r
-typedef struct {\r
-  EFI_STATUS_CODE_DATA  DataHeader;\r
-  UINT32                Cause;\r
-  BOOLEAN               SoftwareDisabled;\r
-} EFI_COMPUTING_UNIT_CPU_DISABLED_ERROR_DATA;\r
-\r
-typedef struct {\r
-  UINT32                Cause;\r
-  BOOLEAN               SoftwareDisabled;\r
-} EFI_COMPUTING_UNIT_CPU_DISABLED_ERROR_DATA_PAYLOAD;\r
-\r
-typedef enum {\r
-  EfiInitCacheDataOnly,\r
-  EfiInitCacheInstrOnly,\r
-  EfiInitCacheBoth,\r
-  EfiInitCacheUnspecified\r
-} EFI_INIT_CACHE_TYPE;\r
-\r
-///\r
-/// Embedded cache init extended data\r
-///\r
-typedef struct {\r
-  EFI_STATUS_CODE_DATA  DataHeader;\r
-  UINT32                Level;\r
-  EFI_INIT_CACHE_TYPE   Type;\r
-} EFI_CACHE_INIT_DATA;\r
-\r
-typedef struct {\r
-  UINT32                Level;\r
-  EFI_INIT_CACHE_TYPE   Type;\r
-} EFI_CACHE_INIT_DATA_PAYLOAD;\r
-\r
-//\r
-// Memory Extended Error Data\r
-//\r
-\r
-///\r
-/// Memory Error Granularity Definition\r
-///\r
-typedef UINT8 EFI_MEMORY_ERROR_GRANULARITY;\r
-\r
-///\r
-/// Memory Error Operation Definition\r
-///\r
-typedef UINT8 EFI_MEMORY_ERROR_OPERATION;\r
-\r
-typedef struct {\r
-  EFI_STATUS_CODE_DATA          DataHeader;\r
-  EFI_MEMORY_ERROR_GRANULARITY  Granularity;\r
-  EFI_MEMORY_ERROR_OPERATION    Operation;\r
-  UINTN                         Syndrome;\r
-  EFI_PHYSICAL_ADDRESS          Address;\r
-  UINTN                         Resolution;\r
-} EFI_MEMORY_EXTENDED_ERROR_DATA;\r
-\r
-typedef struct {\r
-  EFI_MEMORY_ERROR_GRANULARITY  Granularity;\r
-  EFI_MEMORY_ERROR_OPERATION    Operation;\r
-  UINTN                         Syndrome;\r
-  EFI_PHYSICAL_ADDRESS          Address;\r
-  UINTN                         Resolution;\r
-} EFI_MEMORY_EXTENDED_ERROR_DATA_PAYLOAD;\r
-\r
-//\r
-// Memory Error Granularities\r
-//\r
-#define EFI_MEMORY_ERROR_OTHER      0x01\r
-#define EFI_MEMORY_ERROR_UNKNOWN    0x02\r
-#define EFI_MEMORY_ERROR_DEVICE     0x03\r
-#define EFI_MEMORY_ERROR_PARTITION  0x04\r
-\r
-//\r
-// Memory Error Operations\r
-//\r
-#define EFI_MEMORY_OPERATION_OTHER          0x01\r
-#define EFI_MEMORY_OPERATION_UNKNOWN        0x02\r
-#define EFI_MEMORY_OPERATION_READ           0x03\r
-#define EFI_MEMORY_OPERATION_WRITE          0x04\r
-#define EFI_MEMORY_OPERATION_PARTIAL_WRITE  0x05\r
-\r
-//\r
-// Define shorthands to describe Group Operations\r
-// Many memory init operations are essentially group\r
-// operations.\r
-\r
-/// A shorthand to describe that the operation is performed\r
-/// on multiple devices within the array\r
-///\r
-#define EFI_MULTIPLE_MEMORY_DEVICE_OPERATION  0xfffe\r
-///\r
-/// A shorthand to describe that the operation is performed on all devices within the array\r
-///\r
-#define EFI_ALL_MEMORY_DEVICE_OPERATION 0xffff\r
-///\r
-/// A shorthand to describe that the operation is performed on multiple arrays\r
-///\r
-#define EFI_MULTIPLE_MEMORY_ARRAY_OPERATION 0xfffe\r
-///\r
-/// A shorthand to describe that the operation is performed on all the arrays\r
-///\r
-#define EFI_ALL_MEMORY_ARRAY_OPERATION  0xffff\r
-\r
-//\r
-// DIMM number\r
-//\r
-#pragma pack(1)\r
-typedef struct {\r
-  EFI_STATUS_CODE_DATA  DataHeader;\r
-  UINT16                Array;\r
-  UINT16                Device;\r
-} EFI_STATUS_CODE_DIMM_NUMBER;\r
-\r
-typedef struct {\r
-  UINT16                Array;\r
-  UINT16                Device;\r
-} EFI_STATUS_CODE_DIMM_NUMBER_PAYLOAD;\r
-#pragma pack()\r
-\r
-///\r
-/// Memory Module Mismatch Extended Error Data\r
-///\r
-typedef struct {\r
-  EFI_STATUS_CODE_DATA        DataHeader;\r
-  EFI_STATUS_CODE_DIMM_NUMBER Instance;\r
-} EFI_MEMORY_MODULE_MISMATCH_ERROR_DATA;\r
-\r
-typedef struct {\r
-  EFI_STATUS_CODE_DIMM_NUMBER Instance;\r
-} EFI_MEMORY_MODULE_MISMATCH_ERROR_DATA_PAYLOAD;\r
-\r
-///\r
-/// Memory Range Extended Data\r
-///\r
-typedef struct {\r
-  EFI_STATUS_CODE_DATA  DataHeader;\r
-  EFI_PHYSICAL_ADDRESS  Start;\r
-  EFI_PHYSICAL_ADDRESS  Length;\r
-} EFI_MEMORY_RANGE_EXTENDED_DATA;\r
-\r
-typedef struct {\r
-  EFI_PHYSICAL_ADDRESS  Start;\r
-  EFI_PHYSICAL_ADDRESS  Length;\r
-} EFI_MEMORY_RANGE_EXTENDED_DATA_PAYLOAD;\r
-\r
-///\r
-/// Device handle Extended Data. Used for many\r
-/// errors and progress codes to point to the device.\r
-///\r
-typedef struct {\r
-  EFI_STATUS_CODE_DATA  DataHeader;\r
-  EFI_HANDLE            Handle;\r
-} EFI_DEVICE_HANDLE_EXTENDED_DATA;\r
-\r
-typedef struct {\r
-  EFI_STATUS_CODE_DATA                 DataHeader;\r
-  UINT8                                *DevicePath;\r
-} EFI_DEVICE_PATH_EXTENDED_DATA;\r
-\r
-typedef struct {\r
-  EFI_STATUS_CODE_DATA           DataHeader;\r
-  EFI_HANDLE                     ControllerHandle;\r
-  EFI_HANDLE                     DriverBindingHandle;\r
-  UINT16                         DevicePathSize;\r
-  UINT8                          *RemainingDevicePath;\r
-} EFI_STATUS_CODE_START_EXTENDED_DATA;\r
-\r
-typedef struct {\r
-  EFI_HANDLE            Handle;\r
-} EFI_DEVICE_HANDLE_EXTENDED_DATA_PAYLOAD;\r
-\r
-typedef struct {\r
-  UINT8                                *DevicePath;\r
-} EFI_DEVICE_PATH_EXTENDED_DATA_PAYLOAD;\r
-\r
-typedef struct {\r
-  EFI_HANDLE                     ControllerHandle;\r
-  EFI_HANDLE                     DriverBindingHandle;\r
-  UINT16                         DevicePathSize;\r
-  UINT8                          *RemainingDevicePath;\r
-} EFI_STATUS_CODE_START_EXTENDED_DATA_PAYLOAD;\r
-\r
-///\r
-/// Resource Allocation Failure Extended Error Data\r
-///\r
-\r
-/*\r
-typedef struct {\r
-  EFI_STATUS_CODE_DATA      DataHeader;\r
-  EFI_DEVICE_PATH_PROTOCOL  *DevicePath;\r
-  UINT32                    Bar;\r
-  VOID                      *ReqRes;\r
-  VOID                      *AllocRes;\r
-} EFI_RESOURCE_ALLOC_FAILURE_ERROR_DATA;\r
-*/\r
-typedef struct {\r
-  EFI_STATUS_CODE_DATA               DataHeader;\r
-  UINT32                             Bar;\r
-  UINT16                             DevicePathSize;\r
-  UINT16                             ReqResSize;\r
-  UINT16                             AllocResSize;\r
-  UINT8                              *DevicePath;\r
-  UINT8                              *ReqRes;\r
-  UINT8                              *AllocRes;\r
-} EFI_RESOURCE_ALLOC_FAILURE_ERROR_DATA;\r
-\r
-typedef struct {\r
-  UINT32                             Bar;\r
-  UINT16                             DevicePathSize;\r
-  UINT16                             ReqResSize;\r
-  UINT16                             AllocResSize;\r
-  UINT8                              *DevicePath;\r
-  UINT8                              *ReqRes;\r
-  UINT8                              *AllocRes;\r
-} EFI_RESOURCE_ALLOC_FAILURE_ERROR_DATA_PAYLOAD;\r
-\r
-///\r
-/// Extended Error Data for Assert\r
-///\r
-typedef struct {\r
-  EFI_STATUS_CODE_DATA        DataHeader;\r
-  UINT32                      LineNumber;\r
-  UINT32                      FileNameSize;\r
-  EFI_STATUS_CODE_STRING_DATA *FileName;\r
-} EFI_DEBUG_ASSERT_DATA;\r
-\r
-typedef struct {\r
-  UINT32                      LineNumber;\r
-  UINT32                      FileNameSize;\r
-  EFI_STATUS_CODE_STRING_DATA *FileName;\r
-} EFI_DEBUG_ASSERT_DATA_PAYLOAD;\r
-\r
-///\r
-/// System Context Data EBC/IA32/IPF\r
-///\r
-typedef union {\r
-  EFI_SYSTEM_CONTEXT_EBC  SystemContextEbc;\r
-  EFI_SYSTEM_CONTEXT_IA32 SystemContextIa32;\r
-  EFI_SYSTEM_CONTEXT_IPF  SystemContextIpf;\r
-} EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT;\r
-\r
-typedef struct {\r
-  EFI_STATUS_CODE_DATA                  DataHeader;\r
-  EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT  Context;\r
-} EFI_STATUS_CODE_EXCEP_EXTENDED_DATA;\r
-\r
-typedef struct {\r
-  EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT  Context;\r
-} EFI_STATUS_CODE_EXCEP_EXTENDED_DATA_PAYLOAD;\r
-\r
-///\r
-/// Legacy Oprom extended data\r
-///\r
-typedef struct {\r
-  EFI_STATUS_CODE_DATA  DataHeader;\r
-  EFI_HANDLE            DeviceHandle;\r
-  EFI_PHYSICAL_ADDRESS  RomImageBase;\r
-} EFI_LEGACY_OPROM_EXTENDED_DATA;\r
-\r
-typedef struct {\r
-  EFI_HANDLE            DeviceHandle;\r
-  EFI_PHYSICAL_ADDRESS  RomImageBase;\r
-} EFI_LEGACY_OPROM_EXTENDED_DATA_PAYLOAD;\r
-\r
-#endif\r
diff --git a/IntelFrameworkPkg/Include/Framework/Hob.h b/IntelFrameworkPkg/Include/Framework/Hob.h
new file mode 100644 (file)
index 0000000..cdc419d
--- /dev/null
@@ -0,0 +1,36 @@
+/** @file\r
+  This file defines the data structures per HOB specification v0.9.\r
+\r
+  Copyright (c) 2007, Intel Corporation\r
+  All rights reserved. This program and the accompanying materials\r
+  are licensed and made available under the terms and conditions of the BSD License\r
+  which accompanies this distribution.  The full text of the license may be found at\r
+  http://opensource.org/licenses/bsd-license.php\r
+\r
+  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:  FrameworkFirmwareFileSystem.h\r
+\r
+  @par Revision Reference:\r
+  These definitions are from HOB Spec 0.9 but not adopted by PI specs.\r
+\r
+**/\r
+\r
+#ifndef _FRAMEWORK_HOB_H_\r
+#define _FRAMEWORK_HOB_H_\r
+\r
+#include <PiPei.h>\r
+\r
+//\r
+// Capsule volume HOB -- identical to a firmware volume\r
+//\r
+#define EFI_HOB_TYPE_CV 0x0008\r
+\r
+typedef struct {\r
+  EFI_HOB_GENERIC_HEADER  Header;\r
+  EFI_PHYSICAL_ADDRESS    BaseAddress;\r
+  UINT64                  Length;\r
+} EFI_HOB_CAPSULE_VOLUME;\r
+\r
+#endif\r
diff --git a/IntelFrameworkPkg/Include/Framework/Legacy16.h b/IntelFrameworkPkg/Include/Framework/Legacy16.h
new file mode 100644 (file)
index 0000000..7f80c8a
--- /dev/null
@@ -0,0 +1,431 @@
+/** @file\r
+  API between 16-bit Legacy BIOS and EFI\r
+\r
+  We need to figure out what the 16-bit code is going to use to\r
+  represent these data structures. Is a pointer SEG:OFF or 32-bit...\r
+\r
+  Copyright (c) 2007, Intel Corporation\r
+  All rights reserved. This program and the accompanying materials\r
+  are licensed and made available under the terms and conditions of the BSD License\r
+  which accompanies this distribution.  The full text of the license may be found at\r
+  http://opensource.org/licenses/bsd-license.php\r
+\r
+  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:  FrameworkLegacy16.h\r
+\r
+  @par Revision Reference:\r
+  These definitions are from Compatibility Support Module Spec Version 0.96.\r
+\r
+**/\r
+\r
+#ifndef _FRAMEWORK_LEGACY_16_H_\r
+#define _FRAMEWORK_LEGACY_16_H_\r
+\r
+#include <Base.h>\r
+\r
+//\r
+// All structures defined in this header file are packed on byte boundary\r
+//\r
+#pragma pack(1)\r
+\r
+typedef UINT8 SERIAL_MODE;\r
+typedef UINT8 PARALLEL_MODE;\r
+\r
+///////////////////////////////////////////////////////////////////////////////\r
+// EFI_COMPATIBILITY16_TABLE is located at a 16-byte boundary starting with the\r
+// signature "$EFI"\r
+///////////////////////////////////////////////////////////////////////////////\r
+\r
+#define EFI_COMPATIBILITY16_TABLE_SIGNATURE EFI_SIGNATURE_32('$', 'E', 'F', 'I')\r
+\r
+typedef struct {\r
+  UINT32  Signature;      // "$EFI"\r
+  UINT8   TableChecksum;\r
+  UINT8   TableLength;\r
+  UINT8   EfiMajorRevision;\r
+  UINT8   EfiMinorRevision;\r
+  UINT8   TableMajorRevision;\r
+  UINT8   TableMinorRevision;\r
+  UINT16  Reserved;\r
+  UINT16  Compatibility16CallSegment;\r
+  UINT16  Compatibility16CallOffset;\r
+  UINT16  PnPInstallationCheckSegment;\r
+  UINT16  PnPInstallationCheckOffset;\r
+  UINT32  EfiSystemTable; // The physical address of EFI_SYSTEM_TABLE\r
+  UINT32  OemIdStringPointer;\r
+  UINT32  AcpiRsdPtrPointer;\r
+  UINT16  OemRevision;\r
+  UINT32  E820Pointer;\r
+  UINT32  E820Length;\r
+  UINT32  IrqRoutingTablePointer;\r
+  UINT32  IrqRoutingTableLength;\r
+  UINT32  MpTablePtr;\r
+  UINT32  MpTableLength;\r
+  UINT16  OemIntSegment;\r
+  UINT16  OemIntOffset;\r
+  UINT16  Oem32Segment;\r
+  UINT16  Oem32Offset;\r
+  UINT16  Oem16Segment;\r
+  UINT16  Oem16Offset;\r
+  UINT16  TpmSegment;\r
+  UINT16  TpmOffset;\r
+  UINT32  IbvPointer;\r
+  UINT32  PciExpressBase;\r
+  UINT8   LastPciBus;\r
+} EFI_COMPATIBILITY16_TABLE;\r
+\r
+///////////////////////////////////////////////////////////////////////////////\r
+// Functions provided by the CSM binary\r
+///////////////////////////////////////////////////////////////////////////////\r
+typedef enum {\r
+  Legacy16InitializeYourself    = 0x0000,\r
+  Legacy16UpdateBbs             = 0x0001,\r
+  Legacy16PrepareToBoot         = 0x0002,\r
+  Legacy16Boot                  = 0x0003,\r
+  Legacy16RetrieveLastBootDevice= 0x0004,\r
+  Legacy16DispatchOprom         = 0x0005,\r
+  Legacy16GetTableAddress       = 0x0006,\r
+  Legacy16SetKeyboardLeds       = 0x0007,\r
+  Legacy16InstallPciHandler     = 0x0008\r
+} EFI_COMPATIBILITY_FUNCTIONS;\r
+\r
+///////////////////////////////////////////////////////////////////////////////\r
+// EFI_TO_COMPATIBILITY16_INIT_TABLE\r
+///////////////////////////////////////////////////////////////////////////////\r
+typedef struct {\r
+  UINT32  BiosLessThan1MB;\r
+  UINT32  HiPmmMemory;\r
+  UINT32  HiPmmMemorySizeInBytes;\r
+  UINT16  ReverseThunkCallSegment;\r
+  UINT16  ReverseThunkCallOffset;\r
+  UINT32  NumberE820Entries;\r
+  UINT32  OsMemoryAbove1Mb;\r
+  UINT32  ThunkStart;\r
+  UINT32  ThunkSizeInBytes;\r
+  UINT32  LowPmmMemory;\r
+  UINT32  LowPmmMemorySizeInBytes;\r
+} EFI_TO_COMPATIBILITY16_INIT_TABLE;\r
+\r
+///////////////////////////////////////////////////////////////////////////////\r
+// EFI_TO_COMPATIBILITY16_BOOT_TABLE\r
+///////////////////////////////////////////////////////////////////////////////\r
+\r
+typedef UINT8 SERIAL_MODE;\r
+typedef UINT8 PARALLEL_MODE;\r
+\r
+//\r
+// DEVICE_PRODUCER_SERIAL & its modes\r
+//\r
+typedef struct {\r
+  UINT16      Address;\r
+  UINT8       Irq;\r
+  SERIAL_MODE Mode;\r
+} DEVICE_PRODUCER_SERIAL;\r
+\r
+#define DEVICE_SERIAL_MODE_NORMAL               0x00\r
+#define DEVICE_SERIAL_MODE_IRDA                 0x01\r
+#define DEVICE_SERIAL_MODE_ASK_IR               0x02\r
+#define DEVICE_SERIAL_MODE_DUPLEX_HALF          0x00\r
+#define DEVICE_SERIAL_MODE_DUPLEX_FULL          0x10\r
+\r
+//\r
+// DEVICE_PRODUCER_PARALLEL & its modes\r
+//\r
+typedef struct {\r
+  UINT16        Address;\r
+  UINT8         Irq;\r
+  UINT8         Dma;\r
+  PARALLEL_MODE Mode;\r
+} DEVICE_PRODUCER_PARALLEL;\r
+\r
+#define DEVICE_PARALLEL_MODE_MODE_OUTPUT_ONLY   0x00\r
+#define DEVICE_PARALLEL_MODE_MODE_BIDIRECTIONAL 0x01\r
+#define DEVICE_PARALLEL_MODE_MODE_EPP           0x02\r
+#define DEVICE_PARALLEL_MODE_MODE_ECP           0x03\r
+\r
+//\r
+// DEVICE_PRODUCER_FLOPPY\r
+//\r
+typedef struct {\r
+  UINT16  Address;\r
+  UINT8   Irq;\r
+  UINT8   Dma;\r
+  UINT8   NumberOfFloppy;\r
+} DEVICE_PRODUCER_FLOPPY;\r
+\r
+//\r
+// LEGACY_DEVICE_FLAGS\r
+//\r
+typedef struct {\r
+  UINT32  A20Kybd : 1;\r
+  UINT32  A20Port90 : 1;\r
+  UINT32  Reserved : 30;\r
+} LEGACY_DEVICE_FLAGS;\r
+\r
+//\r
+// DEVICE_PRODUCER_DATA_HEADER\r
+//\r
+typedef struct {\r
+  DEVICE_PRODUCER_SERIAL    Serial[4];\r
+  DEVICE_PRODUCER_PARALLEL  Parallel[3];\r
+  DEVICE_PRODUCER_FLOPPY    Floppy;\r
+  UINT8                     MousePresent;\r
+  LEGACY_DEVICE_FLAGS       Flags;\r
+} DEVICE_PRODUCER_DATA_HEADER;\r
+\r
+//\r
+// ATAPI_IDENTIFY\r
+//\r
+typedef struct {\r
+  UINT16  Raw[256];\r
+} ATAPI_IDENTIFY;\r
+\r
+//\r
+// HDD_INFO & its status\r
+//\r
+typedef struct {\r
+  UINT16          Status;\r
+  UINT32          Bus;\r
+  UINT32          Device;\r
+  UINT32          Function;\r
+  UINT16          CommandBaseAddress;\r
+  UINT16          ControlBaseAddress;\r
+  UINT16          BusMasterAddress;\r
+  UINT8           HddIrq;\r
+  ATAPI_IDENTIFY  IdentifyDrive[2];\r
+} HDD_INFO;\r
+\r
+#define HDD_PRIMARY               0x01\r
+#define HDD_SECONDARY             0x02\r
+#define HDD_MASTER_ATAPI_CDROM    0x04\r
+#define HDD_SLAVE_ATAPI_CDROM     0x08\r
+#define HDD_MASTER_IDE            0x20\r
+#define HDD_SLAVE_IDE             0x40\r
+#define HDD_MASTER_ATAPI_ZIPDISK  0x10\r
+#define HDD_SLAVE_ATAPI_ZIPDISK   0x80\r
+\r
+//\r
+// BBS_STATUS_FLAGS\r
+//\r
+typedef struct {\r
+  UINT16  OldPosition : 4;\r
+  UINT16  Reserved1 : 4;\r
+  UINT16  Enabled : 1;\r
+  UINT16  Failed : 1;\r
+  UINT16  MediaPresent : 2;\r
+  UINT16  Reserved2 : 4;\r
+} BBS_STATUS_FLAGS;\r
+\r
+//\r
+// BBS_TABLE, device type values & boot priority values\r
+//\r
+typedef struct {\r
+  UINT16            BootPriority;\r
+  UINT32            Bus;\r
+  UINT32            Device;\r
+  UINT32            Function;\r
+  UINT8             Class;\r
+  UINT8             SubClass;\r
+  UINT16            MfgStringOffset;\r
+  UINT16            MfgStringSegment;\r
+  UINT16            DeviceType;\r
+  BBS_STATUS_FLAGS  StatusFlags;\r
+  UINT16            BootHandlerOffset;\r
+  UINT16            BootHandlerSegment;\r
+  UINT16            DescStringOffset;\r
+  UINT16            DescStringSegment;\r
+  UINT32            InitPerReserved;\r
+  UINT32            AdditionalIrq13Handler;\r
+  UINT32            AdditionalIrq18Handler;\r
+  UINT32            AdditionalIrq19Handler;\r
+  UINT32            AdditionalIrq40Handler;\r
+  UINT8             AssignedDriveNumber;\r
+  UINT32            AdditionalIrq41Handler;\r
+  UINT32            AdditionalIrq46Handler;\r
+  UINT32            IBV1;\r
+  UINT32            IBV2;\r
+} BBS_TABLE;\r
+\r
+#define BBS_FLOPPY        0x01\r
+#define BBS_HARDDISK      0x02\r
+#define BBS_CDROM         0x03\r
+#define BBS_PCMCIA        0x04\r
+#define BBS_USB           0x05\r
+#define BBS_EMBED_NETWORK 0x06\r
+#define BBS_BEV_DEVICE    0x80\r
+#define BBS_UNKNOWN       0xff\r
+\r
+#define BBS_DO_NOT_BOOT_FROM    0xFFFC\r
+#define BBS_LOWEST_PRIORITY     0xFFFD\r
+#define BBS_UNPRIORITIZED_ENTRY 0xFFFE\r
+#define BBS_IGNORE_ENTRY        0xFFFF\r
+\r
+//\r
+// SMM_ATTRIBUTES & relating type, port and data size constants\r
+//\r
+typedef struct {\r
+  UINT16  Type : 3;\r
+  UINT16  PortGranularity : 3;\r
+  UINT16  DataGranularity : 3;\r
+  UINT16  Reserved : 7;\r
+} SMM_ATTRIBUTES;\r
+\r
+#define STANDARD_IO       0x00\r
+#define STANDARD_MEMORY   0x01\r
+\r
+#define PORT_SIZE_8       0x00\r
+#define PORT_SIZE_16      0x01\r
+#define PORT_SIZE_32      0x02\r
+#define PORT_SIZE_64      0x03\r
+\r
+#define DATA_SIZE_8       0x00\r
+#define DATA_SIZE_16      0x01\r
+#define DATA_SIZE_32      0x02\r
+#define DATA_SIZE_64      0x03\r
+\r
+//\r
+// SMM_FUNCTION & relating constants\r
+//\r
+typedef struct {\r
+  UINT16  Function : 15;\r
+  UINT16  Owner : 1;\r
+} SMM_FUNCTION;\r
+\r
+#define INT15_D042        0x0000\r
+#define GET_USB_BOOT_INFO 0x0001\r
+#define DMI_PNP_50_57     0x0002\r
+\r
+#define STANDARD_OWNER    0x0\r
+#define OEM_OWNER         0x1\r
+\r
+//\r
+// SMM_ENTRY\r
+//\r
+// This structure assumes both port and data sizes are 1. SmmAttribute must be\r
+// properly to reflect that assumption.\r
+//\r
+typedef struct {\r
+  SMM_ATTRIBUTES  SmmAttributes;\r
+  SMM_FUNCTION    SmmFunction;\r
+  UINT8           SmmPort;\r
+  UINT8           SmmData;\r
+} SMM_ENTRY;\r
+\r
+//\r
+// SMM_TABLE\r
+//\r
+typedef struct {\r
+  UINT16    NumSmmEntries;\r
+  SMM_ENTRY SmmEntry;\r
+} SMM_TABLE;\r
+\r
+//\r
+// UDC_ATTRIBUTES\r
+//\r
+typedef struct {\r
+  UINT8 DirectoryServiceValidity : 1;\r
+  UINT8 RabcaUsedFlag : 1;\r
+  UINT8 ExecuteHddDiagnosticsFlag : 1;\r
+  UINT8 Reserved : 5;\r
+} UDC_ATTRIBUTES;\r
+\r
+//\r
+// UD_TABLE\r
+//\r
+typedef struct {\r
+  UDC_ATTRIBUTES  Attributes;\r
+  UINT8           DeviceNumber;\r
+  UINT8           BbsTableEntryNumberForParentDevice;\r
+  UINT8           BbsTableEntryNumberForBoot;\r
+  UINT8           BbsTableEntryNumberForHddDiag;\r
+  UINT8           BeerData[128];\r
+  UINT8           ServiceAreaData[64];\r
+} UD_TABLE;\r
+\r
+//\r
+// EFI_TO_COMPATIBILITY16_BOOT_TABLE\r
+//\r
+#define EFI_TO_LEGACY_MAJOR_VERSION 0x02\r
+#define EFI_TO_LEGACY_MINOR_VERSION 0x00\r
+#define MAX_IDE_CONTROLLER          8\r
+\r
+typedef struct {\r
+  UINT16                      MajorVersion;\r
+  UINT16                      MinorVersion;\r
+  UINT32                      AcpiTable;   // 4 GB range\r
+  UINT32                      SmbiosTable; // 4 GB range\r
+  UINT32                      SmbiosTableLength;\r
+\r
+  //\r
+  // Legacy SIO state\r
+  //\r
+  DEVICE_PRODUCER_DATA_HEADER SioData;\r
+\r
+  UINT16                      DevicePathType;\r
+  UINT16                      PciIrqMask;\r
+  UINT32                      NumberE820Entries;\r
+\r
+  //\r
+  // Controller & Drive Identify[2] per controller information\r
+  //\r
+  HDD_INFO                    HddInfo[MAX_IDE_CONTROLLER];\r
+\r
+  UINT32                      NumberBbsEntries;\r
+  UINT32                      BbsTable;\r
+  UINT32                      SmmTable;\r
+  UINT32                      OsMemoryAbove1Mb;\r
+  UINT32                      UnconventionalDeviceTable;\r
+} EFI_TO_COMPATIBILITY16_BOOT_TABLE;\r
+\r
+///////////////////////////////////////////////////////////////////////////////\r
+// EFI_DISPATCH_OPROM_TABLE\r
+///////////////////////////////////////////////////////////////////////////////\r
+\r
+typedef struct {\r
+  UINT16  PnPInstallationCheckSegment;\r
+  UINT16  PnPInstallationCheckOffset;\r
+  UINT16  OpromSegment;\r
+  UINT8   PciBus;\r
+  UINT8   PciDeviceFunction;\r
+  UINT8   NumberBbsEntries;\r
+  VOID    *BbsTablePointer; /// @bug: variable size on 32/64-bit systems.\r
+} EFI_DISPATCH_OPROM_TABLE;\r
+\r
+///////////////////////////////////////////////////////////////////////////////\r
+// EFI_LEGACY_INSTALL_PCI_HANDLER\r
+///////////////////////////////////////////////////////////////////////////////\r
+typedef struct {\r
+  UINT8   PciBus;\r
+  UINT8   PciDeviceFun;\r
+  UINT8   PciSegment;\r
+  UINT8   PciClass;\r
+  UINT8   PciSubclass;\r
+  UINT8   PciInterface;\r
+\r
+  //\r
+  // Primary section\r
+  //\r
+  UINT8   PrimaryIrq;\r
+  UINT8   PrimaryReserved;\r
+  UINT16  PrimaryControl;\r
+  UINT16  PrimaryBase;\r
+  UINT16  PrimaryBusMaster;\r
+\r
+  //\r
+  // Secondary Section\r
+  //\r
+  UINT8   SecondaryIrq;\r
+  UINT8   SecondaryReserved;\r
+  UINT16  SecondaryControl;\r
+  UINT16  SecondaryBase;\r
+  UINT16  SecondaryBusMaster;\r
+} EFI_LEGACY_INSTALL_PCI_HANDLER;\r
+\r
+//\r
+// Restore default pack value\r
+//\r
+#pragma pack()\r
+\r
+#endif\r
diff --git a/IntelFrameworkPkg/Include/Framework/SmmCis.h b/IntelFrameworkPkg/Include/Framework/SmmCis.h
new file mode 100644 (file)
index 0000000..e8276d3
--- /dev/null
@@ -0,0 +1,480 @@
+/** @file\r
+  Include file matches things in the Smm CIS spec.\r
+\r
+  Copyright (c) 2007, Intel Corporation\r
+  All rights reserved. This program and the accompanying materials\r
+  are licensed and made available under the terms and conditions of the BSD License\r
+  which accompanies this distribution.  The full text of the license may be found at\r
+  http://opensource.org/licenses/bsd-license.php\r
+\r
+  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:  FrameworkSmmCis.h\r
+\r
+  @par Revision Reference:\r
+  Version 0.9.\r
+\r
+**/\r
+\r
+#ifndef _FRAMEWORK_SMM_CIS_H_\r
+#define _FRAMEWORK_SMM_CIS_H_\r
+\r
+#include <Framework/DxeCis.h>\r
+\r
+#define EFI_SMM_CPU_IO_GUID \\r
+  { \\r
+    0x5f439a0b, 0x45d8, 0x4682, {0xa4, 0xf4, 0xf0, 0x57, 0x6b, 0x51, 0x34, 0x41 } \\r
+  }\r
+\r
+typedef struct _EFI_SMM_SYSTEM_TABLE      EFI_SMM_SYSTEM_TABLE;\r
+typedef struct _EFI_SMM_CPU_IO_INTERFACE  EFI_SMM_CPU_IO_INTERFACE;\r
+\r
+\r
+//\r
+// SMM Base specification constant and types\r
+//\r
+#define SMM_SMST_SIGNATURE            EFI_SIGNATURE_32 ('S', 'M', 'S', 'T')\r
+#define EFI_SMM_SYSTEM_TABLE_REVISION (0 << 16) | (0x09)\r
+\r
+//\r
+// *******************************************************\r
+// EFI_SMM_IO_WIDTH\r
+// *******************************************************\r
+//\r
+typedef enum {\r
+  SMM_IO_UINT8  = 0,\r
+  SMM_IO_UINT16 = 1,\r
+  SMM_IO_UINT32 = 2,\r
+  SMM_IO_UINT64 = 3\r
+} EFI_SMM_IO_WIDTH;\r
+\r
+/**\r
+  Provides the basic memory and I/O interfaces that are used to\r
+  abstract accesses to devices.\r
+\r
+  @param  This             The EFI_SMM_CPU_IO_INTERFACE instance.\r
+  @param  Width            Signifies the width of the I/O operations.\r
+  @param  Address          The base address of the I/O operations.\r
+  @param  Count            The number of I/O operations to perform.\r
+  @param  Buffer           For read operations, the destination buffer to store the results.\r
+                           For write operations, the source buffer from which to write data.\r
+\r
+  @retval EFI_SUCCESS           The data was read from or written to the device.\r
+  @retval EFI_UNSUPPORTED       The Address is not valid for this system.\r
+  @retval EFI_INVALID_PARAMETER Width or Count, or both, were invalid.\r
+  @retval EFI_OUT_OF_RESOURCES  The request could not be completed due to a lack of resources.\r
+\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_SMM_CPU_IO) (\r
+  IN EFI_SMM_CPU_IO_INTERFACE         *This,\r
+  IN EFI_SMM_IO_WIDTH                 Width,\r
+  IN UINT64                           Address,\r
+  IN UINTN                            Count,\r
+  IN OUT VOID                         *Buffer\r
+  );\r
+\r
+typedef struct {\r
+  EFI_SMM_CPU_IO  Read;\r
+  EFI_SMM_CPU_IO  Write;\r
+} EFI_SMM_IO_ACCESS;\r
+\r
+struct _EFI_SMM_CPU_IO_INTERFACE {\r
+  EFI_SMM_IO_ACCESS Mem;\r
+  EFI_SMM_IO_ACCESS Io;\r
+};\r
+\r
+/**\r
+  Allocates pool memory from SMRAM for IA-32 or runtime memory for\r
+  the Itanium processor family.\r
+\r
+  @param  PoolType         The type of pool to allocate.The only supported type is EfiRuntimeServicesData\r
+  @param  Size             The number of bytes to allocate from the pool.\r
+  @param  Buffer           A pointer to a pointer to the allocated buffer if the call\r
+                           succeeds; undefined otherwise.\r
+\r
+  @retval EFI_SUCCESS           The requested number of bytes was allocated.\r
+  @retval EFI_OUT_OF_RESOURCES  The pool requested could not be allocated.\r
+  @retval EFI_UNSUPPORTED       In runtime.\r
+\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_SMMCORE_ALLOCATE_POOL) (\r
+  IN EFI_MEMORY_TYPE                PoolType,\r
+  IN UINTN                          Size,\r
+  OUT VOID                          **Buffer\r
+  );\r
+\r
+/**\r
+  Returns pool memory to the system.\r
+\r
+  @param  Buffer           Pointer to the buffer to free.\r
+\r
+  @retval EFI_SUCCESS           The memory was returned to the system.\r
+  @retval EFI_INVALID_PARAMETER Buffer was invalid.\r
+  @retval EFI_UNSUPPORTED       In runtime.\r
+\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_SMMCORE_FREE_POOL) (\r
+  IN VOID                   *Buffer\r
+  );\r
+\r
+/**\r
+  Allocates memory pages from the system.\r
+\r
+  @param  Type             The type of allocation to perform.\r
+  @param  MemoryType       The only supported type is EfiRuntimeServicesData\r
+  @param  NumberofPages    The number of contiguous 4 KB pages to allocate\r
+  @param  Memory           Pointer to a physical address. On input, the way in which\r
+                           the address is used depends on the value of Type. On output, the address\r
+                           is set to the base of the page range that was allocated.\r
+\r
+  @retval EFI_SUCCESS           The requested pages were allocated.\r
+  @retval EFI_OUT_OF_RESOURCES  The pages requested could not be allocated.\r
+  @retval EFI_NOT_FOUND         The requested pages could not be found.\r
+  @retval EFI_INVALID_PARAMETER Type is not AllocateAnyPages or AllocateMaxAddress\r
+                                or AllocateAddress. Or MemoryType is in the range EfiMaxMemoryType..0x7FFFFFFF.\r
+\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_SMMCORE_ALLOCATE_PAGES) (\r
+  IN EFI_ALLOCATE_TYPE      Type,\r
+  IN EFI_MEMORY_TYPE        MemoryType,\r
+  IN UINTN                  NumberOfPages,\r
+  OUT EFI_PHYSICAL_ADDRESS  *Memory\r
+  );\r
+\r
+/**\r
+  Frees memory pages for the system.\r
+\r
+  @param  Memory           The base physical address of the pages to be freed\r
+  @param  NumberOfPages    The number of contiguous 4 KB pages to free.\r
+\r
+  @retval EFI_SUCCESS           The requested memory pages were freed.\r
+  @retval EFI_INVALID_PARAMETER Memory is not a page-aligned address or NumberOfPages is invalid.\r
+  @retval EFI_NOT_FOUND         The requested memory pages were not allocated with SmmAllocatePages().\r
+\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_SMMCORE_FREE_PAGES) (\r
+  IN EFI_PHYSICAL_ADDRESS   Memory,\r
+  IN UINTN                  NumberOfPages\r
+  );\r
+\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_SMM_STARTUP_THIS_AP) (\r
+  IN  EFI_AP_PROCEDURE                    Procedure,\r
+  IN  UINTN                               CpuNumber,\r
+  IN  OUT VOID                            *ProcArguments OPTIONAL\r
+  );\r
+\r
+typedef struct {\r
+  UINT8                 Reserved1[248];\r
+  UINT32                SMBASE;\r
+  UINT32                SMMRevId;\r
+  UINT16                IORestart;\r
+  UINT16                AutoHALTRestart;\r
+  UINT8                 Reserved2[164];\r
+  UINT32                ES;\r
+  UINT32                CS;\r
+  UINT32                SS;\r
+  UINT32                DS;\r
+  UINT32                FS;\r
+  UINT32                GS;\r
+  UINT32                LDTBase;\r
+  UINT32                TR;\r
+  UINT32                DR7;\r
+  UINT32                DR6;\r
+  UINT32                EAX;\r
+  UINT32                ECX;\r
+  UINT32                EDX;\r
+  UINT32                EBX;\r
+  UINT32                ESP;\r
+  UINT32                EBP;\r
+  UINT32                ESI;\r
+  UINT32                EDI;\r
+  UINT32                EIP;\r
+  UINT32                EFLAGS;\r
+  UINT32                CR3;\r
+  UINT32                CR0;\r
+} EFI_SMI_CPU_SAVE_STATE;\r
+\r
+typedef struct {\r
+  UINT64   reserved;\r
+  UINT64   r1;\r
+  UINT64   r2;\r
+  UINT64   r3;\r
+  UINT64   r4;\r
+  UINT64   r5;\r
+  UINT64   r6;\r
+  UINT64   r7;\r
+  UINT64   r8;\r
+  UINT64   r9;\r
+  UINT64   r10;\r
+  UINT64   r11;\r
+  UINT64   r12;\r
+  UINT64   r13;\r
+  UINT64   r14;\r
+  UINT64   r15;\r
+  UINT64   r16;\r
+  UINT64   r17;\r
+  UINT64   r18;\r
+  UINT64   r19;\r
+  UINT64   r20;\r
+  UINT64   r21;\r
+  UINT64   r22;\r
+  UINT64   r23;\r
+  UINT64   r24;\r
+  UINT64   r25;\r
+  UINT64   r26;\r
+  UINT64   r27;\r
+  UINT64   r28;\r
+  UINT64   r29;\r
+  UINT64   r30;\r
+  UINT64   r31;\r
+\r
+  UINT64   pr;\r
+\r
+  UINT64   b0;\r
+  UINT64   b1;\r
+  UINT64   b2;\r
+  UINT64   b3;\r
+  UINT64   b4;\r
+  UINT64   b5;\r
+  UINT64   b6;\r
+  UINT64   b7;\r
+\r
+  // application registers\r
+  UINT64   ar_rsc;\r
+  UINT64   ar_bsp;\r
+  UINT64   ar_bspstore;\r
+  UINT64   ar_rnat;\r
+\r
+  UINT64   ar_fcr;\r
+\r
+  UINT64   ar_eflag;\r
+  UINT64   ar_csd;\r
+  UINT64   ar_ssd;\r
+  UINT64   ar_cflg;\r
+  UINT64   ar_fsr;\r
+  UINT64   ar_fir;\r
+  UINT64   ar_fdr;\r
+\r
+  UINT64   ar_ccv;\r
+\r
+  UINT64   ar_unat;\r
+\r
+  UINT64   ar_fpsr;\r
+\r
+  UINT64   ar_pfs;\r
+  UINT64   ar_lc;\r
+  UINT64   ar_ec;\r
+\r
+  // control registers\r
+  UINT64   cr_dcr;\r
+  UINT64   cr_itm;\r
+  UINT64   cr_iva;\r
+  UINT64   cr_pta;\r
+  UINT64   cr_ipsr;\r
+  UINT64   cr_isr;\r
+  UINT64   cr_iip;\r
+  UINT64   cr_ifa;\r
+  UINT64   cr_itir;\r
+  UINT64   cr_iipa;\r
+  UINT64   cr_ifs;\r
+  UINT64   cr_iim;\r
+  UINT64   cr_iha;\r
+\r
+  // debug registers\r
+  UINT64   dbr0;\r
+  UINT64   dbr1;\r
+  UINT64   dbr2;\r
+  UINT64   dbr3;\r
+  UINT64   dbr4;\r
+  UINT64   dbr5;\r
+  UINT64   dbr6;\r
+  UINT64   dbr7;\r
+\r
+  UINT64   ibr0;\r
+  UINT64   ibr1;\r
+  UINT64   ibr2;\r
+  UINT64   ibr3;\r
+  UINT64   ibr4;\r
+  UINT64   ibr5;\r
+  UINT64   ibr6;\r
+  UINT64   ibr7;\r
+\r
+  // virtual registers\r
+  UINT64   int_nat;         // nat bits for R1-R31\r
+\r
+} EFI_PMI_SYSTEM_CONTEXT;\r
+\r
+typedef union {\r
+  EFI_SMI_CPU_SAVE_STATE     Ia32SaveState;\r
+  EFI_PMI_SYSTEM_CONTEXT     ItaniumSaveState;\r
+} EFI_SMM_CPU_SAVE_STATE;\r
+\r
+typedef struct {\r
+  UINT16                Fcw;\r
+  UINT16                Fsw;\r
+  UINT16                Ftw;\r
+  UINT16                Opcode;\r
+  UINT32                Eip;\r
+  UINT16                Cs;\r
+  UINT16                Rsvd1;\r
+  UINT32                DataOffset;\r
+  UINT16                Ds;\r
+  UINT8                 Rsvd2[10];\r
+  UINT8                 St0Mm0[10], Rsvd3[6];\r
+  UINT8                 St0Mm1[10], Rsvd4[6];\r
+  UINT8                 St0Mm2[10], Rsvd5[6];\r
+  UINT8                 St0Mm3[10], Rsvd6[6];\r
+  UINT8                 St0Mm4[10], Rsvd7[6];\r
+  UINT8                 St0Mm5[10], Rsvd8[6];\r
+  UINT8                 St0Mm6[10], Rsvd9[6];\r
+  UINT8                 St0Mm7[10], Rsvd10[6];\r
+  UINT8                 Rsvd11[22*16];\r
+} EFI_SMI_OPTIONAL_FPSAVE_STATE;\r
+\r
+typedef struct {\r
+  UINT64   f2[2];\r
+  UINT64   f3[2];\r
+  UINT64   f4[2];\r
+  UINT64   f5[2];\r
+  UINT64   f6[2];\r
+  UINT64   f7[2];\r
+  UINT64   f8[2];\r
+  UINT64   f9[2];\r
+  UINT64   f10[2];\r
+  UINT64   f11[2];\r
+  UINT64   f12[2];\r
+  UINT64   f13[2];\r
+  UINT64   f14[2];\r
+  UINT64   f15[2];\r
+  UINT64   f16[2];\r
+  UINT64   f17[2];\r
+  UINT64   f18[2];\r
+  UINT64   f19[2];\r
+  UINT64   f20[2];\r
+  UINT64   f21[2];\r
+  UINT64   f22[2];\r
+  UINT64   f23[2];\r
+  UINT64   f24[2];\r
+  UINT64   f25[2];\r
+  UINT64   f26[2];\r
+  UINT64   f27[2];\r
+  UINT64   f28[2];\r
+  UINT64   f29[2];\r
+  UINT64   f30[2];\r
+  UINT64   f31[2];\r
+} EFI_PMI_OPTIONAL_FLOATING_POINT_CONTEXT;\r
+\r
+typedef union {\r
+  EFI_SMI_OPTIONAL_FPSAVE_STATE             Ia32FpSave;\r
+  EFI_PMI_OPTIONAL_FLOATING_POINT_CONTEXT   ItaniumFpSave;\r
+} EFI_SMM_FLOATING_POINT_SAVE_STATE;\r
+\r
+/**\r
+  This function is the main entry point for an SMM handler dispatch\r
+  or communicate-based callback.\r
+\r
+  @param  SmmImageHandle   A unique value returned by the SMM infrastructure\r
+                           in response to registration for a communicate-based callback or dispatch.\r
+  @param  CommunicationBuffer\r
+                           An optional buffer that will be populated\r
+                           by the SMM infrastructure in response to a non-SMM agent (preboot or runtime)\r
+                           invoking the EFI_SMM_BASE_PROTOCOL.Communicate() service.\r
+  @param  SourceSize       If CommunicationBuffer is non-NULL, this field\r
+                           indicates the size of the data payload in this buffer.\r
+\r
+  @return Status Code\r
+\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_SMM_HANDLER_ENTRY_POINT) (\r
+  IN EFI_HANDLE             SmmImageHandle,\r
+  IN OUT VOID               *CommunicationBuffer OPTIONAL,\r
+  IN OUT UINTN              *SourceSize OPTIONAL\r
+  );\r
+\r
+/**\r
+  The SmmInstallConfigurationTable() function is used to maintain the list\r
+  of configuration tables that are stored in the System Management System\r
+  Table.  The list is stored as an array of (GUID, Pointer) pairs.  The list\r
+  must be allocated from pool memory with PoolType set to EfiRuntimeServicesData.\r
+\r
+  @param  SystemTable      A pointer to the SMM System Table.\r
+  @param  Guid             A pointer to the GUID for the entry to add, update, or remove.\r
+  @param  Table            A pointer to the buffer of the table to add.\r
+  @param  TableSize        The size of the table to install.\r
+\r
+  @retval EFI_SUCCESS           The (Guid, Table) pair was added, updated, or removed.\r
+  @retval EFI_INVALID_PARAMETER Guid is not valid.\r
+  @retval EFI_NOT_FOUND         An attempt was made to delete a non-existent entry.\r
+  @retval EFI_OUT_OF_RESOURCES  There is not enough memory available to complete the operation.\r
+\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_SMM_INSTALL_CONFIGURATION_TABLE) (\r
+  IN EFI_SMM_SYSTEM_TABLE         *SystemTable,\r
+  IN EFI_GUID                     *Guid,\r
+  IN VOID                         *Table,\r
+  IN UINTN                        TableSize\r
+  );\r
+\r
+//\r
+// System Management System Table (SMST)\r
+//\r
+struct _EFI_SMM_SYSTEM_TABLE {\r
+  EFI_TABLE_HEADER                    Hdr;\r
+\r
+  CHAR16                              *SmmFirmwareVendor;\r
+  UINT32                              SmmFirmwareRevision;\r
+\r
+  EFI_SMM_INSTALL_CONFIGURATION_TABLE SmmInstallConfigurationTable;\r
+\r
+  //\r
+  // I/O Services\r
+  //\r
+  EFI_GUID                            EfiSmmCpuIoGuid;\r
+  EFI_SMM_CPU_IO_INTERFACE            SmmIo;\r
+\r
+  //\r
+  // Runtime memory service\r
+  //\r
+  EFI_SMMCORE_ALLOCATE_POOL           SmmAllocatePool;\r
+  EFI_SMMCORE_FREE_POOL               SmmFreePool;\r
+  EFI_SMMCORE_ALLOCATE_PAGES          SmmAllocatePages;\r
+  EFI_SMMCORE_FREE_PAGES              SmmFreePages;\r
+\r
+  //\r
+  // MP service\r
+  //\r
+  EFI_SMM_STARTUP_THIS_AP             SmmStartupThisAp;\r
+\r
+  //\r
+  // CPU information records\r
+  //\r
+  UINTN                               CurrentlyExecutingCpu;\r
+  UINTN                               NumberOfCpus;\r
+  EFI_SMM_CPU_SAVE_STATE              *CpuSaveState;\r
+  EFI_SMM_FLOATING_POINT_SAVE_STATE   *CpuOptionalFloatingPointState;\r
+\r
+  //\r
+  // Extensibility table\r
+  //\r
+  UINTN                               NumberOfTableEntries;\r
+  EFI_CONFIGURATION_TABLE             *SmmConfigurationTable;\r
+};\r
+\r
+#endif\r
diff --git a/IntelFrameworkPkg/Include/Framework/StatusCode.h b/IntelFrameworkPkg/Include/Framework/StatusCode.h
new file mode 100644 (file)
index 0000000..6e997b6
--- /dev/null
@@ -0,0 +1,905 @@
+/** @file\r
+  Status Code Definitions, according to Intel Platform Innovation Framework\r
+  for EFI Status Codes Specification\r
+\r
+  The file is divided into sections for ease of use.\r
+\r
+<pre>\r
+  Section:    Contents:\r
+  1           General Status Code Definitions\r
+  2           Class definitions\r
+  3           Computing Unit Subclasses, Progress and Error Codes\r
+  4           Peripheral Subclasses, Progress and Error Codes.\r
+  5           IO Bus Subclasses, Progress and Error Codes.\r
+  6           Software Subclasses, Progress and Error Codes.\r
+  7           Debug Codes\r
+</pre>\r
+\r
+  Copyright (c) 2007, Intel Corporation\r
+  All rights reserved. This program and the accompanying materials\r
+  are licensed and made available under the terms and conditions of the BSD License\r
+  which accompanies this distribution.  The full text of the license may be found at\r
+  http://opensource.org/licenses/bsd-license.php\r
+\r
+  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:  StatusCode.h\r
+\r
+  @par Revision Reference:\r
+  Version 0.92.\r
+\r
+**/\r
+\r
+#ifndef _FRAMEWORK_STATUS_CODE_H_\r
+#define _FRAMEWORK_STATUS_CODE_H_\r
+\r
+#include <PiPei.h>\r
+\r
+//\r
+// /////////////////////////////////////////////////////////////////////////////\r
+// Section 1\r
+////////////////////////////////////////////////////////////////////////////////\r
+\r
+//\r
+// Data Hub Status Code class record definition\r
+// This structure isn't adopted by PI, so is defined here.\r
+//\r
+typedef struct {\r
+  EFI_STATUS_CODE_TYPE  CodeType;\r
+  EFI_STATUS_CODE_VALUE Value;\r
+  UINT32                Instance;\r
+  EFI_GUID              CallerId;\r
+  EFI_STATUS_CODE_DATA  Data;\r
+} DATA_HUB_STATUS_CODE_DATA_RECORD;\r
+\r
+//\r
+// /////////////////////////////////////////////////////////////////////////////\r
+// Section 2\r
+///////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Class definitions\r
+// Values of 4-127 are reserved for future use by this\r
+// specification.\r
+// Values in the range 127-255 are reserved for OEM use.\r
+//\r
+#define EFI_COMPUTING_UNIT  0x00000000\r
+#define EFI_PERIPHERAL      0x01000000\r
+#define EFI_IO_BUS          0x02000000\r
+#define EFI_SOFTWARE        0x03000000\r
+\r
+//\r
+// General partitioning scheme for Progress and Error Codes are\r
+// 0x0000-0x0FFF  - Shared by all sub-classes in a given class\r
+// 0x1000-0x7FFF  - Subclass Specific\r
+// 0x8000-0xFFFF  - OEM specific\r
+//\r
+#define EFI_SUBCLASS_SPECIFIC 0x1000\r
+#define EFI_OEM_SPECIFIC      0x8000\r
+\r
+//\r
+// /////////////////////////////////////////////////////////////////////////////\r
+// Section 3\r
+///////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Computing Unit Subclass definitions.\r
+// Values of 8-127 are reserved for future use by this\r
+// specification.\r
+// Values of 128-255 are reserved for OEM use.\r
+//\r
+#define EFI_COMPUTING_UNIT_UNSPECIFIED        (EFI_COMPUTING_UNIT | 0x00000000)\r
+#define EFI_COMPUTING_UNIT_HOST_PROCESSOR     (EFI_COMPUTING_UNIT | 0x00010000)\r
+#define EFI_COMPUTING_UNIT_FIRMWARE_PROCESSOR (EFI_COMPUTING_UNIT | 0x00020000)\r
+#define EFI_COMPUTING_UNIT_IO_PROCESSOR       (EFI_COMPUTING_UNIT | 0x00030000)\r
+#define EFI_COMPUTING_UNIT_CACHE              (EFI_COMPUTING_UNIT | 0x00040000)\r
+#define EFI_COMPUTING_UNIT_MEMORY             (EFI_COMPUTING_UNIT | 0x00050000)\r
+#define EFI_COMPUTING_UNIT_CHIPSET            (EFI_COMPUTING_UNIT | 0x00060000)\r
+\r
+//\r
+// Computing Unit Class Progress Code definitions.\r
+// These are shared by all subclasses.\r
+//\r
+#define EFI_CU_PC_INIT_BEGIN  0x00000000\r
+#define EFI_CU_PC_INIT_END    0x00000001\r
+\r
+//\r
+// Computing Unit Unspecified Subclass Progress Code definitions.\r
+//\r
+//\r
+// Computing Unit Host Processor Subclass Progress Code definitions.\r
+//\r
+#define EFI_CU_HP_PC_POWER_ON_INIT          (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
+#define EFI_CU_HP_PC_CACHE_INIT             (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
+#define EFI_CU_HP_PC_RAM_INIT               (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
+#define EFI_CU_HP_PC_MEMORY_CONTROLLER_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000003)\r
+#define EFI_CU_HP_PC_IO_INIT                (EFI_SUBCLASS_SPECIFIC | 0x00000004)\r
+#define EFI_CU_HP_PC_BSP_SELECT             (EFI_SUBCLASS_SPECIFIC | 0x00000005)\r
+#define EFI_CU_HP_PC_BSP_RESELECT           (EFI_SUBCLASS_SPECIFIC | 0x00000006)\r
+#define EFI_CU_HP_PC_AP_INIT                (EFI_SUBCLASS_SPECIFIC | 0x00000007)\r
+#define EFI_CU_HP_PC_SMM_INIT               (EFI_SUBCLASS_SPECIFIC | 0x00000008)\r
+\r
+//\r
+// Computing Unit Firmware Processor Subclass Progress Code definitions.\r
+//\r
+//\r
+// Computing Unit IO Processor Subclass Progress Code definitions.\r
+//\r
+//\r
+// Computing Unit Cache Subclass Progress Code definitions.\r
+//\r
+#define EFI_CU_CACHE_PC_PRESENCE_DETECT (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
+#define EFI_CU_CACHE_PC_CONFIGURATION   (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
+\r
+//\r
+// Computing Unit Memory Subclass Progress Code definitions.\r
+//\r
+#define EFI_CU_MEMORY_PC_SPD_READ         (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
+#define EFI_CU_MEMORY_PC_PRESENCE_DETECT  (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
+#define EFI_CU_MEMORY_PC_TIMING           (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
+#define EFI_CU_MEMORY_PC_CONFIGURING      (EFI_SUBCLASS_SPECIFIC | 0x00000003)\r
+#define EFI_CU_MEMORY_PC_OPTIMIZING       (EFI_SUBCLASS_SPECIFIC | 0x00000004)\r
+#define EFI_CU_MEMORY_PC_INIT             (EFI_SUBCLASS_SPECIFIC | 0x00000005)\r
+#define EFI_CU_MEMORY_PC_TEST             (EFI_SUBCLASS_SPECIFIC | 0x00000006)\r
+\r
+//\r
+// Computing Unit Chipset Subclass Progress Code definitions.\r
+//\r
+//\r
+// Computing Unit Class Error Code definitions.\r
+// These are shared by all subclasses.\r
+//\r
+#define EFI_CU_EC_NON_SPECIFIC    0x00000000\r
+#define EFI_CU_EC_DISABLED        0x00000001\r
+#define EFI_CU_EC_NOT_SUPPORTED   0x00000002\r
+#define EFI_CU_EC_NOT_DETECTED    0x00000003\r
+#define EFI_CU_EC_NOT_CONFIGURED  0x00000004\r
+\r
+//\r
+// Computing Unit Unspecified Subclass Error Code definitions.\r
+//\r
+//\r
+// Computing Unit Host Processor Subclass Error Code definitions.\r
+//\r
+#define EFI_CU_HP_EC_INVALID_TYPE         (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
+#define EFI_CU_HP_EC_INVALID_SPEED        (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
+#define EFI_CU_HP_EC_MISMATCH             (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
+#define EFI_CU_HP_EC_TIMER_EXPIRED        (EFI_SUBCLASS_SPECIFIC | 0x00000003)\r
+#define EFI_CU_HP_EC_SELF_TEST            (EFI_SUBCLASS_SPECIFIC | 0x00000004)\r
+#define EFI_CU_HP_EC_INTERNAL             (EFI_SUBCLASS_SPECIFIC | 0x00000005)\r
+#define EFI_CU_HP_EC_THERMAL              (EFI_SUBCLASS_SPECIFIC | 0x00000006)\r
+#define EFI_CU_HP_EC_LOW_VOLTAGE          (EFI_SUBCLASS_SPECIFIC | 0x00000007)\r
+#define EFI_CU_HP_EC_HIGH_VOLTAGE         (EFI_SUBCLASS_SPECIFIC | 0x00000008)\r
+#define EFI_CU_HP_EC_CACHE                (EFI_SUBCLASS_SPECIFIC | 0x00000009)\r
+#define EFI_CU_HP_EC_MICROCODE_UPDATE     (EFI_SUBCLASS_SPECIFIC | 0x0000000A)\r
+#define EFI_CU_HP_EC_CORRECTABLE          (EFI_SUBCLASS_SPECIFIC | 0x0000000B)\r
+#define EFI_CU_HP_EC_UNCORRECTABLE        (EFI_SUBCLASS_SPECIFIC | 0x0000000C)\r
+#define EFI_CU_HP_EC_NO_MICROCODE_UPDATE  (EFI_SUBCLASS_SPECIFIC | 0x0000000D)\r
+\r
+//\r
+// Computing Unit Firmware Processor Subclass Error Code definitions.\r
+//\r
+#define EFI_CU_FP_EC_HARD_FAIL  (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
+#define EFI_CU_FP_EC_SOFT_FAIL  (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
+#define EFI_CU_FP_EC_COMM_ERROR (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
+\r
+//\r
+// Computing Unit IO Processor Subclass Error Code definitions.\r
+//\r
+//\r
+// Computing Unit Cache Subclass Error Code definitions.\r
+//\r
+#define EFI_CU_CACHE_EC_INVALID_TYPE  (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
+#define EFI_CU_CACHE_EC_INVALID_SPEED (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
+#define EFI_CU_CACHE_EC_INVALID_SIZE  (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
+#define EFI_CU_CACHE_EC_MISMATCH      (EFI_SUBCLASS_SPECIFIC | 0x00000003)\r
+\r
+//\r
+// Computing Unit Memory Subclass Error Code definitions.\r
+//\r
+#define EFI_CU_MEMORY_EC_INVALID_TYPE   (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
+#define EFI_CU_MEMORY_EC_INVALID_SPEED  (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
+#define EFI_CU_MEMORY_EC_CORRECTABLE    (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
+#define EFI_CU_MEMORY_EC_UNCORRECTABLE  (EFI_SUBCLASS_SPECIFIC | 0x00000003)\r
+#define EFI_CU_MEMORY_EC_SPD_FAIL       (EFI_SUBCLASS_SPECIFIC | 0x00000004)\r
+#define EFI_CU_MEMORY_EC_INVALID_SIZE   (EFI_SUBCLASS_SPECIFIC | 0x00000005)\r
+#define EFI_CU_MEMORY_EC_MISMATCH       (EFI_SUBCLASS_SPECIFIC | 0x00000006)\r
+#define EFI_CU_MEMORY_EC_S3_RESUME_FAIL (EFI_SUBCLASS_SPECIFIC | 0x00000007)\r
+#define EFI_CU_MEMORY_EC_UPDATE_FAIL    (EFI_SUBCLASS_SPECIFIC | 0x00000008)\r
+#define EFI_CU_MEMORY_EC_NONE_DETECTED  (EFI_SUBCLASS_SPECIFIC | 0x00000009)\r
+#define EFI_CU_MEMORY_EC_NONE_USEFUL    (EFI_SUBCLASS_SPECIFIC | 0x0000000A)\r
+\r
+//\r
+// Computing Unit Chipset Subclass Error Code definitions.\r
+//\r
+\r
+///////////////////////////////////////////////////////////////////////////////\r
+// Section 4\r
+///////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Peripheral Subclass definitions.\r
+// Values of 12-127 are reserved for future use by this\r
+// specification.\r
+// Values of 128-255 are reserved for OEM use.\r
+//\r
+#define EFI_PERIPHERAL_UNSPECIFIED      (EFI_PERIPHERAL | 0x00000000)\r
+#define EFI_PERIPHERAL_KEYBOARD         (EFI_PERIPHERAL | 0x00010000)\r
+#define EFI_PERIPHERAL_MOUSE            (EFI_PERIPHERAL | 0x00020000)\r
+#define EFI_PERIPHERAL_LOCAL_CONSOLE    (EFI_PERIPHERAL | 0x00030000)\r
+#define EFI_PERIPHERAL_REMOTE_CONSOLE   (EFI_PERIPHERAL | 0x00040000)\r
+#define EFI_PERIPHERAL_SERIAL_PORT      (EFI_PERIPHERAL | 0x00050000)\r
+#define EFI_PERIPHERAL_PARALLEL_PORT    (EFI_PERIPHERAL | 0x00060000)\r
+#define EFI_PERIPHERAL_FIXED_MEDIA      (EFI_PERIPHERAL | 0x00070000)\r
+#define EFI_PERIPHERAL_REMOVABLE_MEDIA  (EFI_PERIPHERAL | 0x00080000)\r
+#define EFI_PERIPHERAL_AUDIO_INPUT      (EFI_PERIPHERAL | 0x00090000)\r
+#define EFI_PERIPHERAL_AUDIO_OUTPUT     (EFI_PERIPHERAL | 0x000A0000)\r
+#define EFI_PERIPHERAL_LCD_DEVICE       (EFI_PERIPHERAL | 0x000B0000)\r
+#define EFI_PERIPHERAL_NETWORK          (EFI_PERIPHERAL | 0x000C0000)\r
+\r
+//\r
+// Peripheral Class Progress Code definitions.\r
+// These are shared by all subclasses.\r
+//\r
+#define EFI_P_PC_INIT             0x00000000\r
+#define EFI_P_PC_RESET            0x00000001\r
+#define EFI_P_PC_DISABLE          0x00000002\r
+#define EFI_P_PC_PRESENCE_DETECT  0x00000003\r
+#define EFI_P_PC_ENABLE           0x00000004\r
+#define EFI_P_PC_RECONFIG         0x00000005\r
+#define EFI_P_PC_DETECTED         0x00000006\r
+\r
+//\r
+// Peripheral Class Unspecified Subclass Progress Code definitions.\r
+//\r
+//\r
+// Peripheral Class Keyboard Subclass Progress Code definitions.\r
+//\r
+#define EFI_P_KEYBOARD_PC_CLEAR_BUFFER  (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
+#define EFI_P_KEYBOARD_PC_SELF_TEST     (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
+\r
+//\r
+// Peripheral Class Mouse Subclass Progress Code definitions.\r
+//\r
+#define EFI_P_MOUSE_PC_SELF_TEST  (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
+\r
+//\r
+// Peripheral Class Local Console Subclass Progress Code definitions.\r
+//\r
+//\r
+// Peripheral Class Remote Console Subclass Progress Code definitions.\r
+//\r
+//\r
+// Peripheral Class Serial Port Subclass Progress Code definitions.\r
+//\r
+#define EFI_P_SERIAL_PORT_PC_CLEAR_BUFFER (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
+\r
+//\r
+// Peripheral Class Parallel Port Subclass Progress Code definitions.\r
+//\r
+//\r
+// Peripheral Class Fixed Media Subclass Progress Code definitions.\r
+//\r
+//\r
+// Peripheral Class Removable Media Subclass Progress Code definitions.\r
+//\r
+//\r
+// Peripheral Class Audio Input Subclass Progress Code definitions.\r
+//\r
+//\r
+// Peripheral Class Audio Output Subclass Progress Code definitions.\r
+//\r
+//\r
+// Peripheral Class LCD Device Subclass Progress Code definitions.\r
+//\r
+//\r
+// Peripheral Class Network Subclass Progress Code definitions.\r
+//\r
+//\r
+// Peripheral Class Error Code definitions.\r
+// These are shared by all subclasses.\r
+//\r
+#define EFI_P_EC_NON_SPECIFIC       0x00000000\r
+#define EFI_P_EC_DISABLED           0x00000001\r
+#define EFI_P_EC_NOT_SUPPORTED      0x00000002\r
+#define EFI_P_EC_NOT_DETECTED       0x00000003\r
+#define EFI_P_EC_NOT_CONFIGURED     0x00000004\r
+#define EFI_P_EC_INTERFACE_ERROR    0x00000005\r
+#define EFI_P_EC_CONTROLLER_ERROR   0x00000006\r
+#define EFI_P_EC_INPUT_ERROR        0x00000007\r
+#define EFI_P_EC_OUTPUT_ERROR       0x00000008\r
+#define EFI_P_EC_RESOURCE_CONFLICT  0x00000009\r
+\r
+//\r
+// Peripheral Class Unspecified Subclass Error Code definitions.\r
+//\r
+//\r
+// Peripheral Class Keyboard Subclass Error Code definitions.\r
+//\r
+#define EFI_P_KEYBOARD_EC_LOCKED    (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
+#define EFI_P_KEYBOARD_EC_STUCK_KEY (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
+\r
+//\r
+// Peripheral Class Mouse Subclass Error Code definitions.\r
+//\r
+#define EFI_P_MOUSE_EC_LOCKED (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
+\r
+//\r
+// Peripheral Class Local Console Subclass Error Code definitions.\r
+//\r
+//\r
+// Peripheral Class Remote Console Subclass Error Code definitions.\r
+//\r
+//\r
+// Peripheral Class Serial Port Subclass Error Code definitions.\r
+//\r
+//\r
+// Peripheral Class Parallel Port Subclass Error Code definitions.\r
+//\r
+//\r
+// Peripheral Class Fixed Media Subclass Error Code definitions.\r
+//\r
+//\r
+// Peripheral Class Removable Media Subclass Error Code definitions.\r
+//\r
+//\r
+// Peripheral Class Audio Input Subclass Error Code definitions.\r
+//\r
+//\r
+// Peripheral Class Audio Output Subclass Error Code definitions.\r
+//\r
+//\r
+// Peripheral Class LCD Device Subclass Error Code definitions.\r
+//\r
+//\r
+// Peripheral Class Network Subclass Error Code definitions.\r
+//\r
+\r
+///////////////////////////////////////////////////////////////////////////////\r
+// Section 5\r
+///////////////////////////////////////////////////////////////////////////////\r
+//\r
+// IO Bus Subclass definitions.\r
+// Values of 14-127 are reserved for future use by this\r
+// specification.\r
+// Values of 128-255 are reserved for OEM use.\r
+//\r
+#define EFI_IO_BUS_UNSPECIFIED  (EFI_IO_BUS | 0x00000000)\r
+#define EFI_IO_BUS_PCI          (EFI_IO_BUS | 0x00010000)\r
+#define EFI_IO_BUS_USB          (EFI_IO_BUS | 0x00020000)\r
+#define EFI_IO_BUS_IBA          (EFI_IO_BUS | 0x00030000)\r
+#define EFI_IO_BUS_AGP          (EFI_IO_BUS | 0x00040000)\r
+#define EFI_IO_BUS_PC_CARD      (EFI_IO_BUS | 0x00050000)\r
+#define EFI_IO_BUS_LPC          (EFI_IO_BUS | 0x00060000)\r
+#define EFI_IO_BUS_SCSI         (EFI_IO_BUS | 0x00070000)\r
+#define EFI_IO_BUS_ATA_ATAPI    (EFI_IO_BUS | 0x00080000)\r
+#define EFI_IO_BUS_FC           (EFI_IO_BUS | 0x00090000)\r
+#define EFI_IO_BUS_IP_NETWORK   (EFI_IO_BUS | 0x000A0000)\r
+#define EFI_IO_BUS_SMBUS        (EFI_IO_BUS | 0x000B0000)\r
+#define EFI_IO_BUS_I2C          (EFI_IO_BUS | 0x000C0000)\r
+\r
+//\r
+// IO Bus Class Progress Code definitions.\r
+// These are shared by all subclasses.\r
+//\r
+#define EFI_IOB_PC_INIT     0x00000000\r
+#define EFI_IOB_PC_RESET    0x00000001\r
+#define EFI_IOB_PC_DISABLE  0x00000002\r
+#define EFI_IOB_PC_DETECT   0x00000003\r
+#define EFI_IOB_PC_ENABLE   0x00000004\r
+#define EFI_IOB_PC_RECONFIG 0x00000005\r
+#define EFI_IOB_PC_HOTPLUG  0x00000006\r
+\r
+//\r
+// IO Bus Class Unspecified Subclass Progress Code definitions.\r
+//\r
+//\r
+// IO Bus Class PCI Subclass Progress Code definitions.\r
+//\r
+#define EFI_IOB_PCI_PC_BUS_ENUM   (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
+#define EFI_IOB_PCI_PC_RES_ALLOC  (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
+#define EFI_IOB_PCI_PC_HPC_INIT   (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
+\r
+//\r
+// IO Bus Class USB Subclass Progress Code definitions.\r
+//\r
+//\r
+// IO Bus Class IBA Subclass Progress Code definitions.\r
+//\r
+//\r
+// IO Bus Class AGP Subclass Progress Code definitions.\r
+//\r
+//\r
+// IO Bus Class PC Card Subclass Progress Code definitions.\r
+//\r
+//\r
+// IO Bus Class LPC Subclass Progress Code definitions.\r
+//\r
+//\r
+// IO Bus Class SCSI Subclass Progress Code definitions.\r
+//\r
+//\r
+// IO Bus Class ATA/ATAPI Subclass Progress Code definitions.\r
+//\r
+#define EFI_IOB_ATA_BUS_SMART_ENABLE          (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
+#define EFI_IOB_ATA_BUS_SMART_DISABLE         (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
+#define EFI_IOB_ATA_BUS_SMART_OVERTHRESHOLD   (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
+#define EFI_IOB_ATA_BUS_SMART_UNDERTHRESHOLD  (EFI_SUBCLASS_SPECIFIC | 0x00000003)\r
+\r
+//\r
+// IO Bus Class FC Subclass Progress Code definitions.\r
+//\r
+//\r
+// IO Bus Class IP Network Subclass Progress Code definitions.\r
+//\r
+//\r
+// IO Bus Class SMBUS Subclass Progress Code definitions.\r
+//\r
+//\r
+// IO Bus Class I2C Subclass Progress Code definitions.\r
+//\r
+//\r
+// IO Bus Class Error Code definitions.\r
+// These are shared by all subclasses.\r
+//\r
+#define EFI_IOB_EC_NON_SPECIFIC       0x00000000\r
+#define EFI_IOB_EC_DISABLED           0x00000001\r
+#define EFI_IOB_EC_NOT_SUPPORTED      0x00000002\r
+#define EFI_IOB_EC_NOT_DETECTED       0x00000003\r
+#define EFI_IOB_EC_NOT_CONFIGURED     0x00000004\r
+#define EFI_IOB_EC_INTERFACE_ERROR    0x00000005\r
+#define EFI_IOB_EC_CONTROLLER_ERROR   0x00000006\r
+#define EFI_IOB_EC_READ_ERROR         0x00000007\r
+#define EFI_IOB_EC_WRITE_ERROR        0x00000008\r
+#define EFI_IOB_EC_RESOURCE_CONFLICT  0x00000009\r
+\r
+//\r
+// IO Bus Class Unspecified Subclass Error Code definitions.\r
+//\r
+//\r
+// IO Bus Class PCI Subclass Error Code definitions.\r
+//\r
+#define EFI_IOB_PCI_EC_PERR (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
+#define EFI_IOB_PCI_EC_SERR (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
+\r
+//\r
+// IO Bus Class USB Subclass Error Code definitions.\r
+//\r
+//\r
+// IO Bus Class IBA Subclass Error Code definitions.\r
+//\r
+//\r
+// IO Bus Class AGP Subclass Error Code definitions.\r
+//\r
+//\r
+// IO Bus Class PC Card Subclass Error Code definitions.\r
+//\r
+//\r
+// IO Bus Class LPC Subclass Error Code definitions.\r
+//\r
+//\r
+// IO Bus Class SCSI Subclass Error Code definitions.\r
+//\r
+//\r
+// IO Bus Class ATA/ATAPI Subclass Error Code definitions.\r
+//\r
+#define EFI_IOB_ATA_BUS_SMART_NOTSUPPORTED  (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
+#define EFI_IOB_ATA_BUS_SMART_DISABLED      (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
+\r
+//\r
+// IO Bus Class FC Subclass Error Code definitions.\r
+//\r
+//\r
+// IO Bus Class IP Network Subclass Error Code definitions.\r
+//\r
+//\r
+// IO Bus Class SMBUS Subclass Error Code definitions.\r
+//\r
+//\r
+// IO Bus Class I2C Subclass Error Code definitions.\r
+//\r
+\r
+///////////////////////////////////////////////////////////////////////////////\r
+// Section 6\r
+///////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Software Subclass definitions.\r
+// Values of 14-127 are reserved for future use by this\r
+// specification.\r
+// Values of 128-255 are reserved for OEM use.\r
+//\r
+#define EFI_SOFTWARE_UNSPECIFIED          (EFI_SOFTWARE | 0x00000000)\r
+#define EFI_SOFTWARE_SEC                  (EFI_SOFTWARE | 0x00010000)\r
+#define EFI_SOFTWARE_PEI_CORE             (EFI_SOFTWARE | 0x00020000)\r
+#define EFI_SOFTWARE_PEI_MODULE           (EFI_SOFTWARE | 0x00030000)\r
+#define EFI_SOFTWARE_DXE_CORE             (EFI_SOFTWARE | 0x00040000)\r
+#define EFI_SOFTWARE_DXE_BS_DRIVER        (EFI_SOFTWARE | 0x00050000)\r
+#define EFI_SOFTWARE_DXE_RT_DRIVER        (EFI_SOFTWARE | 0x00060000)\r
+#define EFI_SOFTWARE_SMM_DRIVER           (EFI_SOFTWARE | 0x00070000)\r
+#define EFI_SOFTWARE_EFI_APPLICATION      (EFI_SOFTWARE | 0x00080000)\r
+#define EFI_SOFTWARE_EFI_OS_LOADER        (EFI_SOFTWARE | 0x00090000)\r
+#define EFI_SOFTWARE_RT                   (EFI_SOFTWARE | 0x000A0000)\r
+#define EFI_SOFTWARE_AL                   (EFI_SOFTWARE | 0x000B0000)\r
+#define EFI_SOFTWARE_EBC_EXCEPTION        (EFI_SOFTWARE | 0x000C0000)\r
+#define EFI_SOFTWARE_IA32_EXCEPTION       (EFI_SOFTWARE | 0x000D0000)\r
+#define EFI_SOFTWARE_IPF_EXCEPTION        (EFI_SOFTWARE | 0x000E0000)\r
+#define EFI_SOFTWARE_PEI_SERVICE          (EFI_SOFTWARE | 0x000F0000)\r
+#define EFI_SOFTWARE_EFI_BOOT_SERVICE     (EFI_SOFTWARE | 0x00100000)\r
+#define EFI_SOFTWARE_EFI_RUNTIME_SERVICE  (EFI_SOFTWARE | 0x00110000)\r
+#define EFI_SOFTWARE_EFI_DXE_SERVICE      (EFI_SOFTWARE | 0x00120000)\r
+#define EFI_SOFTWARE_X64_EXCEPTION        (EFI_SOFTWARE | 0x00130000)\r
+\r
+//\r
+// Software Class Progress Code definitions.\r
+// These are shared by all subclasses.\r
+//\r
+#define EFI_SW_PC_INIT                0x00000000\r
+#define EFI_SW_PC_LOAD                0x00000001\r
+#define EFI_SW_PC_INIT_BEGIN          0x00000002\r
+#define EFI_SW_PC_INIT_END            0x00000003\r
+#define EFI_SW_PC_AUTHENTICATE_BEGIN  0x00000004\r
+#define EFI_SW_PC_AUTHENTICATE_END    0x00000005\r
+#define EFI_SW_PC_INPUT_WAIT          0x00000006\r
+#define EFI_SW_PC_USER_SETUP          0x00000007\r
+\r
+//\r
+// Software Class Unspecified Subclass Progress Code definitions.\r
+//\r
+//\r
+// Software Class SEC Subclass Progress Code definitions.\r
+//\r
+#define EFI_SW_SEC_PC_ENTRY_POINT     (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
+#define EFI_SW_SEC_PC_HANDOFF_TO_NEXT (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
+\r
+//\r
+// Software Class PEI Core Subclass Progress Code definitions.\r
+//\r
+#define EFI_SW_PEI_CORE_PC_ENTRY_POINT      (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
+#define EFI_SW_PEI_CORE_PC_HANDOFF_TO_NEXT  (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
+#define EFI_SW_PEI_CORE_PC_RETURN_TO_LAST   (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
+\r
+//\r
+// Software Class PEI Module Subclass Progress Code definitions.\r
+//\r
+#define EFI_SW_PEIM_PC_RECOVERY_BEGIN (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
+#define EFI_SW_PEIM_PC_CAPSULE_LOAD   (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
+#define EFI_SW_PEIM_PC_CAPSULE_START  (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
+#define EFI_SW_PEIM_PC_RECOVERY_USER  (EFI_SUBCLASS_SPECIFIC | 0x00000003)\r
+#define EFI_SW_PEIM_PC_RECOVERY_AUTO  (EFI_SUBCLASS_SPECIFIC | 0x00000004)\r
+\r
+//\r
+// Software Class DXE Core Subclass Progress Code definitions.\r
+//\r
+#define EFI_SW_DXE_CORE_PC_ENTRY_POINT      (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
+#define EFI_SW_DXE_CORE_PC_HANDOFF_TO_NEXT  (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
+#define EFI_SW_DXE_CORE_PC_RETURN_TO_LAST   (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
+#define EFI_SW_DXE_CORE_PC_START_DRIVER     (EFI_SUBCLASS_SPECIFIC | 0x00000003)\r
+\r
+//\r
+// Software Class DXE BS Driver Subclass Progress Code definitions.\r
+//\r
+#define EFI_SW_DXE_BS_PC_LEGACY_OPROM_INIT            (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
+#define EFI_SW_DXE_BS_PC_READY_TO_BOOT_EVENT          (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
+#define EFI_SW_DXE_BS_PC_LEGACY_BOOT_EVENT            (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
+#define EFI_SW_DXE_BS_PC_EXIT_BOOT_SERVICES_EVENT     (EFI_SUBCLASS_SPECIFIC | 0x00000003)\r
+#define EFI_SW_DXE_BS_PC_VIRTUAL_ADDRESS_CHANGE_EVENT (EFI_SUBCLASS_SPECIFIC | 0x00000004)\r
+#define EFI_SW_DXE_BS_PC_BEGIN_CONNECTING_DRIVERS     (EFI_SUBCLASS_SPECIFIC | 0x00000005)\r
+#define EFI_SW_DXE_BS_PC_VERIFYING_PASSWORD           (EFI_SUBCLASS_SPECIFIC | 0x00000006)\r
+\r
+//\r
+// Software Class DXE RT Driver Subclass Progress Code definitions.\r
+//\r
+#define EFI_SW_DXE_RT_PC_S0 (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
+#define EFI_SW_DXE_RT_PC_S1 (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
+#define EFI_SW_DXE_RT_PC_S2 (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
+#define EFI_SW_DXE_RT_PC_S3 (EFI_SUBCLASS_SPECIFIC | 0x00000003)\r
+#define EFI_SW_DXE_RT_PC_S4 (EFI_SUBCLASS_SPECIFIC | 0x00000004)\r
+#define EFI_SW_DXE_RT_PC_S5 (EFI_SUBCLASS_SPECIFIC | 0x00000005)\r
+\r
+//\r
+// Software Class SMM Driver Subclass Progress Code definitions.\r
+//\r
+//\r
+// Software Class EFI Application Subclass Progress Code definitions.\r
+//\r
+//\r
+// Software Class EFI OS Loader Subclass Progress Code definitions.\r
+//\r
+//\r
+// Software Class EFI RT Subclass Progress Code definitions.\r
+//\r
+#define EFI_SW_RT_PC_ENTRY_POINT      (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
+#define EFI_SW_RT_PC_HANDOFF_TO_NEXT  (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
+#define EFI_SW_RT_PC_RETURN_TO_LAST   (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
+\r
+//\r
+// Software Class EFI AL Subclass Progress Code definitions.\r
+//\r
+#define EFI_SW_AL_PC_ENTRY_POINT    (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
+#define EFI_SW_AL_PC_RETURN_TO_LAST (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
+\r
+//\r
+// Software Class EBC Exception Subclass Progress Code definitions.\r
+//\r
+//\r
+// Software Class IA32 Exception Subclass Progress Code definitions.\r
+//\r
+//\r
+// Software Class X64 Exception Subclass Progress Code definitions.\r
+//\r
+//\r
+// Software Class IPF Exception Subclass Progress Code definitions.\r
+//\r
+//\r
+// Software Class PEI Services Subclass Progress Code definitions.\r
+//\r
+#define EFI_SW_PS_PC_INSTALL_PPI            (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
+#define EFI_SW_PS_PC_REINSTALL_PPI          (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
+#define EFI_SW_PS_PC_LOCATE_PPI             (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
+#define EFI_SW_PS_PC_NOTIFY_PPI             (EFI_SUBCLASS_SPECIFIC | 0x00000003)\r
+#define EFI_SW_PS_PC_GET_BOOT_MODE          (EFI_SUBCLASS_SPECIFIC | 0x00000004)\r
+#define EFI_SW_PS_PC_SET_BOOT_MODE          (EFI_SUBCLASS_SPECIFIC | 0x00000005)\r
+#define EFI_SW_PS_PC_GET_HOB_LIST           (EFI_SUBCLASS_SPECIFIC | 0x00000006)\r
+#define EFI_SW_PS_PC_CREATE_HOB             (EFI_SUBCLASS_SPECIFIC | 0x00000007)\r
+#define EFI_SW_PS_PC_FFS_FIND_NEXT_VOLUME   (EFI_SUBCLASS_SPECIFIC | 0x00000008)\r
+#define EFI_SW_PS_PC_FFS_FIND_NEXT_FILE     (EFI_SUBCLASS_SPECIFIC | 0x00000009)\r
+#define EFI_SW_PS_PC_FFS_FIND_SECTION_DATA  (EFI_SUBCLASS_SPECIFIC | 0x0000000A)\r
+#define EFI_SW_PS_PC_INSTALL_PEI_MEMORY     (EFI_SUBCLASS_SPECIFIC | 0x0000000B)\r
+#define EFI_SW_PS_PC_ALLOCATE_PAGES         (EFI_SUBCLASS_SPECIFIC | 0x0000000C)\r
+#define EFI_SW_PS_PC_ALLOCATE_POOL          (EFI_SUBCLASS_SPECIFIC | 0x0000000D)\r
+#define EFI_SW_PS_PC_COPY_MEM               (EFI_SUBCLASS_SPECIFIC | 0x0000000E)\r
+#define EFI_SW_PS_PC_SET_MEM                (EFI_SUBCLASS_SPECIFIC | 0x0000000F)\r
+\r
+//\r
+// Software Class EFI Boot Services Subclass Progress Code definitions.\r
+//\r
+#define EFI_SW_BS_PC_RAISE_TPL                      (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
+#define EFI_SW_BS_PC_RESTORE_TPL                    (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
+#define EFI_SW_BS_PC_ALLOCATE_PAGES                 (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
+#define EFI_SW_BS_PC_FREE_PAGES                     (EFI_SUBCLASS_SPECIFIC | 0x00000003)\r
+#define EFI_SW_BS_PC_GET_MEMORY_MAP                 (EFI_SUBCLASS_SPECIFIC | 0x00000004)\r
+#define EFI_SW_BS_PC_ALLOCATE_POOL                  (EFI_SUBCLASS_SPECIFIC | 0x00000005)\r
+#define EFI_SW_BS_PC_FREE_POOL                      (EFI_SUBCLASS_SPECIFIC | 0x00000006)\r
+#define EFI_SW_BS_PC_CREATE_EVENT                   (EFI_SUBCLASS_SPECIFIC | 0x00000007)\r
+#define EFI_SW_BS_PC_SET_TIMER                      (EFI_SUBCLASS_SPECIFIC | 0x00000008)\r
+#define EFI_SW_BS_PC_WAIT_FOR_EVENT                 (EFI_SUBCLASS_SPECIFIC | 0x00000009)\r
+#define EFI_SW_BS_PC_SIGNAL_EVENT                   (EFI_SUBCLASS_SPECIFIC | 0x0000000A)\r
+#define EFI_SW_BS_PC_CLOSE_EVENT                    (EFI_SUBCLASS_SPECIFIC | 0x0000000B)\r
+#define EFI_SW_BS_PC_CHECK_EVENT                    (EFI_SUBCLASS_SPECIFIC | 0x0000000C)\r
+#define EFI_SW_BS_PC_INSTALL_PROTOCOL_INTERFACE     (EFI_SUBCLASS_SPECIFIC | 0x0000000D)\r
+#define EFI_SW_BS_PC_REINSTALL_PROTOCOL_INTERFACE   (EFI_SUBCLASS_SPECIFIC | 0x0000000E)\r
+#define EFI_SW_BS_PC_UNINSTALL_PROTOCOL_INTERFACE   (EFI_SUBCLASS_SPECIFIC | 0x0000000F)\r
+#define EFI_SW_BS_PC_HANDLE_PROTOCOL                (EFI_SUBCLASS_SPECIFIC | 0x00000010)\r
+#define EFI_SW_BS_PC_PC_HANDLE_PROTOCOL             (EFI_SUBCLASS_SPECIFIC | 0x00000011)\r
+#define EFI_SW_BS_PC_REGISTER_PROTOCOL_NOTIFY       (EFI_SUBCLASS_SPECIFIC | 0x00000012)\r
+#define EFI_SW_BS_PC_LOCATE_HANDLE                  (EFI_SUBCLASS_SPECIFIC | 0x00000013)\r
+#define EFI_SW_BS_PC_INSTALL_CONFIGURATION_TABLE    (EFI_SUBCLASS_SPECIFIC | 0x00000014)\r
+#define EFI_SW_BS_PC_LOAD_IMAGE                     (EFI_SUBCLASS_SPECIFIC | 0x00000015)\r
+#define EFI_SW_BS_PC_START_IMAGE                    (EFI_SUBCLASS_SPECIFIC | 0x00000016)\r
+#define EFI_SW_BS_PC_EXIT                           (EFI_SUBCLASS_SPECIFIC | 0x00000017)\r
+#define EFI_SW_BS_PC_UNLOAD_IMAGE                   (EFI_SUBCLASS_SPECIFIC | 0x00000018)\r
+#define EFI_SW_BS_PC_EXIT_BOOT_SERVICES             (EFI_SUBCLASS_SPECIFIC | 0x00000019)\r
+#define EFI_SW_BS_PC_GET_NEXT_MONOTONIC_COUNT       (EFI_SUBCLASS_SPECIFIC | 0x0000001A)\r
+#define EFI_SW_BS_PC_STALL                          (EFI_SUBCLASS_SPECIFIC | 0x0000001B)\r
+#define EFI_SW_BS_PC_SET_WATCHDOG_TIMER             (EFI_SUBCLASS_SPECIFIC | 0x0000001C)\r
+#define EFI_SW_BS_PC_CONNECT_CONTROLLER             (EFI_SUBCLASS_SPECIFIC | 0x0000001D)\r
+#define EFI_SW_BS_PC_DISCONNECT_CONTROLLER          (EFI_SUBCLASS_SPECIFIC | 0x0000001E)\r
+#define EFI_SW_BS_PC_OPEN_PROTOCOL                  (EFI_SUBCLASS_SPECIFIC | 0x0000001F)\r
+#define EFI_SW_BS_PC_CLOSE_PROTOCOL                 (EFI_SUBCLASS_SPECIFIC | 0x00000020)\r
+#define EFI_SW_BS_PC_OPEN_PROTOCOL_INFORMATION      (EFI_SUBCLASS_SPECIFIC | 0x00000021)\r
+#define EFI_SW_BS_PC_PROTOCOLS_PER_HANDLE           (EFI_SUBCLASS_SPECIFIC | 0x00000022)\r
+#define EFI_SW_BS_PC_LOCATE_HANDLE_BUFFER           (EFI_SUBCLASS_SPECIFIC | 0x00000023)\r
+#define EFI_SW_BS_PC_LOCATE_PROTOCOL                (EFI_SUBCLASS_SPECIFIC | 0x00000024)\r
+#define EFI_SW_BS_PC_INSTALL_MULTIPLE_INTERFACES    (EFI_SUBCLASS_SPECIFIC | 0x00000025)\r
+#define EFI_SW_BS_PC_UNINSTALL_MULTIPLE_INTERFACES  (EFI_SUBCLASS_SPECIFIC | 0x00000026)\r
+#define EFI_SW_BS_PC_CALCULATE_CRC_32               (EFI_SUBCLASS_SPECIFIC | 0x00000027)\r
+#define EFI_SW_BS_PC_COPY_MEM                       (EFI_SUBCLASS_SPECIFIC | 0x00000028)\r
+#define EFI_SW_BS_PC_SET_MEM                        (EFI_SUBCLASS_SPECIFIC | 0x00000029)\r
+\r
+//\r
+// Software Class EFI Runtime Services Subclass Progress Code definitions.\r
+//\r
+#define EFI_SW_RS_PC_GET_TIME                       (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
+#define EFI_SW_RS_PC_SET_TIME                       (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
+#define EFI_SW_RS_PC_GET_WAKEUP_TIME                (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
+#define EFI_SW_RS_PC_SET_WAKEUP_TIME                (EFI_SUBCLASS_SPECIFIC | 0x00000003)\r
+#define EFI_SW_RS_PC_SET_VIRTUAL_ADDRESS_MAP        (EFI_SUBCLASS_SPECIFIC | 0x00000004)\r
+#define EFI_SW_RS_PC_CONVERT_POINTER                (EFI_SUBCLASS_SPECIFIC | 0x00000005)\r
+#define EFI_SW_RS_PC_GET_VARIABLE                   (EFI_SUBCLASS_SPECIFIC | 0x00000006)\r
+#define EFI_SW_RS_PC_GET_NEXT_VARIABLE_NAME         (EFI_SUBCLASS_SPECIFIC | 0x00000007)\r
+#define EFI_SW_RS_PC_SET_VARIABLE                   (EFI_SUBCLASS_SPECIFIC | 0x00000008)\r
+#define EFI_SW_RS_PC_GET_NEXT_HIGH_MONOTONIC_COUNT  (EFI_SUBCLASS_SPECIFIC | 0x00000009)\r
+#define EFI_SW_RS_PC_RESET_SYSTEM                   (EFI_SUBCLASS_SPECIFIC | 0x0000000A)\r
+\r
+//\r
+// Software Class EFI DXE Services Subclass Progress Code definitions\r
+//\r
+#define EFI_SW_DS_PC_ADD_MEMORY_SPACE             (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
+#define EFI_SW_DS_PC_ALLOCATE_MEMORY_SPACE        (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
+#define EFI_SW_DS_PC_FREE_MEMORY_SPACE            (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
+#define EFI_SW_DS_PC_REMOVE_MEMORY_SPACE          (EFI_SUBCLASS_SPECIFIC | 0x00000003)\r
+#define EFI_SW_DS_PC_GET_MEMORY_SPACE_DESCRIPTOR  (EFI_SUBCLASS_SPECIFIC | 0x00000004)\r
+#define EFI_SW_DS_PC_SET_MEMORY_SPACE_ATTRIBUTES  (EFI_SUBCLASS_SPECIFIC | 0x00000005)\r
+#define EFI_SW_DS_PC_GET_MEMORY_SPACE_MAP         (EFI_SUBCLASS_SPECIFIC | 0x00000006)\r
+#define EFI_SW_DS_PC_ADD_IO_SPACE                 (EFI_SUBCLASS_SPECIFIC | 0x00000007)\r
+#define EFI_SW_DS_PC_ALLOCATE_IO_SPACE            (EFI_SUBCLASS_SPECIFIC | 0x00000008)\r
+#define EFI_SW_DS_PC_FREE_IO_SPACE                (EFI_SUBCLASS_SPECIFIC | 0x00000009)\r
+#define EFI_SW_DS_PC_REMOVE_IO_SPACE              (EFI_SUBCLASS_SPECIFIC | 0x0000000A)\r
+#define EFI_SW_DS_PC_GET_IO_SPACE_DESCRIPTOR      (EFI_SUBCLASS_SPECIFIC | 0x0000000B)\r
+#define EFI_SW_DS_PC_GET_IO_SPACE_MAP             (EFI_SUBCLASS_SPECIFIC | 0x0000000C)\r
+#define EFI_SW_DS_PC_DISPATCH                     (EFI_SUBCLASS_SPECIFIC | 0x0000000D)\r
+#define EFI_SW_DS_PC_SCHEDULE                     (EFI_SUBCLASS_SPECIFIC | 0x0000000E)\r
+#define EFI_SW_DS_PC_TRUST                        (EFI_SUBCLASS_SPECIFIC | 0x0000000F)\r
+#define EFI_SW_DS_PC_PROCESS_FIRMWARE_VOLUME      (EFI_SUBCLASS_SPECIFIC | 0x00000010)\r
+\r
+//\r
+// Software Class Error Code definitions.\r
+// These are shared by all subclasses.\r
+//\r
+#define EFI_SW_EC_NON_SPECIFIC            0x00000000\r
+#define EFI_SW_EC_LOAD_ERROR              0x00000001\r
+#define EFI_SW_EC_INVALID_PARAMETER       0x00000002\r
+#define EFI_SW_EC_UNSUPPORTED             0x00000003\r
+#define EFI_SW_EC_INVALID_BUFFER          0x00000004\r
+#define EFI_SW_EC_OUT_OF_RESOURCES        0x00000005\r
+#define EFI_SW_EC_ABORTED                 0x00000006\r
+#define EFI_SW_EC_ILLEGAL_SOFTWARE_STATE  0x00000007\r
+#define EFI_SW_EC_ILLEGAL_HARDWARE_STATE  0x00000008\r
+#define EFI_SW_EC_START_ERROR             0x00000009\r
+#define EFI_SW_EC_BAD_DATE_TIME           0x0000000A\r
+#define EFI_SW_EC_CFG_INVALID             0x0000000B\r
+#define EFI_SW_EC_CFG_CLR_REQUEST         0x0000000C\r
+#define EFI_SW_EC_CFG_DEFAULT             0x0000000D\r
+#define EFI_SW_EC_PWD_INVALID             0x0000000E\r
+#define EFI_SW_EC_PWD_CLR_REQUEST         0x0000000F\r
+#define EFI_SW_EC_PWD_CLEARED             0x00000010\r
+#define EFI_SW_EC_EVENT_LOG_FULL          0x00000011\r
+\r
+//\r
+// Software Class Unspecified Subclass Error Code definitions.\r
+//\r
+//\r
+// Software Class SEC Subclass Error Code definitions.\r
+//\r
+//\r
+// Software Class PEI Core Subclass Error Code definitions.\r
+//\r
+#define EFI_SW_PEI_CORE_EC_DXE_CORRUPT  (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
+\r
+//\r
+// Software Class PEI Module Subclass Error Code definitions.\r
+//\r
+#define EFI_SW_PEIM_EC_NO_RECOVERY_CAPSULE        (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
+#define EFI_SW_PEIM_EC_INVALID_CAPSULE_DESCRIPTOR (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
+\r
+//\r
+// Software Class DXE Core Subclass Error Code definitions.\r
+//\r
+#define EFI_SW_CSM_LEGACY_ROM_INIT  (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
+//\r
+// Software Class DXE Boot Service Driver Subclass Error Code definitions.\r
+//\r
+#define EFI_SW_DXE_BS_EC_LEGACY_OPROM_NO_SPACE  (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
+\r
+//\r
+// Software Class DXE Runtime Service Driver Subclass Error Code definitions.\r
+//\r
+//\r
+// Software Class SMM Driver Subclass Error Code definitions.\r
+//\r
+//\r
+// Software Class EFI Application Subclass Error Code definitions.\r
+//\r
+//\r
+// Software Class EFI OS Loader Subclass Error Code definitions.\r
+//\r
+//\r
+// Software Class EFI RT Subclass Error Code definitions.\r
+//\r
+//\r
+// Software Class EFI AL Subclass Error Code definitions.\r
+//\r
+//\r
+// Software Class EBC Exception Subclass Error Code definitions.\r
+// These exceptions are derived from the debug protocol definitions in the EFI\r
+// specification.\r
+//\r
+#define EFI_SW_EC_EBC_UNDEFINED             (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_UNDEFINED)\r
+#define EFI_SW_EC_EBC_DIVIDE_ERROR          (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_DIVIDE_ERROR)\r
+#define EFI_SW_EC_EBC_DEBUG                 (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_DEBUG)\r
+#define EFI_SW_EC_EBC_BREAKPOINT            (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_BREAKPOINT)\r
+#define EFI_SW_EC_EBC_OVERFLOW              (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_OVERFLOW)\r
+#define EFI_SW_EC_EBC_INVALID_OPCODE        (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_INVALID_OPCODE)\r
+#define EFI_SW_EC_EBC_STACK_FAULT           (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_STACK_FAULT)\r
+#define EFI_SW_EC_EBC_ALIGNMENT_CHECK       (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_ALIGNMENT_CHECK)\r
+#define EFI_SW_EC_EBC_INSTRUCTION_ENCODING  (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_INSTRUCTION_ENCODING)\r
+#define EFI_SW_EC_EBC_BAD_BREAK             (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_BAD_BREAK)\r
+#define EFI_SW_EC_EBC_STEP                  (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_STEP)\r
+\r
+//\r
+// Software Class IA32 Exception Subclass Error Code definitions.\r
+// These exceptions are derived from the debug protocol definitions in the EFI\r
+// specification.\r
+//\r
+#define EFI_SW_EC_IA32_DIVIDE_ERROR     (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_DIVIDE_ERROR)\r
+#define EFI_SW_EC_IA32_DEBUG            (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_DEBUG)\r
+#define EFI_SW_EC_IA32_NMI              (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_NMI)\r
+#define EFI_SW_EC_IA32_BREAKPOINT       (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_BREAKPOINT)\r
+#define EFI_SW_EC_IA32_OVERFLOW         (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_OVERFLOW)\r
+#define EFI_SW_EC_IA32_BOUND            (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_BOUND)\r
+#define EFI_SW_EC_IA32_INVALID_OPCODE   (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_INVALID_OPCODE)\r
+#define EFI_SW_EC_IA32_DOUBLE_FAULT     (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_DOUBLE_FAULT)\r
+#define EFI_SW_EC_IA32_INVALID_TSS      (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_INVALID_TSS)\r
+#define EFI_SW_EC_IA32_SEG_NOT_PRESENT  (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_SEG_NOT_PRESENT)\r
+#define EFI_SW_EC_IA32_STACK_FAULT      (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_STACK_FAULT)\r
+#define EFI_SW_EC_IA32_GP_FAULT         (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_GP_FAULT)\r
+#define EFI_SW_EC_IA32_PAGE_FAULT       (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_PAGE_FAULT)\r
+#define EFI_SW_EC_IA32_FP_ERROR         (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_FP_ERROR)\r
+#define EFI_SW_EC_IA32_ALIGNMENT_CHECK  (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_ALIGNMENT_CHECK)\r
+#define EFI_SW_EC_IA32_MACHINE_CHECK    (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_MACHINE_CHECK)\r
+#define EFI_SW_EC_IA32_SIMD             (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_SIMD)\r
+\r
+//\r
+// Software Class X64 Exception Subclass Error Code definitions.\r
+// These exceptions are derived from the debug protocol definitions in the EFI\r
+// specification.\r
+//\r
+#define EFI_SW_EC_X64_DIVIDE_ERROR      (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_DIVIDE_ERROR)\r
+#define EFI_SW_EC_X64_DEBUG             (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_DEBUG)\r
+#define EFI_SW_EC_X64_NMI               (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_NMI)\r
+#define EFI_SW_EC_X64_BREAKPOINT        (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_BREAKPOINT)\r
+#define EFI_SW_EC_X64_OVERFLOW          (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_OVERFLOW)\r
+#define EFI_SW_EC_X64_BOUND             (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_BOUND)\r
+#define EFI_SW_EC_X64_INVALID_OPCODE    (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_INVALID_OPCODE)\r
+#define EFI_SW_EC_X64_DOUBLE_FAULT      (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_DOUBLE_FAULT)\r
+#define EFI_SW_EC_X64_INVALID_TSS       (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_INVALID_TSS)\r
+#define EFI_SW_EC_X64_SEG_NOT_PRESENT   (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_SEG_NOT_PRESENT)\r
+#define EFI_SW_EC_X64_STACK_FAULT       (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_STACK_FAULT)\r
+#define EFI_SW_EC_X64_GP_FAULT          (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_GP_FAULT)\r
+#define EFI_SW_EC_X64_PAGE_FAULT        (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_PAGE_FAULT)\r
+#define EFI_SW_EC_X64_FP_ERROR          (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_FP_ERROR)\r
+#define EFI_SW_EC_X64_ALIGNMENT_CHECK   (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_ALIGNMENT_CHECK)\r
+#define EFI_SW_EC_X64_MACHINE_CHECK     (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_MACHINE_CHECK)\r
+#define EFI_SW_EC_X64_SIMD              (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_SIMD)\r
+\r
+//\r
+// Software Class IPF Exception Subclass Error Code definitions.\r
+// These exceptions are derived from the debug protocol definitions in the EFI\r
+// specification.\r
+//\r
+#define EFI_SW_EC_IPF_ALT_DTLB            (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_ALT_DTLB)\r
+#define EFI_SW_EC_IPF_DNESTED_TLB         (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_DNESTED_TLB)\r
+#define EFI_SW_EC_IPF_BREAKPOINT          (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_BREAKPOINT)\r
+#define EFI_SW_EC_IPF_EXTERNAL_INTERRUPT  (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_EXTERNAL_INTERRUPT)\r
+#define EFI_SW_EC_IPF_GEN_EXCEPT          (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_GEN_EXCEPT)\r
+#define EFI_SW_EC_IPF_NAT_CONSUMPTION     (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_NAT_CONSUMPTION)\r
+#define EFI_SW_EC_IPF_DEBUG_EXCEPT        (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_DEBUG_EXCEPT)\r
+#define EFI_SW_EC_IPF_UNALIGNED_ACCESS    (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_UNALIGNED_ACCESS)\r
+#define EFI_SW_EC_IPF_FP_FAULT            (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_FP_FAULT)\r
+#define EFI_SW_EC_IPF_FP_TRAP             (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_FP_TRAP)\r
+#define EFI_SW_EC_IPF_TAKEN_BRANCH        (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_TAKEN_BRANCH)\r
+#define EFI_SW_EC_IPF_SINGLE_STEP         (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_SINGLE_STEP)\r
+\r
+\r
+//\r
+// Software Class PEI Service Subclass Error Code definitions.\r
+//\r
+//\r
+// Software Class EFI Boot Service Subclass Error Code definitions.\r
+//\r
+//\r
+// Software Class EFI Runtime Service Subclass Error Code definitions.\r
+//\r
+//\r
+// Software Class EFI DXE Service Subclass Error Code definitions.\r
+//\r
+\r
+///////////////////////////////////////////////////////////////////////////////\r
+// Section 7\r
+///////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Debug Code definitions for all classes and subclass\r
+// Only one debug code is defined at this point and should\r
+// be used for anything that gets sent to debug stream.\r
+//\r
+#define EFI_DC_UNSPECIFIED  0x0\r
+\r
+#endif\r
diff --git a/IntelFrameworkPkg/Include/Framework/StatusCodeDataTypeId.h b/IntelFrameworkPkg/Include/Framework/StatusCodeDataTypeId.h
new file mode 100644 (file)
index 0000000..269a3dc
--- /dev/null
@@ -0,0 +1,433 @@
+/** @file\r
+  This file defines the data structures to support Status Code Data.\r
+\r
+  Copyright (c) 2007, Intel Corporation\r
+  All rights reserved. This program and the accompanying materials\r
+  are licensed and made available under the terms and conditions of the BSD License\r
+  which accompanies this distribution.  The full text of the license may be found at\r
+  http://opensource.org/licenses/bsd-license.php\r
+\r
+  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:  FrameworkStatusCodeDataTypeId.h\r
+\r
+  @par Revision Reference:\r
+  These definitions are from Framework of EFI Status Code Spec\r
+  Version 0.92.\r
+\r
+**/\r
+\r
+#ifndef __FRAMEWORK_STATUS_CODE_DATA_TYPE_ID_H__\r
+#define __FRAMEWORK_STATUS_CODE_DATA_TYPE_ID_H__\r
+\r
+#include <Framework/DataHubRecords.h>\r
+#include <Protocol/DebugSupport.h>\r
+\r
+///\r
+/// The size of string\r
+///\r
+#define EFI_STATUS_CODE_DATA_MAX_STRING_SIZE  150\r
+\r
+///\r
+/// This is the max data size including all the headers which can be passed\r
+/// as Status Code data. This data should be multiple of 8 byte\r
+/// to avoid any kind of boundary issue. Also, sum of this data size (inclusive\r
+/// of size of EFI_STATUS_CODE_DATA should not exceed the max record size of\r
+/// data hub\r
+///\r
+#define EFI_STATUS_CODE_DATA_MAX_SIZE 200\r
+\r
+#pragma pack(1)\r
+typedef enum {\r
+  EfiStringAscii,\r
+  EfiStringUnicode,\r
+  EfiStringToken\r
+} EFI_STRING_TYPE;\r
+\r
+typedef struct {\r
+  EFI_HII_HANDLE  Handle;\r
+  STRING_REF      Token;\r
+} EFI_STATUS_CODE_STRING_TOKEN;\r
+\r
+typedef union {\r
+  CHAR8                         *Ascii;\r
+  CHAR16                        *Unicode;\r
+  EFI_STATUS_CODE_STRING_TOKEN  Hii;\r
+} EFI_STATUS_CODE_STRING;\r
+\r
+typedef struct {\r
+  EFI_STATUS_CODE_DATA                          DataHeader;\r
+  EFI_STRING_TYPE                               StringType;\r
+  EFI_STATUS_CODE_STRING                        String;\r
+} EFI_STATUS_CODE_STRING_DATA;\r
+\r
+#pragma pack()\r
+\r
+#pragma pack(1)\r
+\r
+typedef struct {\r
+  UINT32  ErrorLevel;\r
+  //\r
+  // 12 * sizeof (UINT64) Var Arg stack\r
+  //\r
+  // ascii DEBUG () Format string\r
+  //\r
+} EFI_DEBUG_INFO;\r
+\r
+#pragma pack()\r
+\r
+//\r
+// declaration for EFI_EXP_DATA. This may change\r
+//\r
+// typedef UINTN   EFI_EXP_DATA;\r
+\r
+///\r
+/// Voltage Extended Error Data\r
+///\r
+typedef struct {\r
+  EFI_STATUS_CODE_DATA  DataHeader;\r
+  EFI_EXP_BASE10_DATA   Voltage;\r
+  EFI_EXP_BASE10_DATA   Threshold;\r
+} EFI_COMPUTING_UNIT_VOLTAGE_ERROR_DATA;\r
+\r
+typedef struct {\r
+  EFI_EXP_BASE10_DATA   Voltage;\r
+  EFI_EXP_BASE10_DATA   Threshold;\r
+} EFI_COMPUTING_UNIT_VOLTAGE_ERROR_DATA_PAYLOAD;\r
+\r
+///\r
+/// Microcode Update Extended Error Data\r
+///\r
+typedef struct {\r
+  EFI_STATUS_CODE_DATA  DataHeader;\r
+  UINT32                Version;\r
+} EFI_COMPUTING_UNIT_MICROCODE_UPDATE_ERROR_DATA;\r
+\r
+typedef struct {\r
+  UINT32                Version;\r
+} EFI_COMPUTING_UNIT_MICROCODE_UPDATE_ERROR_DATA_PAYLOAD;\r
+\r
+///\r
+/// Asynchronous Timer Extended Error Data\r
+///\r
+typedef struct {\r
+  EFI_STATUS_CODE_DATA  DataHeader;\r
+  EFI_EXP_BASE10_DATA   TimerLimit;\r
+} EFI_COMPUTING_UNIT_TIMER_EXPIRED_ERROR_DATA;\r
+\r
+typedef struct {\r
+  EFI_EXP_BASE10_DATA   TimerLimit;\r
+} EFI_COMPUTING_UNIT_TIMER_EXPIRED_ERROR_DATA_PAYLOAD;\r
+\r
+///\r
+/// Host Processor Mismatch Extended Error Data\r
+///\r
+typedef struct {\r
+  EFI_STATUS_CODE_DATA  DataHeader;\r
+  UINT32                Instance;\r
+  UINT16                Attributes;\r
+} EFI_HOST_PROCESSOR_MISMATCH_ERROR_DATA;\r
+\r
+typedef struct {\r
+  UINT32                Instance;\r
+  UINT16                Attributes;\r
+} EFI_HOST_PROCESSOR_MISMATCH_ERROR_DATA_PAYLOAD;\r
+\r
+//\r
+// EFI_COMPUTING_UNIT_MISMATCH_ATTRIBUTES\r
+// All other attributes are reserved for future use and\r
+// must be initialized to 0.\r
+//\r
+#define EFI_COMPUTING_UNIT_MISMATCH_SPEED       0x0001\r
+#define EFI_COMPUTING_UNIT_MISMATCH_FSB_SPEED   0x0002\r
+#define EFI_COMPUTING_UNIT_MISMATCH_FAMILY      0x0004\r
+#define EFI_COMPUTING_UNIT_MISMATCH_MODEL       0x0008\r
+#define EFI_COMPUTING_UNIT_MISMATCH_STEPPING    0x0010\r
+#define EFI_COMPUTING_UNIT_MISMATCH_CACHE_SIZE  0x0020\r
+#define EFI_COMPUTING_UNIT_MISMATCH_OEM1        0x1000\r
+#define EFI_COMPUTING_UNIT_MISMATCH_OEM2        0x2000\r
+#define EFI_COMPUTING_UNIT_MISMATCH_OEM3        0x4000\r
+#define EFI_COMPUTING_UNIT_MISMATCH_OEM4        0x8000\r
+\r
+///\r
+/// Thermal Extended Error Data\r
+///\r
+typedef struct {\r
+  EFI_STATUS_CODE_DATA  DataHeader;\r
+  EFI_EXP_BASE10_DATA   Temperature;\r
+  EFI_EXP_BASE10_DATA   Threshold;\r
+} EFI_COMPUTING_UNIT_THERMAL_ERROR_DATA;\r
+\r
+typedef struct {\r
+  EFI_EXP_BASE10_DATA   Temperature;\r
+  EFI_EXP_BASE10_DATA   Threshold;\r
+} EFI_COMPUTING_UNIT_THERMAL_ERROR_DATA_PAYLOAD;\r
+\r
+///\r
+/// Processor Disabled Extended Error Data\r
+///\r
+typedef struct {\r
+  EFI_STATUS_CODE_DATA  DataHeader;\r
+  UINT32                Cause;\r
+  BOOLEAN               SoftwareDisabled;\r
+} EFI_COMPUTING_UNIT_CPU_DISABLED_ERROR_DATA;\r
+\r
+typedef struct {\r
+  UINT32                Cause;\r
+  BOOLEAN               SoftwareDisabled;\r
+} EFI_COMPUTING_UNIT_CPU_DISABLED_ERROR_DATA_PAYLOAD;\r
+\r
+typedef enum {\r
+  EfiInitCacheDataOnly,\r
+  EfiInitCacheInstrOnly,\r
+  EfiInitCacheBoth,\r
+  EfiInitCacheUnspecified\r
+} EFI_INIT_CACHE_TYPE;\r
+\r
+///\r
+/// Embedded cache init extended data\r
+///\r
+typedef struct {\r
+  EFI_STATUS_CODE_DATA  DataHeader;\r
+  UINT32                Level;\r
+  EFI_INIT_CACHE_TYPE   Type;\r
+} EFI_CACHE_INIT_DATA;\r
+\r
+typedef struct {\r
+  UINT32                Level;\r
+  EFI_INIT_CACHE_TYPE   Type;\r
+} EFI_CACHE_INIT_DATA_PAYLOAD;\r
+\r
+//\r
+// Memory Extended Error Data\r
+//\r
+\r
+///\r
+/// Memory Error Granularity Definition\r
+///\r
+typedef UINT8 EFI_MEMORY_ERROR_GRANULARITY;\r
+\r
+///\r
+/// Memory Error Operation Definition\r
+///\r
+typedef UINT8 EFI_MEMORY_ERROR_OPERATION;\r
+\r
+typedef struct {\r
+  EFI_STATUS_CODE_DATA          DataHeader;\r
+  EFI_MEMORY_ERROR_GRANULARITY  Granularity;\r
+  EFI_MEMORY_ERROR_OPERATION    Operation;\r
+  UINTN                         Syndrome;\r
+  EFI_PHYSICAL_ADDRESS          Address;\r
+  UINTN                         Resolution;\r
+} EFI_MEMORY_EXTENDED_ERROR_DATA;\r
+\r
+typedef struct {\r
+  EFI_MEMORY_ERROR_GRANULARITY  Granularity;\r
+  EFI_MEMORY_ERROR_OPERATION    Operation;\r
+  UINTN                         Syndrome;\r
+  EFI_PHYSICAL_ADDRESS          Address;\r
+  UINTN                         Resolution;\r
+} EFI_MEMORY_EXTENDED_ERROR_DATA_PAYLOAD;\r
+\r
+//\r
+// Memory Error Granularities\r
+//\r
+#define EFI_MEMORY_ERROR_OTHER      0x01\r
+#define EFI_MEMORY_ERROR_UNKNOWN    0x02\r
+#define EFI_MEMORY_ERROR_DEVICE     0x03\r
+#define EFI_MEMORY_ERROR_PARTITION  0x04\r
+\r
+//\r
+// Memory Error Operations\r
+//\r
+#define EFI_MEMORY_OPERATION_OTHER          0x01\r
+#define EFI_MEMORY_OPERATION_UNKNOWN        0x02\r
+#define EFI_MEMORY_OPERATION_READ           0x03\r
+#define EFI_MEMORY_OPERATION_WRITE          0x04\r
+#define EFI_MEMORY_OPERATION_PARTIAL_WRITE  0x05\r
+\r
+//\r
+// Define shorthands to describe Group Operations\r
+// Many memory init operations are essentially group\r
+// operations.\r
+\r
+/// A shorthand to describe that the operation is performed\r
+/// on multiple devices within the array\r
+///\r
+#define EFI_MULTIPLE_MEMORY_DEVICE_OPERATION  0xfffe\r
+///\r
+/// A shorthand to describe that the operation is performed on all devices within the array\r
+///\r
+#define EFI_ALL_MEMORY_DEVICE_OPERATION 0xffff\r
+///\r
+/// A shorthand to describe that the operation is performed on multiple arrays\r
+///\r
+#define EFI_MULTIPLE_MEMORY_ARRAY_OPERATION 0xfffe\r
+///\r
+/// A shorthand to describe that the operation is performed on all the arrays\r
+///\r
+#define EFI_ALL_MEMORY_ARRAY_OPERATION  0xffff\r
+\r
+//\r
+// DIMM number\r
+//\r
+#pragma pack(1)\r
+typedef struct {\r
+  EFI_STATUS_CODE_DATA  DataHeader;\r
+  UINT16                Array;\r
+  UINT16                Device;\r
+} EFI_STATUS_CODE_DIMM_NUMBER;\r
+\r
+typedef struct {\r
+  UINT16                Array;\r
+  UINT16                Device;\r
+} EFI_STATUS_CODE_DIMM_NUMBER_PAYLOAD;\r
+#pragma pack()\r
+\r
+///\r
+/// Memory Module Mismatch Extended Error Data\r
+///\r
+typedef struct {\r
+  EFI_STATUS_CODE_DATA        DataHeader;\r
+  EFI_STATUS_CODE_DIMM_NUMBER Instance;\r
+} EFI_MEMORY_MODULE_MISMATCH_ERROR_DATA;\r
+\r
+typedef struct {\r
+  EFI_STATUS_CODE_DIMM_NUMBER Instance;\r
+} EFI_MEMORY_MODULE_MISMATCH_ERROR_DATA_PAYLOAD;\r
+\r
+///\r
+/// Memory Range Extended Data\r
+///\r
+typedef struct {\r
+  EFI_STATUS_CODE_DATA  DataHeader;\r
+  EFI_PHYSICAL_ADDRESS  Start;\r
+  EFI_PHYSICAL_ADDRESS  Length;\r
+} EFI_MEMORY_RANGE_EXTENDED_DATA;\r
+\r
+typedef struct {\r
+  EFI_PHYSICAL_ADDRESS  Start;\r
+  EFI_PHYSICAL_ADDRESS  Length;\r
+} EFI_MEMORY_RANGE_EXTENDED_DATA_PAYLOAD;\r
+\r
+///\r
+/// Device handle Extended Data. Used for many\r
+/// errors and progress codes to point to the device.\r
+///\r
+typedef struct {\r
+  EFI_STATUS_CODE_DATA  DataHeader;\r
+  EFI_HANDLE            Handle;\r
+} EFI_DEVICE_HANDLE_EXTENDED_DATA;\r
+\r
+typedef struct {\r
+  EFI_STATUS_CODE_DATA                 DataHeader;\r
+  UINT8                                *DevicePath;\r
+} EFI_DEVICE_PATH_EXTENDED_DATA;\r
+\r
+typedef struct {\r
+  EFI_STATUS_CODE_DATA           DataHeader;\r
+  EFI_HANDLE                     ControllerHandle;\r
+  EFI_HANDLE                     DriverBindingHandle;\r
+  UINT16                         DevicePathSize;\r
+  UINT8                          *RemainingDevicePath;\r
+} EFI_STATUS_CODE_START_EXTENDED_DATA;\r
+\r
+typedef struct {\r
+  EFI_HANDLE            Handle;\r
+} EFI_DEVICE_HANDLE_EXTENDED_DATA_PAYLOAD;\r
+\r
+typedef struct {\r
+  UINT8                                *DevicePath;\r
+} EFI_DEVICE_PATH_EXTENDED_DATA_PAYLOAD;\r
+\r
+typedef struct {\r
+  EFI_HANDLE                     ControllerHandle;\r
+  EFI_HANDLE                     DriverBindingHandle;\r
+  UINT16                         DevicePathSize;\r
+  UINT8                          *RemainingDevicePath;\r
+} EFI_STATUS_CODE_START_EXTENDED_DATA_PAYLOAD;\r
+\r
+///\r
+/// Resource Allocation Failure Extended Error Data\r
+///\r
+\r
+/*\r
+typedef struct {\r
+  EFI_STATUS_CODE_DATA      DataHeader;\r
+  EFI_DEVICE_PATH_PROTOCOL  *DevicePath;\r
+  UINT32                    Bar;\r
+  VOID                      *ReqRes;\r
+  VOID                      *AllocRes;\r
+} EFI_RESOURCE_ALLOC_FAILURE_ERROR_DATA;\r
+*/\r
+typedef struct {\r
+  EFI_STATUS_CODE_DATA               DataHeader;\r
+  UINT32                             Bar;\r
+  UINT16                             DevicePathSize;\r
+  UINT16                             ReqResSize;\r
+  UINT16                             AllocResSize;\r
+  UINT8                              *DevicePath;\r
+  UINT8                              *ReqRes;\r
+  UINT8                              *AllocRes;\r
+} EFI_RESOURCE_ALLOC_FAILURE_ERROR_DATA;\r
+\r
+typedef struct {\r
+  UINT32                             Bar;\r
+  UINT16                             DevicePathSize;\r
+  UINT16                             ReqResSize;\r
+  UINT16                             AllocResSize;\r
+  UINT8                              *DevicePath;\r
+  UINT8                              *ReqRes;\r
+  UINT8                              *AllocRes;\r
+} EFI_RESOURCE_ALLOC_FAILURE_ERROR_DATA_PAYLOAD;\r
+\r
+///\r
+/// Extended Error Data for Assert\r
+///\r
+typedef struct {\r
+  EFI_STATUS_CODE_DATA        DataHeader;\r
+  UINT32                      LineNumber;\r
+  UINT32                      FileNameSize;\r
+  EFI_STATUS_CODE_STRING_DATA *FileName;\r
+} EFI_DEBUG_ASSERT_DATA;\r
+\r
+typedef struct {\r
+  UINT32                      LineNumber;\r
+  UINT32                      FileNameSize;\r
+  EFI_STATUS_CODE_STRING_DATA *FileName;\r
+} EFI_DEBUG_ASSERT_DATA_PAYLOAD;\r
+\r
+///\r
+/// System Context Data EBC/IA32/IPF\r
+///\r
+typedef union {\r
+  EFI_SYSTEM_CONTEXT_EBC  SystemContextEbc;\r
+  EFI_SYSTEM_CONTEXT_IA32 SystemContextIa32;\r
+  EFI_SYSTEM_CONTEXT_IPF  SystemContextIpf;\r
+} EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT;\r
+\r
+typedef struct {\r
+  EFI_STATUS_CODE_DATA                  DataHeader;\r
+  EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT  Context;\r
+} EFI_STATUS_CODE_EXCEP_EXTENDED_DATA;\r
+\r
+typedef struct {\r
+  EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT  Context;\r
+} EFI_STATUS_CODE_EXCEP_EXTENDED_DATA_PAYLOAD;\r
+\r
+///\r
+/// Legacy Oprom extended data\r
+///\r
+typedef struct {\r
+  EFI_STATUS_CODE_DATA  DataHeader;\r
+  EFI_HANDLE            DeviceHandle;\r
+  EFI_PHYSICAL_ADDRESS  RomImageBase;\r
+} EFI_LEGACY_OPROM_EXTENDED_DATA;\r
+\r
+typedef struct {\r
+  EFI_HANDLE            DeviceHandle;\r
+  EFI_PHYSICAL_ADDRESS  RomImageBase;\r
+} EFI_LEGACY_OPROM_EXTENDED_DATA_PAYLOAD;\r
+\r
+#endif\r
index 1d1c0ef..07eece9 100644 (file)
@@ -21,7 +21,7 @@
 #define _FRAMEWORK_DXE_H_\r
 \r
 #include <FrameworkPei.h>\r
-#include <PiDxe.h>\r
-#include <Common/FrameworkDxeCis.h>\r
+\r
+#include <Framework/DxeCis.h>\r
 \r
 #endif\r
index fa9cada..6719db3 100644 (file)
 \r
 #include <PiPei.h>\r
 \r
-#include <Common/FrameworkFirmwareFileSystem.h>\r
-#include <Common/FrameworkFirmwareVolumeImageFormat.h>\r
-#include <Common/FrameworkFirmwareVolumeHeader.h>\r
-#include <Common/FrameworkHob.h>\r
-#include <Common/FrameworkLegacy16.h>\r
-#include <Common/DataHubRecords.h>\r
-#include <Common/FrameworkStatusCode.h>\r
-#include <Common/FrameworkStatusCodeDataTypeId.h>\r
+#include <Framework/FirmwareFileSystem.h>\r
+#include <Framework/FirmwareVolumeImageFormat.h>\r
+#include <Framework/FirmwareVolumeHeader.h>\r
+#include <Framework/Hob.h>\r
+#include <Framework/Legacy16.h>\r
+#include <Framework/DataHubRecords.h>\r
+#include <Framework/StatusCode.h>\r
+#include <Framework/StatusCodeDataTypeId.h>\r
 \r
 #endif\r
index 0226b9a..ed69b2e 100644 (file)
@@ -21,6 +21,7 @@
 #define _FRAMEWORK_SMM_H_\r
 \r
 #include <FrameworkDxe.h>\r
-#include <Common/FrameworkSmmCis.h>\r
+\r
+#include <Framework/SmmCis.h>\r
 \r
 #endif\r
index a622381..88a9ec5 100644 (file)
 \r
 **/\r
 \r
-#ifndef _PEI_BOOT_SCRIPT_EXECUTER_PPI_H\r
-#define _PEI_BOOT_SCRIPT_EXECUTER_PPI_H\r
+#ifndef _PEI_BOOT_SCRIPT_EXECUTER_PPI_H_\r
+#define _PEI_BOOT_SCRIPT_EXECUTER_PPI_H_\r
+\r
+#include <FrameworkPei.h>\r
 \r
 #define EFI_ACPI_S3_RESUME_SCRIPT_TABLE               0x00\r
 \r
index 9a3e173..218ec94 100644 (file)
@@ -1,14 +1,14 @@
 /** @file\r
   This file declares FindFv PPI used to locate FVs that contain PEIMs in PEI\r
 \r
-  Copyright (c) 2006, Intel Corporation                                                         \r
-  All rights reserved. This program and the accompanying materials                          \r
-  are licensed and made available under the terms and conditions of the BSD License         \r
-  which accompanies this distribution.  The full text of the license may be found at        \r
-  http://opensource.org/licenses/bsd-license.php                                            \r
+  Copyright (c) 2007, Intel Corporation\r
+  All rights reserved. This program and the accompanying materials\r
+  are licensed and made available under the terms and conditions of the BSD License\r
+  which accompanies this distribution.  The full text of the license may be found at\r
+  http://opensource.org/licenses/bsd-license.php\r
 \r
-  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
+  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:  FindFv.h\r
 \r
 \r
 **/\r
 \r
-#ifndef __FIND_FV_H__\r
-#define __FIND_FV_H__\r
+#ifndef _FIND_FV_H_\r
+#define _FIND_FV_H_\r
+\r
+#include <FrameworkPei.h>\r
 \r
 #define EFI_PEI_FIND_FV_PPI_GUID \\r
   { \\r
@@ -29,8 +31,8 @@
 typedef struct _EFI_PEI_FIND_FV_PPI EFI_PEI_FIND_FV_PPI;\r
 \r
 /**\r
-  This interface returns the base address of the firmware volume whose index \r
-  was passed in FvNumber.Once this function reports a firmware volume \r
+  This interface returns the base address of the firmware volume whose index\r
+  was passed in FvNumber.Once this function reports a firmware volume\r
   index/base address pair, that index/address pairing must continue throughout PEI.\r
 \r
   @param  PeiServices    Pointer to the PEI Services Table.\r
@@ -55,7 +57,7 @@ EFI_STATUS
 /**\r
   @par Ppi Description:\r
   Hardware mechanisms for locating FVs in a platform vary widely.\r
-  EFI_PEI_FIND_FV_PPI serves to abstract this variation so that the \r
+  EFI_PEI_FIND_FV_PPI serves to abstract this variation so that the\r
   PEI Foundation can remain standard across a wide variety of platforms.\r
 \r
   @param FindFv\r
index 3d47474..8202791 100644 (file)
 //\r
 // The package level header files this module uses\r
 //\r
-#include <PiDxe.h>\r
+#include <FrameworkDxe.h>\r
 #include <WinNtDxe.h>\r
+\r
 //\r
 // The protocols, PPI and GUID defintions for this module\r
 //\r
 #include <Protocol/Cpu.h>\r
 #include <Protocol/DataHub.h>\r
 #include <Protocol/HiiFramework.h>\r
-#include <Common/DataHubRecords.h>\r
 #include <Guid/DataHubRecords.h>\r
 #include <Protocol/CpuIo.h>\r
 #include <Protocol/WinNtIo.h>\r