summaryrefslogtreecommitdiffstats
path: root/MdePkg/Include/Common
diff options
context:
space:
mode:
authorlhauch <lhauch@6f19259b-4bc3-4df7-8a09-765794883524>2007-06-01 14:49:55 +0000
committerlhauch <lhauch@6f19259b-4bc3-4df7-8a09-765794883524>2007-06-01 14:49:55 +0000
commit586cd1f1f4129ab7ec24543d4968801e17cc870b (patch)
treee2f1b645e576edee627997ca1abd65e3f9b0add8 /MdePkg/Include/Common
parent144d783d40c8a02113350feabd1b9a55b692313f (diff)
downloadedk2-586cd1f1f4129ab7ec24543d4968801e17cc870b.tar.gz
edk2-586cd1f1f4129ab7ec24543d4968801e17cc870b.tar.bz2
edk2-586cd1f1f4129ab7ec24543d4968801e17cc870b.zip
Moved the MdePkg to OldMdePkg so that new code in MdePkg does not break existing builds. Also updated the SPD and FPD files UiNames
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2616 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdePkg/Include/Common')
-rw-r--r--MdePkg/Include/Common/BaseTypes.h304
-rw-r--r--MdePkg/Include/Common/BootMode.h37
-rw-r--r--MdePkg/Include/Common/BootScript.h63
-rw-r--r--MdePkg/Include/Common/Capsule.h67
-rw-r--r--MdePkg/Include/Common/DataHubRecords.h1909
-rw-r--r--MdePkg/Include/Common/Dependency.h40
-rw-r--r--MdePkg/Include/Common/EfiImage.h744
-rw-r--r--MdePkg/Include/Common/FirmwareFileSystem.h91
-rw-r--r--MdePkg/Include/Common/FirmwareVolumeHeader.h116
-rw-r--r--MdePkg/Include/Common/FirmwareVolumeImageFormat.h277
-rw-r--r--MdePkg/Include/Common/Hob.h235
-rw-r--r--MdePkg/Include/Common/InternalFormRepresentation.h422
-rw-r--r--MdePkg/Include/Common/Legacy16.h310
-rw-r--r--MdePkg/Include/Common/MultiPhase.h82
-rw-r--r--MdePkg/Include/Common/PeCoffLoaderImageContext.h57
-rw-r--r--MdePkg/Include/Common/StatusCode.h940
-rw-r--r--MdePkg/Include/Common/StatusCodeDataTypeId.h336
-rw-r--r--MdePkg/Include/Common/UefiBaseTypes.h121
18 files changed, 0 insertions, 6151 deletions
diff --git a/MdePkg/Include/Common/BaseTypes.h b/MdePkg/Include/Common/BaseTypes.h
deleted file mode 100644
index f20217bf7e..0000000000
--- a/MdePkg/Include/Common/BaseTypes.h
+++ /dev/null
@@ -1,304 +0,0 @@
-/** @file
- Processor or Compiler specific defines for all supported processors.
-
- This file is stand alone self consistent set of definitions.
-
- Copyright (c) 2006 - 2007, Intel Corporation
- All rights reserved. This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php
-
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
- Module Name: BaseTypes.h
-
-**/
-
-#ifndef __BASE_TYPES_H__
-#define __BASE_TYPES_H__
-
-//
-// Include processor specific binding
-//
-#include <ProcessorBind.h>
-
-#define MEMORY_FENCE() MemoryFence ()
-#define BREAKPOINT() CpuBreakpoint ()
-#define DEADLOOP() CpuDeadLoop ()
-
-typedef struct {
- UINT32 Data1;
- UINT16 Data2;
- UINT16 Data3;
- UINT8 Data4[8];
-} GUID;
-
-
-//
-// Modifiers to absract standard types to aid in debug of problems
-//
-#define CONST const
-#define STATIC static
-#define VOID void
-
-//
-// Modifiers for Data Types used to self document code.
-// This concept is borrowed for UEFI specification.
-//
-#ifndef IN
-//
-// Some other envirnments use this construct, so #ifndef to prevent
-// mulitple definition.
-//
-#define IN
-#define OUT
-#define OPTIONAL
-#endif
-
-//
-// Constants. They may exist in other build structures, so #ifndef them.
-//
-#ifndef TRUE
-//
-// UEFI specification claims 1 and 0. We are concerned about the
-// complier portability so we did it this way.
-//
-#define TRUE ((BOOLEAN)(1==1))
-#endif
-
-#ifndef FALSE
-#define FALSE ((BOOLEAN)(0==1))
-#endif
-
-#ifndef NULL
-#define NULL ((VOID *) 0)
-#endif
-
-#define BIT0 0x00000001
-#define BIT1 0x00000002
-#define BIT2 0x00000004
-#define BIT3 0x00000008
-#define BIT4 0x00000010
-#define BIT5 0x00000020
-#define BIT6 0x00000040
-#define BIT7 0x00000080
-#define BIT8 0x00000100
-#define BIT9 0x00000200
-#define BIT10 0x00000400
-#define BIT11 0x00000800
-#define BIT12 0x00001000
-#define BIT13 0x00002000
-#define BIT14 0x00004000
-#define BIT15 0x00008000
-#define BIT16 0x00010000
-#define BIT17 0x00020000
-#define BIT18 0x00040000
-#define BIT19 0x00080000
-#define BIT20 0x00100000
-#define BIT21 0x00200000
-#define BIT22 0x00400000
-#define BIT23 0x00800000
-#define BIT24 0x01000000
-#define BIT25 0x02000000
-#define BIT26 0x04000000
-#define BIT27 0x08000000
-#define BIT28 0x10000000
-#define BIT29 0x20000000
-#define BIT30 0x40000000
-#define BIT31 0x80000000
-#define BIT32 0x0000000100000000UL
-#define BIT33 0x0000000200000000UL
-#define BIT34 0x0000000400000000UL
-#define BIT35 0x0000000800000000UL
-#define BIT36 0x0000001000000000UL
-#define BIT37 0x0000002000000000UL
-#define BIT38 0x0000004000000000UL
-#define BIT39 0x0000008000000000UL
-#define BIT40 0x0000010000000000UL
-#define BIT41 0x0000020000000000UL
-#define BIT42 0x0000040000000000UL
-#define BIT43 0x0000080000000000UL
-#define BIT44 0x0000100000000000UL
-#define BIT45 0x0000200000000000UL
-#define BIT46 0x0000400000000000UL
-#define BIT47 0x0000800000000000UL
-#define BIT48 0x0001000000000000UL
-#define BIT49 0x0002000000000000UL
-#define BIT50 0x0004000000000000UL
-#define BIT51 0x0008000000000000UL
-#define BIT52 0x0010000000000000UL
-#define BIT53 0x0020000000000000UL
-#define BIT54 0x0040000000000000UL
-#define BIT55 0x0080000000000000UL
-#define BIT56 0x0100000000000000UL
-#define BIT57 0x0200000000000000UL
-#define BIT58 0x0400000000000000UL
-#define BIT59 0x0800000000000000UL
-#define BIT60 0x1000000000000000UL
-#define BIT61 0x2000000000000000UL
-#define BIT62 0x4000000000000000UL
-#define BIT63 0x8000000000000000UL
-
-//
-// Support for variable length argument lists using the ANSI standard.
-//
-// Since we are using the ANSI standard we used the standard nameing and
-// did not folow the coding convention
-//
-// VA_LIST - typedef for argument list.
-// VA_START (VA_LIST Marker, argument before the ...) - Init Marker for use.
-// VA_END (VA_LIST Marker) - Clear Marker
-// VA_ARG (VA_LIST Marker, var arg size) - Use Marker to get an argumnet from
-// the ... list. You must know the size and pass it in this macro.
-//
-// example:
-//
-// UINTN
-// ExampleVarArg (
-// IN UINTN NumberOfArgs,
-// ...
-// )
-// {
-// VA_LIST Marker;
-// UINTN Index;
-// UINTN Result;
-//
-// //
-// // Initialize the Marker
-// //
-// VA_START (Marker, NumberOfArgs);
-// for (Index = 0, Result = 0; Index < NumberOfArgs; Index++) {
-// //
-// // The ... list is a series of UINTN values, so average them up.
-// //
-// Result += VA_ARG (Marker, UINTN);
-// }
-//
-// VA_END (Marker);
-// return Result
-// }
-//
-
-#define _INT_SIZE_OF(n) ((sizeof (n) + sizeof (UINTN) - 1) &~(sizeof (UINTN) - 1))
-
-//
-// Also support coding convention rules for var arg macros
-//
-#ifndef VA_START
-
-typedef CHAR8 *VA_LIST;
-#define VA_START(ap, v) (ap = (VA_LIST) & (v) + _INT_SIZE_OF (v))
-#define VA_ARG(ap, t) (*(t *) ((ap += _INT_SIZE_OF (t)) - _INT_SIZE_OF (t)))
-#define VA_END(ap) (ap = (VA_LIST) 0)
-
-#endif
-
-//
-// Macro that returns the byte offset of a field in a data structure.
-//
-#define OFFSET_OF(TYPE, Field) ((UINTN) &(((TYPE *)0)->Field))
-
-///
-/// CONTAINING_RECORD - returns a pointer to the structure
-/// from one of it's elements.
-///
-#define _CR(Record, TYPE, Field) ((TYPE *) ((CHAR8 *) (Record) - (CHAR8 *) &(((TYPE *) 0)->Field)))
-
-///
-/// ALIGN_POINTER - aligns a pointer to the lowest boundry
-///
-#define ALIGN_POINTER(p, s) ((VOID *) ((UINTN)(p) + (((s) - ((UINTN) (p))) & ((s) - 1))))
-
-///
-/// ALIGN_VARIABLE - aligns a variable up to the next natural boundry for int size of a processor
-///
-#define ALIGN_VARIABLE(Value, Adjustment) \
- Adjustment = 0U; \
- if ((UINTN) (Value) % sizeof (UINTN)) { \
- (Adjustment) = (UINTN)(sizeof (UINTN) - ((UINTN) (Value) % sizeof (UINTN))); \
- } \
- (Value) = (UINTN)((UINTN) (Value) + (UINTN) (Adjustment))
-
-//
-// Return the maximum of two operands.
-// This macro returns the maximum of two operand specified by a and b.
-// Both a and b must be the same numerical types, signed or unsigned.
-//
-#define MAX(a, b) \
- (((a) > (b)) ? (a) : (b))
-
-
-//
-// Return the minimum of two operands.
-// This macro returns the minimal of two operand specified by a and b.
-// Both a and b must be the same numerical types, signed or unsigned.
-//
-#define MIN(a, b) \
- (((a) < (b)) ? (a) : (b))
-
-
-//
-// EFI Error Codes common to all execution phases
-//
-
-typedef INTN RETURN_STATUS;
-
-///
-/// Set the upper bit to indicate EFI Error.
-///
-#define ENCODE_ERROR(a) (MAX_BIT | (a))
-
-#define ENCODE_WARNING(a) (a)
-#define RETURN_ERROR(a) ((a) < 0)
-
-#define RETURN_SUCCESS 0
-#define RETURN_LOAD_ERROR ENCODE_ERROR (1)
-#define RETURN_INVALID_PARAMETER ENCODE_ERROR (2)
-#define RETURN_UNSUPPORTED ENCODE_ERROR (3)
-#define RETURN_BAD_BUFFER_SIZE ENCODE_ERROR (4)
-#define RETURN_BUFFER_TOO_SMALL ENCODE_ERROR (5)
-#define RETURN_NOT_READY ENCODE_ERROR (6)
-#define RETURN_DEVICE_ERROR ENCODE_ERROR (7)
-#define RETURN_WRITE_PROTECTED ENCODE_ERROR (8)
-#define RETURN_OUT_OF_RESOURCES ENCODE_ERROR (9)
-#define RETURN_VOLUME_CORRUPTED ENCODE_ERROR (10)
-#define RETURN_VOLUME_FULL ENCODE_ERROR (11)
-#define RETURN_NO_MEDIA ENCODE_ERROR (12)
-#define RETURN_MEDIA_CHANGED ENCODE_ERROR (13)
-#define RETURN_NOT_FOUND ENCODE_ERROR (14)
-#define RETURN_ACCESS_DENIED ENCODE_ERROR (15)
-#define RETURN_NO_RESPONSE ENCODE_ERROR (16)
-#define RETURN_NO_MAPPING ENCODE_ERROR (17)
-#define RETURN_TIMEOUT ENCODE_ERROR (18)
-#define RETURN_NOT_STARTED ENCODE_ERROR (19)
-#define RETURN_ALREADY_STARTED ENCODE_ERROR (20)
-#define RETURN_ABORTED ENCODE_ERROR (21)
-#define RETURN_ICMP_ERROR ENCODE_ERROR (22)
-#define RETURN_TFTP_ERROR ENCODE_ERROR (23)
-#define RETURN_PROTOCOL_ERROR ENCODE_ERROR (24)
-#define RETURN_INCOMPATIBLE_VERSION ENCODE_ERROR (25)
-#define RETURN_SECURITY_VIOLATION ENCODE_ERROR (26)
-#define RETURN_CRC_ERROR ENCODE_ERROR (27)
-#define RETURN_END_OF_MEDIA ENCODE_ERROR (28)
-#define RETURN_END_OF_FILE ENCODE_ERROR (31)
-
-#define RETURN_WARN_UNKNOWN_GLYPH ENCODE_WARNING (1)
-#define RETURN_WARN_DELETE_FAILURE ENCODE_WARNING (2)
-#define RETURN_WARN_WRITE_FAILURE ENCODE_WARNING (3)
-#define RETURN_WARN_BUFFER_TOO_SMALL ENCODE_WARNING (4)
-
-typedef UINT64 PHYSICAL_ADDRESS;
-
-//
-// LIST_ENTRY definition
-//
-typedef struct _LIST_ENTRY LIST_ENTRY;
-
-struct _LIST_ENTRY {
- LIST_ENTRY *ForwardLink;
- LIST_ENTRY *BackLink;
-};
-
-#endif
diff --git a/MdePkg/Include/Common/BootMode.h b/MdePkg/Include/Common/BootMode.h
deleted file mode 100644
index 2f2c516d10..0000000000
--- a/MdePkg/Include/Common/BootMode.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/** @file
- This includes for the Boot mode information.
-
- Copyright (c) 2006, Intel Corporation
- All rights reserved. This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php
-
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
- Module Name: BootMode.h
-
- @par Revision Reference:
- These definitions are from PeiCis 0.91 spec.
-
-**/
-
-#ifndef __EFI_BOOT_MODE_H__
-#define __EFI_BOOT_MODE_H__
-
-#define BOOT_WITH_FULL_CONFIGURATION 0x00
-#define BOOT_WITH_MINIMAL_CONFIGURATION 0x01
-#define BOOT_ASSUMING_NO_CONFIGURATION_CHANGES 0x02
-#define BOOT_WITH_FULL_CONFIGURATION_PLUS_DIAGNOSTICS 0x03
-#define BOOT_WITH_DEFAULT_SETTINGS 0x04
-#define BOOT_ON_S4_RESUME 0x05
-#define BOOT_ON_S5_RESUME 0x06
-#define BOOT_ON_S2_RESUME 0x10
-#define BOOT_ON_S3_RESUME 0x11
-#define BOOT_ON_FLASH_UPDATE 0x12
-#define BOOT_IN_RECOVERY_MODE 0x20
-#define BOOT_IN_RECOVERY_MODE_MASK 0x40
-#define BOOT_SPECIAL_MASK 0x80
-
-#endif
diff --git a/MdePkg/Include/Common/BootScript.h b/MdePkg/Include/Common/BootScript.h
deleted file mode 100644
index 7f7c22976d..0000000000
--- a/MdePkg/Include/Common/BootScript.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/** @file
- This file declares the related BootScript definitions.
-
- Copyright (c) 2006 - 2007, Intel Corporation
- All rights reserved. This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php
-
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
- Module Name: BootScript.h
-
- @par Revision Reference:
- These definitions are defined in BootScript Spec 0.91.
-
-**/
-
-#ifndef _EFI_BOOT_SCRIPT_H_
-#define _EFI_BOOT_SCRIPT_H_
-
-#define EFI_ACPI_S3_RESUME_SCRIPT_TABLE 0x00
-
-//
-// Boot Script Opcode Definitions
-//
-
-#define EFI_BOOT_SCRIPT_IO_WRITE_OPCODE 0x00
-#define EFI_BOOT_SCRIPT_IO_READ_WRITE_OPCODE 0x01
-#define EFI_BOOT_SCRIPT_MEM_WRITE_OPCODE 0x02
-#define EFI_BOOT_SCRIPT_MEM_READ_WRITE_OPCODE 0x03
-#define EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE_OPCODE 0x04
-#define EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE_OPCODE 0x05
-#define EFI_BOOT_SCRIPT_SMBUS_EXECUTE_OPCODE 0x06
-#define EFI_BOOT_SCRIPT_STALL_OPCODE 0x07
-#define EFI_BOOT_SCRIPT_DISPATCH_OPCODE 0x08
-#define EFI_BOOT_SCRIPT_DISPATCH_2_OPCODE 0x09
-#define EFI_BOOT_SCRIPT_INFORMATION_OPCODE 0x0A
-
-#define EFI_BOOT_SCRIPT_TABLE_OPCODE 0xAA
-#define EFI_BOOT_SCRIPT_TERMINATE_OPCODE 0xFF
-
-//
-// EFI Boot Script Width
-//
-typedef enum {
- EfiBootScriptWidthUint8,
- EfiBootScriptWidthUint16,
- EfiBootScriptWidthUint32,
- EfiBootScriptWidthUint64,
- EfiBootScriptWidthFifoUint8,
- EfiBootScriptWidthFifoUint16,
- EfiBootScriptWidthFifoUint32,
- EfiBootScriptWidthFifoUint64,
- EfiBootScriptWidthFillUint8,
- EfiBootScriptWidthFillUint16,
- EfiBootScriptWidthFillUint32,
- EfiBootScriptWidthFillUint64,
- EfiBootScriptWidthMaximum
-} EFI_BOOT_SCRIPT_WIDTH;
-
-#endif
diff --git a/MdePkg/Include/Common/Capsule.h b/MdePkg/Include/Common/Capsule.h
deleted file mode 100644
index 0434fdf7f2..0000000000
--- a/MdePkg/Include/Common/Capsule.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/** @file
- Defines for the EFI Capsule functionality.
-
- Copyright (c) 2006, Intel Corporation
- All rights reserved. This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php
-
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
- Module Name: Capsule.h
-
- @par Revision Reference:
- These definitions are from Capsule Spec Version 0.9.
-
-**/
-
-#ifndef _EFI_CAPSULE_H_
-#define _EFI_CAPSULE_H_
-
-//
-// Bits in the flags field of the capsule header
-//
-#define EFI_CAPSULE_HEADER_FLAG_SETUP 0x00000001 // supports setup changes
-
-
-#define CAPSULE_BLOCK_DESCRIPTOR_SIGNATURE EFI_SIGNATURE_32 ('C', 'B', 'D', 'S')
-
-//
-// An array of these describe the blocks that make up a capsule for
-// a capsule update.
-//
-typedef struct {
- UINT64 Length; // length of the data block
- EFI_PHYSICAL_ADDRESS Data; // physical address of the data block
- UINT32 Signature; // CBDS
- UINT32 CheckSum; // to sum this structure to 0
-} EFI_CAPSULE_BLOCK_DESCRIPTOR;
-
-typedef struct {
- EFI_GUID OemGuid;
- UINT32 HeaderSize;
- //
- // UINT8 OemHdrData[];
- //
-} EFI_CAPSULE_OEM_HEADER;
-
-typedef struct {
- EFI_GUID CapsuleGuid;
- UINT32 HeaderSize;
- UINT32 Flags;
- UINT32 CapsuleImageSize;
- UINT32 SequenceNumber;
- EFI_GUID InstanceId;
- UINT32 OffsetToSplitInformation;
- UINT32 OffsetToCapsuleBody;
- UINT32 OffsetToOemDefinedHeader;
- UINT32 OffsetToAuthorInformation;
- UINT32 OffsetToRevisionInformation;
- UINT32 OffsetToShortDescription;
- UINT32 OffsetToLongDescription;
- UINT32 OffsetToApplicableDevices;
-} EFI_CAPSULE_HEADER;
-
-#endif // #ifndef _EFI_CAPSULE_H_
diff --git a/MdePkg/Include/Common/DataHubRecords.h b/MdePkg/Include/Common/DataHubRecords.h
deleted file mode 100644
index 9a45a63636..0000000000
--- a/MdePkg/Include/Common/DataHubRecords.h
+++ /dev/null
@@ -1,1909 +0,0 @@
-/** @file
- This file defines GUIDs and associated data structures for records posted to the Data Hub.
- The producers of these records use these definitions to construct records.
- The consumers of these records use these definitions to retrieve, filter and parse records.
-
- Copyright (c) 2006, Intel Corporation
- All rights reserved. This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php
-
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
- Module Name: DataHubRecords.h
-
- @par Revision Reference:
- DataHubRecord.h include all data hub sub class defitions from Cache subclass
- spec 0.9, DataHub SubClass spec 0.9, Memory SubClass Spec 0.9, Processor
- Subclass spec 0.9,Misc SubClass spec 0.9.
-
-**/
-
-#ifndef _DATAHUB_RECORDS_H_
-#define _DATAHUB_RECORDS_H_
-
-#define EFI_PROCESSOR_SUBCLASS_VERSION 0x00010000
-
-
-#pragma pack(1)
-
-typedef struct _USB_PORT_DEVICE_PATH {
- ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;
- PCI_DEVICE_PATH PciBusDevicePath;
- EFI_DEVICE_PATH_PROTOCOL EndDevicePath;
-} USB_PORT_DEVICE_PATH;
-
-//
-// IDE
-//
-typedef struct _IDE_DEVICE_PATH {
- ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;
- PCI_DEVICE_PATH PciBusDevicePath;
- EFI_DEVICE_PATH_PROTOCOL EndDevicePath;
-} IDE_DEVICE_PATH;
-
-//
-// RMC Connector
-//
-typedef struct _RMC_CONN_DEVICE_PATH {
- ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;
- PCI_DEVICE_PATH PciBridgeDevicePath;
- PCI_DEVICE_PATH PciBusDevicePath;
- EFI_DEVICE_PATH_PROTOCOL EndDevicePath;
-} RMC_CONN_DEVICE_PATH;
-
-//
-// RIDE
-//
-typedef struct _RIDE_DEVICE_PATH {
- ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;
- PCI_DEVICE_PATH PciBridgeDevicePath;
- PCI_DEVICE_PATH PciBusDevicePath;
- EFI_DEVICE_PATH_PROTOCOL EndDevicePath;
-} RIDE_DEVICE_PATH;
-
-//
-// Gigabit NIC
-//
-typedef struct _GB_NIC_DEVICE_PATH {
- ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;
- PCI_DEVICE_PATH PciBridgeDevicePath;
- PCI_DEVICE_PATH PciXBridgeDevicePath;
- PCI_DEVICE_PATH PciXBusDevicePath;
- EFI_DEVICE_PATH_PROTOCOL EndDevicePath;
-} GB_NIC_DEVICE_PATH;
-
-//
-// P/S2 Connector
-//
-typedef struct _PS2_CONN_DEVICE_PATH {
- ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;
- PCI_DEVICE_PATH LpcBridgeDevicePath;
- ACPI_HID_DEVICE_PATH LpcBusDevicePath;
- EFI_DEVICE_PATH_PROTOCOL EndDevicePath;
-} PS2_CONN_DEVICE_PATH;
-
-//
-// Serial Port Connector
-//
-typedef struct _SERIAL_CONN_DEVICE_PATH {
- ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;
- PCI_DEVICE_PATH LpcBridgeDevicePath;
- ACPI_HID_DEVICE_PATH LpcBusDevicePath;
- EFI_DEVICE_PATH_PROTOCOL EndDevicePath;
-} SERIAL_CONN_DEVICE_PATH;
-
-//
-// Parallel Port Connector
-//
-typedef struct _PARALLEL_CONN_DEVICE_PATH {
- ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;
- PCI_DEVICE_PATH LpcBridgeDevicePath;
- ACPI_HID_DEVICE_PATH LpcBusDevicePath;
- EFI_DEVICE_PATH_PROTOCOL EndDevicePath;
-} PARALLEL_CONN_DEVICE_PATH;
-
-//
-// Floopy Connector
-//
-typedef struct _FLOOPY_CONN_DEVICE_PATH {
- ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;
- PCI_DEVICE_PATH LpcBridgeDevicePath;
- ACPI_HID_DEVICE_PATH LpcBusDevicePath;
- EFI_DEVICE_PATH_PROTOCOL EndDevicePath;
-} FLOOPY_CONN_DEVICE_PATH;
-
-typedef union _EFI_MISC_PORT_DEVICE_PATH {
- USB_PORT_DEVICE_PATH UsbDevicePath;
- IDE_DEVICE_PATH IdeDevicePath;
- RMC_CONN_DEVICE_PATH RmcConnDevicePath;
- RIDE_DEVICE_PATH RideDevicePath;
- GB_NIC_DEVICE_PATH GbNicDevicePath;
- PS2_CONN_DEVICE_PATH Ps2ConnDevicePath;
- SERIAL_CONN_DEVICE_PATH SerialConnDevicePath;
- PARALLEL_CONN_DEVICE_PATH ParallelConnDevicePath;
- FLOOPY_CONN_DEVICE_PATH FloppyConnDevicePath;
-} EFI_MISC_PORT_DEVICE_PATH;
-
-#pragma pack()
-
-//
-// String Token Definition
-//
-#define EFI_STRING_TOKEN UINT16
-
-typedef struct {
- UINT32 Version;
- UINT32 HeaderSize;
- UINT16 Instance;
- UINT16 SubInstance;
- UINT32 RecordType;
-} EFI_SUBCLASS_TYPE1_HEADER;
-
-typedef struct {
- EFI_GUID ProducerName;
- UINT16 Instance;
- UINT16 SubInstance;
-} EFI_INTER_LINK_DATA;
-
-
-//
-// EXP data
-//
-
-typedef struct {
- UINT16 Value;
- UINT16 Exponent;
-} EFI_EXP_BASE2_DATA;
-
-
-typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_MAX_CORE_FREQUENCY_DATA;
-
-typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_MAX_FSB_FREQUENCY_DATA;
-
-typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_CORE_FREQUENCY_DATA;
-
-typedef EFI_EXP_BASE10_DATA *EFI_PROCESSOR_CORE_FREQUENCY_LIST_DATA;
-
-typedef EFI_EXP_BASE10_DATA *EFI_PROCESSOR_FSB_FREQUENCY_LIST_DATA;
-
-typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_FSB_FREQUENCY_DATA;
-
-typedef STRING_REF EFI_PROCESSOR_VERSION_DATA;
-
-typedef STRING_REF EFI_PROCESSOR_MANUFACTURER_DATA;
-
-typedef STRING_REF EFI_PROCESSOR_SERIAL_NUMBER_DATA;
-
-typedef STRING_REF EFI_PROCESSOR_ASSET_TAG_DATA;
-
-typedef struct {
- UINT32 ProcessorSteppingId:4;
- UINT32 ProcessorModel: 4;
- UINT32 ProcessorFamily: 4;
- UINT32 ProcessorType: 2;
- UINT32 ProcessorReserved1: 2;
- UINT32 ProcessorXModel: 4;
- UINT32 ProcessorXFamily: 8;
- UINT32 ProcessorReserved2: 4;
-} EFI_PROCESSOR_SIGNATURE;
-
-typedef struct {
- UINT32 ProcessorBrandIndex :8;
- UINT32 ProcessorClflush :8;
- UINT32 ProcessorReserved :8;
- UINT32 ProcessorDfltApicId :8;
-} EFI_PROCESSOR_MISC_INFO;
-
-typedef struct {
- UINT32 ProcessorFpu: 1;
- UINT32 ProcessorVme: 1;
- UINT32 ProcessorDe: 1;
- UINT32 ProcessorPse: 1;
- UINT32 ProcessorTsc: 1;
- UINT32 ProcessorMsr: 1;
- UINT32 ProcessorPae: 1;
- UINT32 ProcessorMce: 1;
- UINT32 ProcessorCx8: 1;
- UINT32 ProcessorApic: 1;
- UINT32 ProcessorReserved1: 1;
- UINT32 ProcessorSep: 1;
- UINT32 ProcessorMtrr: 1;
- UINT32 ProcessorPge: 1;
- UINT32 ProcessorMca: 1;
- UINT32 ProcessorCmov: 1;
- UINT32 ProcessorPat: 1;
- UINT32 ProcessorPse36: 1;
- UINT32 ProcessorPsn: 1;
- UINT32 ProcessorClfsh: 1;
- UINT32 ProcessorReserved2: 1;
- UINT32 ProcessorDs: 1;
- UINT32 ProcessorAcpi: 1;
- UINT32 ProcessorMmx: 1;
- UINT32 ProcessorFxsr: 1;
- UINT32 ProcessorSse: 1;
- UINT32 ProcessorSse2: 1;
- UINT32 ProcessorSs: 1;
- UINT32 ProcessorReserved3: 1;
- UINT32 ProcessorTm: 1;
- UINT32 ProcessorReserved4: 2;
-} EFI_PROCESSOR_FEATURE_FLAGS;
-
-typedef struct {
- EFI_PROCESSOR_SIGNATURE Signature;
- EFI_PROCESSOR_MISC_INFO MiscInfo;
- UINT32 Reserved;
- EFI_PROCESSOR_FEATURE_FLAGS FeatureFlags;
-} EFI_PROCESSOR_ID_DATA;
-
-typedef enum {
- EfiProcessorOther = 1,
- EfiProcessorUnknown = 2,
- EfiCentralProcessor = 3,
- EfiMathProcessor = 4,
- EfiDspProcessor = 5,
- EfiVideoProcessor = 6
-} EFI_PROCESSOR_TYPE_DATA;
-
-typedef enum {
- EfiProcessorFamilyOther = 1,
- EfiProcessorFamilyUnknown = 2,
- EfiProcessorFamily8086 = 3,
- EfiProcessorFamily80286 = 4,
- EfiProcessorFamilyIntel386 = 5,
- EfiProcessorFamilyIntel486 = 6,
- EfiProcessorFamily8087 = 7,
- EfiProcessorFamily80287 = 8,
- EfiProcessorFamily80387 = 9,
- EfiProcessorFamily80487 = 0x0A,
- EfiProcessorFamilyPentium = 0x0B,
- EfiProcessorFamilyPentiumPro = 0x0C,
- EfiProcessorFamilyPentiumII = 0x0D,
- EfiProcessorFamilyPentiumMMX = 0x0E,
- EfiProcessorFamilyCeleron = 0x0F,
- EfiProcessorFamilyPentiumIIXeon = 0x10,
- EfiProcessorFamilyPentiumIII = 0x11,
- EfiProcessorFamilyM1 = 0x12,
- EfiProcessorFamilyM1Reserved1 = 0x13,
- EfiProcessorFamilyM1Reserved2 = 0x14,
- EfiProcessorFamilyM1Reserved3 = 0x15,
- EfiProcessorFamilyM1Reserved4 = 0x16,
- EfiProcessorFamilyM1Reserved5 = 0x17,
- EfiProcessorFamilyM1Reserved6 = 0x18,
- EfiProcessorFamilyK5 = 0x19,
- EfiProcessorFamilyK5Reserved1 = 0x1A,
- EfiProcessorFamilyK5Reserved2 = 0x1B,
- EfiProcessorFamilyK5Reserved3 = 0x1C,
- EfiProcessorFamilyK5Reserved4 = 0x1D,
- EfiProcessorFamilyK5Reserved5 = 0x1E,
- EfiProcessorFamilyK5Reserved6 = 0x1F,
- EfiProcessorFamilyPowerPC = 0x20,
- EfiProcessorFamilyPowerPC601 = 0x21,
- EfiProcessorFamilyPowerPC603 = 0x22,
- EfiProcessorFamilyPowerPC603Plus = 0x23,
- EfiProcessorFamilyPowerPC604 = 0x24,
- EfiProcessorFamilyAlpha2 = 0x30,
- EfiProcessorFamilyMips = 0x40,
- EfiProcessorFamilySparc = 0x50,
- EfiProcessorFamily68040 = 0x60,
- EfiProcessorFamily68xxx = 0x61,
- EfiProcessorFamily68000 = 0x62,
- EfiProcessorFamily68010 = 0x63,
- EfiProcessorFamily68020 = 0x64,
- EfiProcessorFamily68030 = 0x65,
- EfiProcessorFamilyHobbit = 0x70,
- EfiProcessorFamilyWeitek = 0x80,
- EfiProcessorFamilyPARISC = 0x90,
- EfiProcessorFamilyV30 = 0xA0,
- EfiProcessorFamilyPentiumIIIXeon = 0xB0,
- EfiProcessorFamilyPentiumIIISpeedStep = 0xB1,
- EfiProcessorFamilyPentium4 = 0xB2,
- EfiProcessorFamilyIntelXeon = 0xB3,
- EfiProcessorFamilyAS400 = 0xB4,
- EfiProcessorFamilyIntelXeonMP = 0xB5,
- EfiProcessorFamilyAMDAthlonXP = 0xB6,
- EfiProcessorFamilyAMDAthlonMP = 0xB7,
- EfiProcessorFamilyIntelPentiumM = 0xB9,
- EfiProcessorFamilyIntelCeleronD = 0xBA,
- EfiProcessorFamilyIntelPentiumD = 0xBB,
- EfiProcessorFamilyIntelPentiumEx = 0xBC,
- EfiProcessorFamilyIBM390 = 0xC8,
- EfiProcessorFamilyG4 = 0xC9,
- EfiProcessorFamilyG5 = 0xCA,
- EfiProcessorFamilyi860 = 0xFA,
- EfiProcessorFamilyi960 = 0xFB
-} EFI_PROCESSOR_FAMILY_DATA;
-
-typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_VOLTAGE_DATA;
-
-typedef EFI_PHYSICAL_ADDRESS EFI_PROCESSOR_APIC_BASE_ADDRESS_DATA;
-
-typedef UINT32 EFI_PROCESSOR_APIC_ID_DATA;
-
-typedef UINT32 EFI_PROCESSOR_APIC_VERSION_NUMBER_DATA;
-
-typedef enum {
- EfiProcessorIa32Microcode = 1,
- EfiProcessorIpfPalAMicrocode = 2,
- EfiProcessorIpfPalBMicrocode = 3
-} EFI_PROCESSOR_MICROCODE_TYPE;
-
-typedef struct {
- EFI_PROCESSOR_MICROCODE_TYPE ProcessorMicrocodeType;
- UINT32 ProcessorMicrocodeRevisionNumber;
-} EFI_PROCESSOR_MICROCODE_REVISION_DATA;
-
-typedef struct {
- UINT32 CpuStatus :3;
- UINT32 Reserved1 :3;
- UINT32 SocketPopulated :1;
- UINT32 Reserved2 :1;
- UINT32 ApicEnable :1;
- UINT32 BootApplicationProcessor :1;
- UINT32 Reserved3 :22;
-} EFI_PROCESSOR_STATUS_DATA;
-
-typedef enum {
- EfiCpuStatusUnknown = 0,
- EfiCpuStatusEnabled = 1,
- EfiCpuStatusDisabledByUser = 2,
- EfiCpuStatusDisabledbyBios = 3,
- EfiCpuStatusIdle = 4,
- EfiCpuStatusOther = 7
-} EFI_CPU_STATUS;
-
-typedef enum {
- EfiProcessorSocketOther = 1,
- EfiProcessorSocketUnknown = 2,
- EfiProcessorSocketDaughterBoard = 3,
- EfiProcessorSocketZIF = 4,
- EfiProcessorSocketReplacePiggyBack = 5,
- EfiProcessorSocketNone = 6,
- EfiProcessorSocketLIF = 7,
- EfiProcessorSocketSlot1 = 8,
- EfiProcessorSocketSlot2 = 9,
- EfiProcessorSocket370Pin = 0xA,
- EfiProcessorSocketSlotA = 0xB,
- EfiProcessorSocketSlotM = 0xC,
- EfiProcessorSocket423 = 0xD,
- EfiProcessorSocketA462 = 0xE,
- EfiProcessorSocket478 = 0xF,
- EfiProcessorSocket754 = 0x10,
- EfiProcessorSocket940 = 0x11,
- EfiProcessorSocket939 = 0x12,
- EfiProcessorSocketmPGA604 = 0x13,
- EfiProcessorSocketLGA771 = 0x14,
- EfiProcessorSocketLGA775 = 0x15
-
-} EFI_PROCESSOR_SOCKET_TYPE_DATA;
-
-typedef STRING_REF EFI_PROCESSOR_SOCKET_NAME_DATA;
-
-typedef EFI_INTER_LINK_DATA EFI_CACHE_ASSOCIATION_DATA;
-
-typedef enum {
- EfiProcessorHealthy = 1,
- EfiProcessorPerfRestricted = 2,
- EfiProcessorFuncRestricted = 3
-} EFI_PROCESSOR_HEALTH_STATUS;
-
-typedef UINTN EFI_PROCESSOR_PACKAGE_NUMBER_DATA;
-
-
-typedef enum {
- ProcessorCoreFrequencyRecordType = 1,
- ProcessorFsbFrequencyRecordType = 2,
- ProcessorVersionRecordType = 3,
- ProcessorManufacturerRecordType = 4,
- ProcessorSerialNumberRecordType = 5,
- ProcessorIdRecordType = 6,
- ProcessorTypeRecordType = 7,
- ProcessorFamilyRecordType = 8,
- ProcessorVoltageRecordType = 9,
- ProcessorApicBaseAddressRecordType = 10,
- ProcessorApicIdRecordType = 11,
- ProcessorApicVersionNumberRecordType = 12,
- CpuUcodeRevisionDataRecordType = 13,
- ProcessorStatusRecordType = 14,
- ProcessorSocketTypeRecordType = 15,
- ProcessorSocketNameRecordType = 16,
- CacheAssociationRecordType = 17,
- ProcessorMaxCoreFrequencyRecordType = 18,
- ProcessorAssetTagRecordType = 19,
- ProcessorMaxFsbFrequencyRecordType = 20,
- ProcessorPackageNumberRecordType = 21,
- ProcessorCoreFrequencyListRecordType = 22,
- ProcessorFsbFrequencyListRecordType = 23,
- ProcessorHealthStatusRecordType = 24
-} EFI_CPU_VARIABLE_RECORD_TYPE;
-
-typedef union {
- EFI_PROCESSOR_CORE_FREQUENCY_LIST_DATA ProcessorCoreFrequencyList;
- EFI_PROCESSOR_FSB_FREQUENCY_LIST_DATA ProcessorFsbFrequencyList;
- EFI_PROCESSOR_SERIAL_NUMBER_DATA ProcessorSerialNumber;
- EFI_PROCESSOR_CORE_FREQUENCY_DATA ProcessorCoreFrequency;
- EFI_PROCESSOR_FSB_FREQUENCY_DATA ProcessorFsbFrequency;
- EFI_PROCESSOR_MAX_CORE_FREQUENCY_DATA ProcessorMaxCoreFrequency;
- EFI_PROCESSOR_MAX_FSB_FREQUENCY_DATA ProcessorMaxFsbFrequency;
- EFI_PROCESSOR_VERSION_DATA ProcessorVersion;
- EFI_PROCESSOR_MANUFACTURER_DATA ProcessorManufacturer;
- EFI_PROCESSOR_ID_DATA ProcessorId;
- EFI_PROCESSOR_TYPE_DATA ProcessorType;
- EFI_PROCESSOR_FAMILY_DATA ProcessorFamily;
- EFI_PROCESSOR_VOLTAGE_DATA ProcessorVoltage;
- EFI_PROCESSOR_APIC_BASE_ADDRESS_DATA ProcessorApicBase;
- EFI_PROCESSOR_APIC_ID_DATA ProcessorApicId;
- EFI_PROCESSOR_APIC_VERSION_NUMBER_DATA ProcessorApicVersionNumber;
- EFI_PROCESSOR_MICROCODE_REVISION_DATA CpuUcodeRevisionData;
- EFI_PROCESSOR_STATUS_DATA ProcessorStatus;
- EFI_PROCESSOR_SOCKET_TYPE_DATA ProcessorSocketType;
- EFI_PROCESSOR_SOCKET_NAME_DATA ProcessorSocketName;
- EFI_PROCESSOR_ASSET_TAG_DATA ProcessorAssetTag;
- EFI_PROCESSOR_HEALTH_STATUS ProcessorHealthStatus;
- EFI_PROCESSOR_PACKAGE_NUMBER_DATA ProcessorPackageNumber;
-} EFI_CPU_VARIABLE_RECORD;
-
-typedef struct {
- EFI_SUBCLASS_TYPE1_HEADER DataRecordHeader;
- EFI_CPU_VARIABLE_RECORD VariableRecord;
-} EFI_CPU_DATA_RECORD;
-
-#define EFI_CACHE_SUBCLASS_VERSION 0x00010000
-
-
-typedef EFI_EXP_BASE2_DATA EFI_CACHE_SIZE_DATA;
-
-typedef EFI_EXP_BASE2_DATA EFI_MAXIMUM_CACHE_SIZE_DATA;
-
-typedef EFI_EXP_BASE10_DATA EFI_CACHE_SPEED_DATA;
-
-typedef STRING_REF EFI_CACHE_SOCKET_DATA;
-
-typedef struct {
- UINT32 Other :1;
- UINT32 Unknown :1;
- UINT32 NonBurst :1;
- UINT32 Burst :1;
- UINT32 PipelineBurst :1;
- UINT32 Asynchronous :1;
- UINT32 Synchronous :1;
- UINT32 Reserved :25;
-} EFI_CACHE_SRAM_TYPE_DATA;
-
-typedef enum {
- EfiCacheErrorOther = 1,
- EfiCacheErrorUnknown = 2,
- EfiCacheErrorNone = 3,
- EfiCacheErrorParity = 4,
- EfiCacheErrorSingleBit = 5,
- EfiCacheErrorMultiBit = 6
-} EFI_CACHE_ERROR_TYPE_DATA;
-
-typedef enum {
- EfiCacheTypeOther = 1,
- EfiCacheTypeUnknown = 2,
- EfiCacheTypeInstruction = 3,
- EfiCacheTypeData = 4,
- EfiCacheTypeUnified = 5
-} EFI_CACHE_TYPE_DATA;
-
-typedef enum {
- EfiCacheAssociativityOther = 1,
- EfiCacheAssociativityUnknown = 2,
- EfiCacheAssociativityDirectMapped = 3,
- EfiCacheAssociativity2Way = 4,
- EfiCacheAssociativity4Way = 5,
- EfiCacheAssociativityFully = 6,
- EfiCacheAssociativity8Way = 7,
- EfiCacheAssociativity16Way = 8
-} EFI_CACHE_ASSOCIATIVITY_DATA;
-
-typedef struct {
- UINT32 Level :3;
- UINT32 Socketed :1;
- UINT32 Reserved2 :1;
- UINT32 Location :2;
- UINT32 Enable :1;
- UINT32 OperationalMode :2;
- UINT32 Reserved1 :22;
-} EFI_CACHE_CONFIGURATION_DATA;
-
-#define EFI_CACHE_L1 1
-#define EFI_CACHE_L2 2
-#define EFI_CACHE_L3 3
-#define EFI_CACHE_L4 4
-#define EFI_CACHE_LMAX EFI_CACHE_L4
-
-#define EFI_CACHE_SOCKETED 1
-#define EFI_CACHE_NOT_SOCKETED 0
-
-typedef enum {
- EfiCacheInternal = 0,
- EfiCacheExternal = 1,
- EfiCacheReserved = 2,
- EfiCacheUnknown = 3
-} EFI_CACHE_LOCATION;
-
-#define EFI_CACHE_ENABLED 1
-#define EFI_CACHE_DISABLED 0
-
-typedef enum {
- EfiCacheWriteThrough = 0,
- EfiCacheWriteBack = 1,
- EfiCacheDynamicMode = 2,
- EfiCacheUnknownMode = 3
-} EFI_CACHE_OPERATIONAL_MODE;
-
-
-
-typedef enum {
- CacheSizeRecordType = 1,
- MaximumSizeCacheRecordType = 2,
- CacheSpeedRecordType = 3,
- CacheSocketRecordType = 4,
- CacheSramTypeRecordType = 5,
- CacheInstalledSramTypeRecordType = 6,
- CacheErrorTypeRecordType = 7,
- CacheTypeRecordType = 8,
- CacheAssociativityRecordType = 9,
- CacheConfigRecordType = 10
-} EFI_CACHE_VARIABLE_RECORD_TYPE;
-
-
-typedef union {
- EFI_CACHE_SIZE_DATA CacheSize;
- EFI_MAXIMUM_CACHE_SIZE_DATA MaximumCacheSize;
- EFI_CACHE_SPEED_DATA CacheSpeed;
- EFI_CACHE_SOCKET_DATA CacheSocket;
- EFI_CACHE_SRAM_TYPE_DATA CacheSramType;
- EFI_CACHE_SRAM_TYPE_DATA CacheInstalledSramType;
- EFI_CACHE_ERROR_TYPE_DATA CacheErrorType;
- EFI_CACHE_TYPE_DATA CacheType;
- EFI_CACHE_ASSOCIATIVITY_DATA CacheAssociativity;
- EFI_CACHE_CONFIGURATION_DATA CacheConfig;
- EFI_CACHE_ASSOCIATION_DATA CacheAssociation;
-} EFI_CACHE_VARIABLE_RECORD;
-
-typedef struct {
- EFI_SUBCLASS_TYPE1_HEADER DataRecordHeader;
- EFI_CACHE_VARIABLE_RECORD VariableRecord;
-} EFI_CACHE_DATA_RECORD;
-
-#define EFI_MEMORY_SUBCLASS_VERSION 0x0100
-
-
-#define EFI_MEMORY_SIZE_RECORD_NUMBER 0x00000001
-
-typedef enum _EFI_MEMORY_REGION_TYPE {
- EfiMemoryRegionMemory = 0x01,
- EfiMemoryRegionReserved = 0x02,
- EfiMemoryRegionAcpi = 0x03,
- EfiMemoryRegionNvs = 0x04
-} EFI_MEMORY_REGION_TYPE;
-
-typedef struct {
- UINT32 ProcessorNumber;
- UINT16 StartBusNumber;
- UINT16 EndBusNumber;
- EFI_MEMORY_REGION_TYPE MemoryRegionType;
- EFI_EXP_BASE2_DATA MemorySize;
- EFI_PHYSICAL_ADDRESS MemoryStartAddress;
-} EFI_MEMORY_SIZE_DATA;
-
-
-#define EFI_MEMORY_ARRAY_LOCATION_RECORD_NUMBER 0x00000002
-
-typedef enum _EFI_MEMORY_ARRAY_LOCATION {
- EfiMemoryArrayLocationOther = 0x01,
- EfiMemoryArrayLocationUnknown = 0x02,
- EfiMemoryArrayLocationSystemBoard = 0x03,
- EfiMemoryArrayLocationIsaAddonCard = 0x04,
- EfiMemoryArrayLocationEisaAddonCard = 0x05,
- EfiMemoryArrayLocationPciAddonCard = 0x06,
- EfiMemoryArrayLocationMcaAddonCard = 0x07,
- EfiMemoryArrayLocationPcmciaAddonCard = 0x08,
- EfiMemoryArrayLocationProprietaryAddonCard = 0x09,
- EfiMemoryArrayLocationNuBus = 0x0A,
- EfiMemoryArrayLocationPc98C20AddonCard = 0xA0,
- EfiMemoryArrayLocationPc98C24AddonCard = 0xA1,
- EfiMemoryArrayLocationPc98EAddonCard = 0xA2,
- EfiMemoryArrayLocationPc98LocalBusAddonCard = 0xA3
-} EFI_MEMORY_ARRAY_LOCATION;
-
-typedef enum _EFI_MEMORY_ARRAY_USE {
- EfiMemoryArrayUseOther = 0x01,
- EfiMemoryArrayUseUnknown = 0x02,
- EfiMemoryArrayUseSystemMemory = 0x03,
- EfiMemoryArrayUseVideoMemory = 0x04,
- EfiMemoryArrayUseFlashMemory = 0x05,
- EfiMemoryArrayUseNonVolatileRam = 0x06,
- EfiMemoryArrayUseCacheMemory = 0x07,
-} EFI_MEMORY_ARRAY_USE;
-
-typedef enum _EFI_MEMORY_ERROR_CORRECTION {
- EfiMemoryErrorCorrectionOther = 0x01,
- EfiMemoryErrorCorrectionUnknown = 0x02,
- EfiMemoryErrorCorrectionNone = 0x03,
- EfiMemoryErrorCorrectionParity = 0x04,
- EfiMemoryErrorCorrectionSingleBitEcc = 0x05,
- EfiMemoryErrorCorrectionMultiBitEcc = 0x06,
- EfiMemoryErrorCorrectionCrc = 0x07,
-} EFI_MEMORY_ERROR_CORRECTION;
-
-typedef struct {
- EFI_MEMORY_ARRAY_LOCATION MemoryArrayLocation;
- EFI_MEMORY_ARRAY_USE MemoryArrayUse;
- EFI_MEMORY_ERROR_CORRECTION MemoryErrorCorrection;
- EFI_EXP_BASE2_DATA MaximumMemoryCapacity;
- UINT16 NumberMemoryDevices;
-} EFI_MEMORY_ARRAY_LOCATION_DATA;
-
-
-#define EFI_MEMORY_ARRAY_LINK_RECORD_NUMBER 0x00000003
-
-typedef enum _EFI_MEMORY_FORM_FACTOR {
- EfiMemoryFormFactorOther = 0x01,
- EfiMemoryFormFactorUnknown = 0x02,
- EfiMemoryFormFactorSimm = 0x03,
- EfiMemoryFormFactorSip = 0x04,
- EfiMemoryFormFactorChip = 0x05,
- EfiMemoryFormFactorDip = 0x06,
- EfiMemoryFormFactorZip = 0x07,
- EfiMemoryFormFactorProprietaryCard = 0x08,
- EfiMemoryFormFactorDimm = 0x09,
- EfiMemoryFormFactorTsop = 0x0A,
- EfiMemoryFormFactorRowOfChips = 0x0B,
- EfiMemoryFormFactorRimm = 0x0C,
- EfiMemoryFormFactorSodimm = 0x0D,
- EfiMemoryFormFactorSrimm = 0x0E,
- EfiMemoryFormFactorFbDimm = 0x0F
-} EFI_MEMORY_FORM_FACTOR;
-
-typedef enum _EFI_MEMORY_ARRAY_TYPE {
- EfiMemoryTypeOther = 0x01,
- EfiMemoryTypeUnknown = 0x02,
- EfiMemoryTypeDram = 0x03,
- EfiMemoryTypeEdram = 0x04,
- EfiMemoryTypeVram = 0x05,
- EfiMemoryTypeSram = 0x06,
- EfiMemoryTypeRam = 0x07,
- EfiMemoryTypeRom = 0x08,
- EfiMemoryTypeFlash = 0x09,
- EfiMemoryTypeEeprom = 0x0A,
- EfiMemoryTypeFeprom = 0x0B,
- EfiMemoryTypeEprom = 0x0C,
- EfiMemoryTypeCdram = 0x0D,
- EfiMemoryType3Dram = 0x0E,
- EfiMemoryTypeSdram = 0x0F,
- EfiMemoryTypeSgram = 0x10,
- EfiMemoryTypeRdram = 0x11,
- EfiMemoryTypeDdr = 0x12,
- EfiMemoryTypeDdr2 = 0x13,
- EfiMemoryTypeDdr2FbDimm = 0x14
-} EFI_MEMORY_ARRAY_TYPE;
-
-typedef struct {
- UINT32 Reserved :1;
- UINT32 Other :1;
- UINT32 Unknown :1;
- UINT32 FastPaged :1;
- UINT32 StaticColumn :1;
- UINT32 PseudoStatic :1;
- UINT32 Rambus :1;
- UINT32 Synchronous :1;
- UINT32 Cmos :1;
- UINT32 Edo :1;
- UINT32 WindowDram :1;
- UINT32 CacheDram :1;
- UINT32 Nonvolatile :1;
- UINT32 Reserved1 :19;
-} EFI_MEMORY_TYPE_DETAIL;
-
-typedef enum {
- EfiMemoryStateEnabled = 0,
- EfiMemoryStateUnknown = 1,
- EfiMemoryStateUnsupported = 2,
- EfiMemoryStateError = 3,
- EfiMemoryStateAbsent = 4,
- EfiMemoryStateDisabled = 5,
- EfiMemoryStatePartial = 6
-} EFI_MEMORY_STATE;
-
-typedef struct {
- STRING_REF MemoryDeviceLocator;
- STRING_REF MemoryBankLocator;
- STRING_REF MemoryManufacturer;
- STRING_REF MemorySerialNumber;
- STRING_REF MemoryAssetTag;
- STRING_REF MemoryPartNumber;
- EFI_INTER_LINK_DATA MemoryArrayLink;
- EFI_INTER_LINK_DATA MemorySubArrayLink;
- UINT16 MemoryTotalWidth;
- UINT16 MemoryDataWidth;
- EFI_EXP_BASE2_DATA MemoryDeviceSize;
- EFI_MEMORY_FORM_FACTOR MemoryFormFactor;
- UINT8 MemoryDeviceSet;
- EFI_MEMORY_ARRAY_TYPE MemoryType;
- EFI_MEMORY_TYPE_DETAIL MemoryTypeDetail;
- EFI_EXP_BASE10_DATA MemorySpeed;
- EFI_MEMORY_STATE MemoryState;
-} EFI_MEMORY_ARRAY_LINK_DATA;
-
-
-#define EFI_MEMORY_ARRAY_START_ADDRESS_RECORD_NUMBER 0x00000004
-
-typedef struct {
- EFI_PHYSICAL_ADDRESS MemoryArrayStartAddress;
- EFI_PHYSICAL_ADDRESS MemoryArrayEndAddress;
- EFI_INTER_LINK_DATA PhysicalMemoryArrayLink;
- UINT16 MemoryArrayPartitionWidth;
-} EFI_MEMORY_ARRAY_START_ADDRESS_DATA;
-
-
-#define EFI_MEMORY_DEVICE_START_ADDRESS_RECORD_NUMBER 0x00000005
-
-typedef struct {
- EFI_PHYSICAL_ADDRESS MemoryDeviceStartAddress;
- EFI_PHYSICAL_ADDRESS MemoryDeviceEndAddress;
- EFI_INTER_LINK_DATA PhysicalMemoryDeviceLink;
- EFI_INTER_LINK_DATA PhysicalMemoryArrayLink;
- UINT8 MemoryDevicePartitionRowPosition;
- UINT8 MemoryDeviceInterleavePosition;
- UINT8 MemoryDeviceInterleaveDataDepth;
-} EFI_MEMORY_DEVICE_START_ADDRESS_DATA;
-
-
-//
-// Memory. Channel Device Type - SMBIOS Type 37
-//
-
-#define EFI_MEMORY_CHANNEL_TYPE_RECORD_NUMBER 0x00000006
-
-typedef enum _EFI_MEMORY_CHANNEL_TYPE {
- EfiMemoryChannelTypeOther = 1,
- EfiMemoryChannelTypeUnknown = 2,
- EfiMemoryChannelTypeRambus = 3,
- EfiMemoryChannelTypeSyncLink = 4
-} EFI_MEMORY_CHANNEL_TYPE;
-
-typedef struct {
- EFI_MEMORY_CHANNEL_TYPE MemoryChannelType;
- UINT8 MemoryChannelMaximumLoad;
- UINT8 MemoryChannelDeviceCount;
-} EFI_MEMORY_CHANNEL_TYPE_DATA;
-
-#define EFI_MEMORY_CHANNEL_DEVICE_RECORD_NUMBER 0x00000007
-
-typedef struct {
- UINT8 DeviceId;
- EFI_INTER_LINK_DATA DeviceLink;
- UINT8 MemoryChannelDeviceLoad;
-} EFI_MEMORY_CHANNEL_DEVICE_DATA;
-
-
-
-typedef union _EFI_MEMORY_SUBCLASS_RECORDS {
- EFI_MEMORY_SIZE_DATA SizeData;
- EFI_MEMORY_ARRAY_LOCATION_DATA ArrayLocationData;
- EFI_MEMORY_ARRAY_LINK_DATA ArrayLink;
- EFI_MEMORY_ARRAY_START_ADDRESS_DATA ArrayStartAddress;
- EFI_MEMORY_DEVICE_START_ADDRESS_DATA DeviceStartAddress;
- EFI_MEMORY_CHANNEL_TYPE_DATA ChannelTypeData;
- EFI_MEMORY_CHANNEL_DEVICE_DATA ChannelDeviceData;
-} EFI_MEMORY_SUBCLASS_RECORDS;
-
-typedef struct {
- EFI_SUBCLASS_TYPE1_HEADER Header;
- EFI_MEMORY_SUBCLASS_RECORDS Record;
-} EFI_MEMORY_SUBCLASS_DRIVER_DATA;
-
-#define EFI_MISC_SUBCLASS_VERSION 0x0100
-
-#pragma pack(1)
-//
-//////////////////////////////////////////////////////////////////////////////
-//
-// Last PCI Bus Number
-//
-#define EFI_MISC_LAST_PCI_BUS_RECORD_NUMBER 0x00000001
-
-typedef struct {
- UINT8 LastPciBus;
-} EFI_MISC_LAST_PCI_BUS_DATA;
-
-//
-//////////////////////////////////////////////////////////////////////////////
-//
-// Misc. BIOS Vendor - SMBIOS Type 0
-//
-#define EFI_MISC_BIOS_VENDOR_RECORD_NUMBER 0x00000002
-
-typedef struct {
- UINT64 Reserved1 :2;
- UINT64 Unknown :1;
- UINT64 BiosCharacteristicsNotSupported :1;
- UINT64 IsaIsSupported :1;
- UINT64 McaIsSupported :1;
- UINT64 EisaIsSupported :1;
- UINT64 PciIsSupported :1;
- UINT64 PcmciaIsSupported :1;
- UINT64 PlugAndPlayIsSupported :1;
- UINT64 ApmIsSupported :1;
- UINT64 BiosIsUpgradable :1;
- UINT64 BiosShadowingAllowed :1;
- UINT64 VlVesaIsSupported :1;
- UINT64 EscdSupportIsAvailable :1;
- UINT64 BootFromCdIsSupported :1;
- UINT64 SelectableBootIsSupported :1;
- UINT64 RomBiosIsSocketed :1;
- UINT64 BootFromPcmciaIsSupported :1;
- UINT64 EDDSpecificationIsSupported :1;
- UINT64 JapaneseNecFloppyIsSupported :1;
- UINT64 JapaneseToshibaFloppyIsSupported :1;
- UINT64 Floppy525_360IsSupported :1;
- UINT64 Floppy525_12IsSupported :1;
- UINT64 Floppy35_720IsSupported :1;
- UINT64 Floppy35_288IsSupported :1;
- UINT64 PrintScreenIsSupported :1;
- UINT64 Keyboard8042IsSupported :1;
- UINT64 SerialIsSupported :1;
- UINT64 PrinterIsSupported :1;
- UINT64 CgaMonoIsSupported :1;
- UINT64 NecPc98 :1;
- UINT64 AcpiIsSupported :1;
- UINT64 UsbLegacyIsSupported :1;
- UINT64 AgpIsSupported :1;
- UINT64 I20BootIsSupported :1;
- UINT64 Ls120BootIsSupported :1;
- UINT64 AtapiZipDriveBootIsSupported :1;
- UINT64 Boot1394IsSupported :1;
- UINT64 SmartBatteryIsSupported :1;
- UINT64 BiosBootSpecIsSupported :1;
- UINT64 FunctionKeyNetworkBootIsSupported :1;
- UINT64 Reserved :22;
-} EFI_MISC_BIOS_CHARACTERISTICS;
-
-typedef struct {
- UINT64 BiosReserved :16;
- UINT64 SystemReserved :16;
- UINT64 Reserved :32;
-} EFI_MISC_BIOS_CHARACTERISTICS_EXTENSION;
-
-typedef struct {
- STRING_REF BiosVendor;
- STRING_REF BiosVersion;
- STRING_REF BiosReleaseDate;
- EFI_PHYSICAL_ADDRESS BiosStartingAddress;
- EFI_EXP_BASE2_DATA BiosPhysicalDeviceSize;
- EFI_MISC_BIOS_CHARACTERISTICS BiosCharacteristics1;
- EFI_MISC_BIOS_CHARACTERISTICS_EXTENSION BiosCharacteristics2;
- UINT8 BiosMajorRelease;
- UINT8 BiosMinorRelease;
- UINT8 BiosEmbeddedFirmwareMajorRelease;
- UINT8 BiosEmbeddedFirmwareMinorRelease;
-} EFI_MISC_BIOS_VENDOR_DATA;
-
-//
-//////////////////////////////////////////////////////////////////////////////
-//
-// Misc. System Manufacturer - SMBIOS Type 1
-//
-#define EFI_MISC_SYSTEM_MANUFACTURER_RECORD_NUMBER 0x00000003
-
-typedef enum {
- EfiSystemWakeupTypeReserved = 0,
- EfiSystemWakeupTypeOther = 1,
- EfiSystemWakeupTypeUnknown = 2,
- EfiSystemWakeupTypeApmTimer = 3,
- EfiSystemWakeupTypeModemRing = 4,
- EfiSystemWakeupTypeLanRemote = 5,
- EfiSystemWakeupTypePowerSwitch = 6,
- EfiSystemWakeupTypePciPme = 7,
- EfiSystemWakeupTypeAcPowerRestored = 8,
-} EFI_MISC_SYSTEM_WAKEUP_TYPE;
-
-typedef struct {
- STRING_REF SystemManufacturer;
- STRING_REF SystemProductName;
- STRING_REF SystemVersion;
- STRING_REF SystemSerialNumber;
- EFI_GUID SystemUuid;
- EFI_MISC_SYSTEM_WAKEUP_TYPE SystemWakeupType;
- STRING_REF SystemSKUNumber;
- STRING_REF SystemFamily;
-} EFI_MISC_SYSTEM_MANUFACTURER_DATA;
-
-//
-//////////////////////////////////////////////////////////////////////////////
-//
-// Misc. Base Board Manufacturer - SMBIOS Type 2
-//
-#define EFI_MISC_BASE_BOARD_MANUFACTURER_RECORD_NUMBER 0x00000004
-
-typedef struct {
- UINT32 Motherboard :1;
- UINT32 RequiresDaughterCard :1;
- UINT32 Removable :1;
- UINT32 Replaceable :1;
- UINT32 HotSwappable :1;
- UINT32 Reserved :27;
-} EFI_BASE_BOARD_FEATURE_FLAGS;
-
-typedef enum {
- EfiBaseBoardTypeUnknown = 1,
- EfiBaseBoardTypeOther = 2,
- EfiBaseBoardTypeServerBlade = 3,
- EfiBaseBoardTypeConnectivitySwitch = 4,
- EfiBaseBoardTypeSystemManagementModule = 5,
- EfiBaseBoardTypeProcessorModule = 6,
- EfiBaseBoardTypeIOModule = 7,
- EfiBaseBoardTypeMemoryModule = 8,
- EfiBaseBoardTypeDaughterBoard = 9,
- EfiBaseBoardTypeMotherBoard = 0xA,
- EfiBaseBoardTypeProcessorMemoryModule = 0xB,
- EfiBaseBoardTypeProcessorIOModule = 0xC,
- EfiBaseBoardTypeInterconnectBoard = 0xD,
-} EFI_BASE_BOARD_TYPE;
-
-typedef struct {
- STRING_REF BaseBoardManufacturer;
- STRING_REF BaseBoardProductName;
- STRING_REF BaseBoardVersion;
- STRING_REF BaseBoardSerialNumber;
- STRING_REF BaseBoardAssetTag;
- STRING_REF BaseBoardChassisLocation;
- EFI_BASE_BOARD_FEATURE_FLAGS BaseBoardFeatureFlags;
- EFI_BASE_BOARD_TYPE BaseBoardType;
- EFI_INTER_LINK_DATA BaseBoardChassisLink;
- UINT32 BaseBoardNumberLinks;
- EFI_INTER_LINK_DATA LinkN;
-} EFI_MISC_BASE_BOARD_MANUFACTURER_DATA;
-
-//
-//////////////////////////////////////////////////////////////////////////////
-//
-// Misc. System/Chassis Enclosure - SMBIOS Type 3
-//
-#define EFI_MISC_CHASSIS_MANUFACTURER_RECORD_NUMBER 0x00000005
-
-typedef enum {
- EfiMiscChassisTypeOther = 0x1,
- EfiMiscChassisTypeUnknown = 0x2,
- EfiMiscChassisTypeDeskTop = 0x3,
- EfiMiscChassisTypeLowProfileDesktop = 0x4,
- EfiMiscChassisTypePizzaBox = 0x5,
- EfiMiscChassisTypeMiniTower = 0x6,
- EfiMiscChassisTypeTower = 0x7,
- EfiMiscChassisTypePortable = 0x8,
- EfiMiscChassisTypeLapTop = 0x9,
- EfiMiscChassisTypeNotebook = 0xA,
- EfiMiscChassisTypeHandHeld = 0xB,
- EfiMiscChassisTypeDockingStation = 0xC,
- EfiMiscChassisTypeAllInOne = 0xD,
- EfiMiscChassisTypeSubNotebook = 0xE,
- EfiMiscChassisTypeSpaceSaving = 0xF,
- EfiMiscChassisTypeLunchBox = 0x10,
- EfiMiscChassisTypeMainServerChassis = 0x11,
- EfiMiscChassisTypeExpansionChassis = 0x12,
- EfiMiscChassisTypeSubChassis = 0x13,
- EfiMiscChassisTypeBusExpansionChassis = 0x14,
- EfiMiscChassisTypePeripheralChassis = 0x15,
- EfiMiscChassisTypeRaidChassis = 0x16,
- EfiMiscChassisTypeRackMountChassis = 0x17,
- EfiMiscChassisTypeSealedCasePc = 0x18,
- EfiMiscChassisMultiSystemChassis = 0x19,
-} EFI_MISC_CHASSIS_TYPE;
-
-typedef struct {
- UINT32 ChassisType :16;
- UINT32 ChassisLockPresent:1;
- UINT32 Reserved :15;
-} EFI_MISC_CHASSIS_STATUS;
-
-typedef enum {
- EfiChassisStateOther = 0x01,
- EfiChassisStateUnknown = 0x02,
- EfiChassisStateSafe = 0x03,
- EfiChassisStateWarning = 0x04,
- EfiChassisStateCritical = 0x05,
- EfiChassisStateNonRecoverable = 0x06,
-} EFI_MISC_CHASSIS_STATE;
-
-typedef enum {
- EfiChassisSecurityStatusOther = 0x01,
- EfiChassisSecurityStatusUnknown = 0x02,
- EfiChassisSecurityStatusNone = 0x03,
- EfiChassisSecurityStatusExternalInterfaceLockedOut = 0x04,
- EfiChassisSecurityStatusExternalInterfaceLockedEnabled = 0x05,
-} EFI_MISC_CHASSIS_SECURITY_STATE;
-
-typedef struct {
- UINT32 RecordType :1;
- UINT32 Reserved :24;
-} EFI_MISC_ELEMENT_TYPE;
-
-typedef struct {
- EFI_MISC_ELEMENT_TYPE ChassisElementType;
- EFI_INTER_LINK_DATA ChassisElementStructure;
- EFI_BASE_BOARD_TYPE ChassisBaseBoard;
- UINT32 ChassisElementMinimum;
- UINT32 ChassisElementMaximum;
-} EFI_MISC_ELEMENTS;
-
-typedef struct {
- STRING_REF ChassisManufacturer;
- STRING_REF ChassisVersion;
- STRING_REF ChassisSerialNumber;
- STRING_REF ChassisAssetTag;
- EFI_MISC_CHASSIS_STATUS ChassisType;
- EFI_MISC_CHASSIS_STATE ChassisBootupState;
- EFI_MISC_CHASSIS_STATE ChassisPowerSupplyState;
- EFI_MISC_CHASSIS_STATE ChassisThermalState;
- EFI_MISC_CHASSIS_SECURITY_STATE ChassisSecurityState;
- UINT32 ChassisOemDefined;
- UINT32 ChassisHeight;
- UINT32 ChassisNumberPowerCords;
- UINT32 ChassisElementCount;
- UINT32 ChassisElementRecordLength;//
- EFI_MISC_ELEMENTS ChassisElements;
-} EFI_MISC_CHASSIS_MANUFACTURER_DATA;
-
-//
-//////////////////////////////////////////////////////////////////////////////
-//
-// Misc. Port Connector Information - SMBIOS Type 8
-//
-#define EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_RECORD_NUMBER 0x00000006
-
-typedef enum {
- EfiPortConnectorTypeNone = 0x00,
- EfiPortConnectorTypeCentronics = 0x01,
- EfiPortConnectorTypeMiniCentronics = 0x02,
- EfiPortConnectorTypeProprietary = 0x03,
- EfiPortConnectorTypeDB25Male = 0x04,
- EfiPortConnectorTypeDB25Female = 0x05,
- EfiPortConnectorTypeDB15Male = 0x06,
- EfiPortConnectorTypeDB15Female = 0x07,
- EfiPortConnectorTypeDB9Male = 0x08,
- EfiPortConnectorTypeDB9Female = 0x09,
- EfiPortConnectorTypeRJ11 = 0x0A,
- EfiPortConnectorTypeRJ45 = 0x0B,
- EfiPortConnectorType50PinMiniScsi = 0x0C,
- EfiPortConnectorTypeMiniDin = 0x0D,
- EfiPortConnectorTypeMicriDin = 0x0E,
- EfiPortConnectorTypePS2 = 0x0F,
- EfiPortConnectorTypeInfrared = 0x10,
- EfiPortConnectorTypeHpHil = 0x11,
- EfiPortConnectorTypeUsb = 0x12,
- EfiPortConnectorTypeSsaScsi = 0x13,
- EfiPortConnectorTypeCircularDin8Male = 0x14,
- EfiPortConnectorTypeCircularDin8Female = 0x15,
- EfiPortConnectorTypeOnboardIde = 0x16,
- EfiPortConnectorTypeOnboardFloppy = 0x17,
- EfiPortConnectorType9PinDualInline = 0x18,
- EfiPortConnectorType25PinDualInline = 0x19,
- EfiPortConnectorType50PinDualInline = 0x1A,
- EfiPortConnectorType68PinDualInline = 0x1B,
- EfiPortConnectorTypeOnboardSoundInput = 0x1C,
- EfiPortConnectorTypeMiniCentronicsType14 = 0x1D,
- EfiPortConnectorTypeMiniCentronicsType26 = 0x1E,
- EfiPortConnectorTypeHeadPhoneMiniJack = 0x1F,
- EfiPortConnectorTypeBNC = 0x20,
- EfiPortConnectorType1394 = 0x21,
- EfiPortConnectorTypePC98 = 0xA0,
- EfiPortConnectorTypePC98Hireso = 0xA1,
- EfiPortConnectorTypePCH98 = 0xA2,
- EfiPortConnectorTypePC98Note = 0xA3,
- EfiPortConnectorTypePC98Full = 0xA4,
- EfiPortConnectorTypeOther = 0xFF,
-} EFI_MISC_PORT_CONNECTOR_TYPE;
-
-typedef enum {
- EfiPortTypeNone = 0x00,
- EfiPortTypeParallelXtAtCompatible = 0x01,
- EfiPortTypeParallelPortPs2 = 0x02,
- EfiPortTypeParallelPortEcp = 0x03,
- EfiPortTypeParallelPortEpp = 0x04,
- EfiPortTypeParallelPortEcpEpp = 0x05,
- EfiPortTypeSerialXtAtCompatible = 0x06,
- EfiPortTypeSerial16450Compatible = 0x07,
- EfiPortTypeSerial16550Compatible = 0x08,
- EfiPortTypeSerial16550ACompatible = 0x09,
- EfiPortTypeScsi = 0x0A,
- EfiPortTypeMidi = 0x0B,
- EfiPortTypeJoyStick = 0x0C,
- EfiPortTypeKeyboard = 0x0D,
- EfiPortTypeMouse = 0x0E,
- EfiPortTypeSsaScsi = 0x0F,
- EfiPortTypeUsb = 0x10,
- EfiPortTypeFireWire = 0x11,
- EfiPortTypePcmciaTypeI = 0x12,
- EfiPortTypePcmciaTypeII = 0x13,
- EfiPortTypePcmciaTypeIII = 0x14,
- EfiPortTypeCardBus = 0x15,
- EfiPortTypeAccessBusPort = 0x16,
- EfiPortTypeScsiII = 0x17,
- EfiPortTypeScsiWide = 0x18,
- EfiPortTypePC98 = 0x19,
- EfiPortTypePC98Hireso = 0x1A,
- EfiPortTypePCH98 = 0x1B,
- EfiPortTypeVideoPort = 0x1C,
- EfiPortTypeAudioPort = 0x1D,
- EfiPortTypeModemPort = 0x1E,
- EfiPortTypeNetworkPort = 0x1F,
- EfiPortType8251Compatible = 0xA0,
- EfiPortType8251FifoCompatible = 0xA1,
- EfiPortTypeOther = 0xFF,
-} EFI_MISC_PORT_TYPE;
-
-typedef struct {
- STRING_REF PortInternalConnectorDesignator;
- STRING_REF PortExternalConnectorDesignator;
- EFI_MISC_PORT_CONNECTOR_TYPE PortInternalConnectorType;
- EFI_MISC_PORT_CONNECTOR_TYPE PortExternalConnectorType;
- EFI_MISC_PORT_TYPE PortType;
- EFI_MISC_PORT_DEVICE_PATH PortPath;
-} EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA;
-
-//
-//////////////////////////////////////////////////////////////////////////////
-//
-// Misc. System Slots - SMBIOS Type 9
-//
-#define EFI_MISC_SYSTEM_SLOT_DESIGNATION_RECORD_NUMBER 0x00000007
-
-typedef enum {
- EfiSlotTypeOther = 0x01,
- EfiSlotTypeUnknown = 0x02,
- EfiSlotTypeIsa = 0x03,
- EfiSlotTypeMca = 0x04,
- EfiSlotTypeEisa = 0x05,
- EfiSlotTypePci = 0x06,
- EfiSlotTypePcmcia = 0x07,
- EfiSlotTypeVlVesa = 0x08,
- EfiSlotTypeProprietary = 0x09,
- EfiSlotTypeProcessorCardSlot = 0x0A,
- EfiSlotTypeProprietaryMemoryCardSlot = 0x0B,
- EfiSlotTypeIORiserCardSlot = 0x0C,
- EfiSlotTypeNuBus = 0x0D,
- EfiSlotTypePci66MhzCapable = 0x0E,
- EfiSlotTypeAgp = 0x0F,
- EfiSlotTypeApg2X = 0x10,
- EfiSlotTypeAgp4X = 0x11,
- EfiSlotTypePciX = 0x12,
- EfiSlotTypeAgp4x = 0x13,
- EfiSlotTypePC98C20 = 0xA0,
- EfiSlotTypePC98C24 = 0xA1,
- EfiSlotTypePC98E = 0xA2,
- EfiSlotTypePC98LocalBus = 0xA3,
- EfiSlotTypePC98Card = 0xA4,
- EfiSlotTypePciExpress = 0xA5
-} EFI_MISC_SLOT_TYPE;
-
-typedef enum {
- EfiSlotDataBusWidthOther = 0x01,
- EfiSlotDataBusWidthUnknown = 0x02,
- EfiSlotDataBusWidth8Bit = 0x03,
- EfiSlotDataBusWidth16Bit = 0x04,
- EfiSlotDataBusWidth32Bit = 0x05,
- EfiSlotDataBusWidth64Bit = 0x06,
- EfiSlotDataBusWidth128Bit = 0x07,
-} EFI_MISC_SLOT_DATA_BUS_WIDTH;
-
-typedef enum {
- EfiSlotUsageOther = 1,
- EfiSlotUsageUnknown = 2,
- EfiSlotUsageAvailable = 3,
- EfiSlotUsageInUse = 4,
-} EFI_MISC_SLOT_USAGE;
-
-typedef enum {
- EfiSlotLengthOther = 1,
- EfiSlotLengthUnknown = 2,
- EfiSlotLengthShort = 3,
- EfiSlotLengthLong = 4
-} EFI_MISC_SLOT_LENGTH;
-
-typedef struct {
- UINT32 CharacteristicsUnknown :1;
- UINT32 Provides50Volts :1;
- UINT32 Provides33Volts :1;
- UINT32 SharedSlot :1;
- UINT32 PcCard16Supported :1;
- UINT32 CardBusSupported :1;
- UINT32 ZoomVideoSupported :1;
- UINT32 ModemRingResumeSupported:1;
- UINT32 PmeSignalSupported :1;
- UINT32 HotPlugDevicesSupported :1;
- UINT32 SmbusSignalSupported :1;
- UINT32 Reserved :21;
-} EFI_MISC_SLOT_CHARACTERISTICS;
-
-typedef struct {
- STRING_REF SlotDesignation;
- EFI_MISC_SLOT_TYPE SlotType;
- EFI_MISC_SLOT_DATA_BUS_WIDTH SlotDataBusWidth;
- EFI_MISC_SLOT_USAGE SlotUsage;
- EFI_MISC_SLOT_LENGTH SlotLength;
- UINT16 SlotId;
- EFI_MISC_SLOT_CHARACTERISTICS SlotCharacteristics;
- EFI_DEVICE_PATH_PROTOCOL SlotDevicePath;
-} EFI_MISC_SYSTEM_SLOT_DESIGNATION_DATA;
-
-//
-//////////////////////////////////////////////////////////////////////////////
-//
-// Misc. Onboard Device - SMBIOS Type 10
-//
-#define EFI_MISC_ONBOARD_DEVICE_RECORD_NUMBER 0x00000008
-
-typedef enum {
- EfiOnBoardDeviceTypeOther = 1,
- EfiOnBoardDeviceTypeUnknown = 2,
- EfiOnBoardDeviceTypeVideo = 3,
- EfiOnBoardDeviceTypeScsiController = 4,
- EfiOnBoardDeviceTypeEthernet = 5,
- EfiOnBoardDeviceTypeTokenRing = 6,
- EfiOnBoardDeviceTypeSound = 7,
-} EFI_MISC_ONBOARD_DEVICE_TYPE;
-
-typedef struct {
- UINT32 DeviceType :16;
- UINT32 DeviceEnabled :1;
- UINT32 Reserved :15;
-} EFI_MISC_ONBOARD_DEVICE_STATUS;
-
-typedef struct {
- STRING_REF OnBoardDeviceDescription;
- EFI_MISC_ONBOARD_DEVICE_STATUS OnBoardDeviceStatus;
- EFI_DEVICE_PATH_PROTOCOL OnBoardDevicePath;
-} EFI_MISC_ONBOARD_DEVICE_DATA;
-
-//
-//////////////////////////////////////////////////////////////////////////////
-//
-// Misc. BIOS Language Information - SMBIOS Type 11
-//
-#define EFI_MISC_OEM_STRING_RECORD_NUMBER 0x00000009
-
-typedef struct {
- STRING_REF OemStringRef[1];
-} EFI_MISC_OEM_STRING_DATA;
-
-//
-//////////////////////////////////////////////////////////////////////////////
-//
-// Misc. System Options - SMBIOS Type 12
-//
-typedef struct {
- STRING_REF SystemOptionStringRef[1];
-} EFI_MISC_SYSTEM_OPTION_STRING_DATA;
-
-#define EFI_MISC_SYSTEM_OPTION_STRING_RECORD_NUMBER 0x0000000A
-
-//
-//////////////////////////////////////////////////////////////////////////////
-//
-// Misc. Number of Installable Languages - SMBIOS Type 13
-//
-#define EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES_RECORD_NUMBER 0x0000000B
-
-typedef struct {
- UINT32 AbbreviatedLanguageFormat :1;
- UINT32 Reserved :31;
-} EFI_MISC_LANGUAGE_FLAGS;
-
-typedef struct {
- UINT16 NumberOfInstallableLanguages;
- EFI_MISC_LANGUAGE_FLAGS LanguageFlags;
- UINT16 CurrentLanguageNumber;
-} EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES_DATA;
-
-//
-//////////////////////////////////////////////////////////////////////////////
-//
-// Misc. System Language String
-//
-#define EFI_MISC_SYSTEM_LANGUAGE_STRING_RECORD_NUMBER 0x0000000C
-
-typedef struct {
- UINT16 LanguageId;
- STRING_REF SystemLanguageString;
-} EFI_MISC_SYSTEM_LANGUAGE_STRING_DATA;
-
-//
-//////////////////////////////////////////////////////////////////////////////
-//
-// Group Associations - SMBIOS Type 14
-//
-#define EFI_MISC_GROUP_NAME_RECORD_NUMBER 0x0000000D
-
-typedef struct {
- STRING_REF GroupName;
- UINT16 NumberGroupItems;
- UINT16 GroupId;
-} EFI_MISC_GROUP_NAME_DATA;
-
-//
-//////////////////////////////////////////////////////////////////////////////
-//
-// Group Item Set Element
-//
-#define EFI_MISC_GROUP_ITEM_SET_RECORD_NUMBER 0x0000000E
-
-typedef struct {
- EFI_GUID SubClass;
- EFI_INTER_LINK_DATA GroupLink;
- UINT16 GroupId;
- UINT16 GroupElementId;
-} EFI_MISC_GROUP_ITEM_SET_DATA;
-
-// Misc. System Event Log - SMBIOS Type 15
-//
-#define EFI_MISC_SYSTEM_EVENT_LOG_RECORD_NUMBER 0x0000000D
-typedef struct {
- UINT16 LogAreaLength;
- UINT16 LogHeaderStartOffset;
- UINT16 LogDataStartOffset;
- UINT8 AccessMethod;
- UINT8 LogStatus;
- UINT32 LogChangeToken;
- UINT32 AccessMethodAddress;
- UINT8 LogHeaderFormat;
- UINT8 NumberOfSupportedLogType;
- UINT8 LengthOfLogDescriptor;
-} EFI_MISC_SYSTEM_EVENT_LOG_DATA;
-
-//
-// Access Method.
-// 0x00~0x04: as following definition
-// 0x05~0x7f: Available for future assignment.
-// 0x80~0xff: BIOS Vendor/OEM-specific.
-//
-#define ACCESS_INDEXIO_1INDEX8BIT_DATA8BIT 0x00
-#define ACCESS_INDEXIO_2INDEX8BIT_DATA8BIT 0X01
-#define ACCESS_INDEXIO_1INDEX16BIT_DATA8BIT 0X02
-#define ACCESS_MEMORY_MAPPED 0x03
-#define ACCESS_GPNV 0x04
-
-//
-//////////////////////////////////////////////////////////////////////////////
-//
-// Misc. Pointing Device Type - SMBIOS Type 21
-//
-#define EFI_MISC_POINTING_DEVICE_TYPE_RECORD_NUMBER 0x0000000F
-
-typedef enum {
- EfiPointingDeviceTypeOther = 0x01,
- EfiPointingDeviceTypeUnknown = 0x02,
- EfiPointingDeviceTypeMouse = 0x03,
- EfiPointingDeviceTypeTrackBall = 0x04,
- EfiPointingDeviceTypeTrackPoint = 0x05,
- EfiPointingDeviceTypeGlidePoint = 0x06,
- EfiPointingDeviceTouchPad = 0x07,
- EfiPointingDeviceTouchScreen = 0x08,
- EfiPointingDeviceOpticalSensor = 0x09,
-} EFI_MISC_POINTING_DEVICE_TYPE;
-
-typedef enum {
- EfiPointingDeviceInterfaceOther = 0x01,
- EfiPointingDeviceInterfaceUnknown = 0x02,
- EfiPointingDeviceInterfaceSerial = 0x03,
- EfiPointingDeviceInterfacePs2 = 0x04,
- EfiPointingDeviceInterfaceInfrared = 0x05,
- EfiPointingDeviceInterfaceHpHil = 0x06,
- EfiPointingDeviceInterfaceBusMouse = 0x07,
- EfiPointingDeviceInterfaceADB = 0x08,
- EfiPointingDeviceInterfaceBusMouseDB9 = 0xA0,
- EfiPointingDeviceInterfaceBusMouseMicroDin = 0xA1,
- EfiPointingDeviceInterfaceUsb = 0xA2,
-} EFI_MISC_POINTING_DEVICE_INTERFACE;
-
-typedef struct {
- EFI_MISC_POINTING_DEVICE_TYPE PointingDeviceType;
- EFI_MISC_POINTING_DEVICE_INTERFACE PointingDeviceInterface;
- UINT16 NumberPointingDeviceButtons;
- EFI_DEVICE_PATH_PROTOCOL PointingDevicePath;
-} EFI_MISC_PORTING_DEVICE_TYPE_DATA;
-
-//
-//////////////////////////////////////////////////////////////////////////////
-//
-// Portable Battery - SMBIOS Type 22
-//
-#define EFI_MISC_BATTERY_LOCATION_RECORD_NUMBER 0x00000010
-
-typedef enum {
- EfiBatteryDeviceChemistryTypeOther = 0x01,
- EfiBatteryDeviceChemistryTypeUnknown = 0x02,
- EfiBatteryDeviceChemistryTypeLeadAcid = 0x03,
- EfiBatteryDeviceChemistryTypeNickelCadmium = 0x04,
- EfiBatteryDeviceChemistryTypeNickelMetalHydride = 0x05,
- EfiBatteryDeviceChemistryTypeLithiumIon = 0x06,
- EfiBatteryDeviceChemistryTypeZincAir = 0x07,
- EfiBatteryDeviceChemistryTypeLithiumPolymer = 0x08,
-} EFI_MISC_BATTERY_DEVICE_CHEMISTRY;
-
-typedef struct {
- UINT32 Date :5;
- UINT32 Month :4;
- UINT32 Year :7;
- UINT32 Reserved :16;
-} EFI_MISC_BATTERY_SBDS_MANUFACTURE_DATE;
-
-typedef struct {
- STRING_REF BatteryLocation;
- STRING_REF BatteryManufacturer;
- STRING_REF BatteryManufactureDate;
- STRING_REF BatterySerialNumber;
- STRING_REF BatteryDeviceName;
- STRING_REF BatterySbdsVersionNumber;
- STRING_REF BatterySbdsDeviceChemistry;
- EFI_MISC_BATTERY_DEVICE_CHEMISTRY BatteryDeviceChemistry;
- EFI_EXP_BASE10_DATA BatteryDesignCapacity;
- EFI_EXP_BASE10_DATA BatteryDesignVoltage;
- UINT16 BatteryMaximumError;
- UINT16 BatterySbdsSerialNumber;
- EFI_MISC_BATTERY_SBDS_MANUFACTURE_DATE
- BatterySbdsManufacturingDate;
- UINT32 BatteryOemSpecific;
-} EFI_MISC_BATTERY_LOCATION_DATA;
-
-//
-//////////////////////////////////////////////////////////////////////////////
-//
-// Misc. Reset Capabilities - SMBIOS Type 23
-//
-#define EFI_MISC_RESET_CAPABILITIES_RECORD_NUMBER 0x00000011
-
-typedef struct {
- UINT32 Status :1;
- UINT32 BootOption :2;
- UINT32 BootOptionOnLimit :2;
- UINT32 WatchdogTimerPresent:1;
- UINT32 Reserved :26;
-} EFI_MISC_RESET_CAPABILITIES_TYPE;
-
-typedef struct {
- EFI_MISC_RESET_CAPABILITIES_TYPE ResetCapabilities;
- UINT16 ResetCount;
- UINT16 ResetLimit;
- UINT16 ResetTimerInterval;
- UINT16 ResetTimeout;
-} EFI_MISC_RESET_CAPABILITIES;
-
-typedef struct {
- EFI_MISC_RESET_CAPABILITIES ResetCapabilities;
- UINT16 ResetCount;
- UINT16 ResetLimit;
- UINT16 ResetTimerInterval;
- UINT16 ResetTimeout;
-} EFI_MISC_RESET_CAPABILITIES_DATA;
-
-//
-//////////////////////////////////////////////////////////////////////////////
-//
-// Misc. Hardware Security - SMBIOS Type 24
-//
-#define EFI_MISC_HARDWARE_SECURITY_RECORD_NUMBER 0x00000012
-
-typedef enum {
- EfiHardwareSecurityStatusDisabled = 0,
- EfiHardwareSecurityStatusEnabled = 1,
- EfiHardwareSecurityStatusNotImplemented = 2,
- EfiHardwareSecurityStatusUnknown = 3
-} EFI_MISC_HARDWARE_SECURITY_STATUS;
-
-typedef struct {
- EFI_MISC_HARDWARE_SECURITY_STATUS FrontPanelResetStatus :2;
- EFI_MISC_HARDWARE_SECURITY_STATUS AdministratorPasswordStatus :2;
- EFI_MISC_HARDWARE_SECURITY_STATUS KeyboardPasswordStatus :2;
- EFI_MISC_HARDWARE_SECURITY_STATUS PowerOnPasswordStatus :2;
- EFI_MISC_HARDWARE_SECURITY_STATUS Reserved :24;
-} EFI_MISC_HARDWARE_SECURITY_SETTINGS;
-
-typedef struct {
- EFI_MISC_HARDWARE_SECURITY_SETTINGS HardwareSecuritySettings;
-} EFI_MISC_HARDWARE_SECURITY_SETTINGS_DATA;
-
-//
-//////////////////////////////////////////////////////////////////////////////
-//
-// System Power Controls - SMBIOS Type 25
-//
-#define EFI_MISC_SCHEDULED_POWER_ON_MONTH_RECORD_NUMBER 0x00000013
-
-typedef struct {
- UINT16 ScheduledPoweronMonth;
- UINT16 ScheduledPoweronDayOfMonth;
- UINT16 ScheduledPoweronHour;
- UINT16 ScheduledPoweronMinute;
- UINT16 ScheduledPoweronSecond;
-} EFI_MISC_SCHEDULED_POWER_ON_MONTH_DATA;
-
-//
-//////////////////////////////////////////////////////////////////////////////
-//
-// Voltage Probe - SMBIOS Type 26
-//
-#define EFI_MISC_VOLTAGE_PROBE_DESCRIPTION_RECORD_NUMBER 0x00000014
-
-typedef struct {
- UINT32 VoltageProbeSite :5;
- UINT32 VoltageProbeStatus :3;
- UINT32 Reserved :24;
-} EFI_MISC_VOLTAGE_PROBE_LOCATION;
-
-typedef struct {
- STRING_REF VoltageProbeDescription;
- EFI_MISC_VOLTAGE_PROBE_LOCATION VoltageProbeLocation;
- EFI_EXP_BASE10_DATA VoltageProbeMaximumValue;
- EFI_EXP_BASE10_DATA VoltageProbeMinimumValue;
- EFI_EXP_BASE10_DATA VoltageProbeResolution;
- EFI_EXP_BASE10_DATA VoltageProbeTolerance;
- EFI_EXP_BASE10_DATA VoltageProbeAccuracy;
- EFI_EXP_BASE10_DATA VoltageProbeNominalValue;
- EFI_EXP_BASE10_DATA MDLowerNoncriticalThreshold;
- EFI_EXP_BASE10_DATA MDUpperNoncriticalThreshold;
- EFI_EXP_BASE10_DATA MDLowerCriticalThreshold;
- EFI_EXP_BASE10_DATA MDUpperCriticalThreshold;
- EFI_EXP_BASE10_DATA MDLowerNonrecoverableThreshold;
- EFI_EXP_BASE10_DATA MDUpperNonrecoverableThreshold;
- UINT32 VoltageProbeOemDefined;
-} EFI_MISC_VOLTAGE_PROBE_DESCRIPTION_DATA;
-
-//
-//////////////////////////////////////////////////////////////////////////////
-//
-// Cooling Device - SMBIOS Type 27
-//
-#define EFI_MISC_COOLING_DEVICE_TEMP_LINK_RECORD_NUMBER 0x00000015
-
-typedef struct {
- UINT32 CoolingDevice :5;
- UINT32 CoolingDeviceStatus :3;
- UINT32 Reserved :24;
-} EFI_MISC_COOLING_DEVICE_TYPE;
-
-typedef struct {
- EFI_MISC_COOLING_DEVICE_TYPE CoolingDeviceType;
- EFI_INTER_LINK_DATA CoolingDeviceTemperatureLink;
- UINT16 CoolingDeviceUnitGroup;
- EFI_EXP_BASE10_DATA CoolingDeviceNominalSpeed;
- UINT32 CoolingDeviceOemDefined;
-} EFI_MISC_COOLING_DEVICE_TEMP_LINK_DATA;
-
-//
-//////////////////////////////////////////////////////////////////////////////
-//
-// Temperature Probe - SMBIOS Type 28
-//
-#define EFI_MISC_TEMPERATURE_PROBE_DESCRIPTION_RECORD_NUMBER 0x00000016
-
-typedef struct {
- UINT32 TemperatureProbeSite :5;
- UINT32 TemperatureProbeStatus :3;
- UINT32 Reserved :24;
-} EFI_MISC_TEMPERATURE_PROBE_LOCATION;
-
-typedef struct {
- STRING_REF TemperatureProbeDescription;
- EFI_MISC_TEMPERATURE_PROBE_LOCATION
- TemperatureProbeLocation;
- EFI_EXP_BASE10_DATA TemperatureProbeMaximumValue;
- EFI_EXP_BASE10_DATA TemperatureProbeMinimumValue;
- EFI_EXP_BASE10_DATA TemperatureProbeResolution;
- EFI_EXP_BASE10_DATA TemperatureProbeTolerance;
- EFI_EXP_BASE10_DATA TemperatureProbeAccuracy;
- EFI_EXP_BASE10_DATA TemperatureProbeNominalValue;
- EFI_EXP_BASE10_DATA MDLowerNoncriticalThreshold;
- EFI_EXP_BASE10_DATA MDUpperNoncriticalThreshold;
- EFI_EXP_BASE10_DATA MDLowerCriticalThreshold;
- EFI_EXP_BASE10_DATA MDUpperCriticalThreshold;
- EFI_EXP_BASE10_DATA MDLowerNonrecoverableThreshold;
- EFI_EXP_BASE10_DATA MDUpperNonrecoverableThreshold;
- UINT32 TemperatureProbeOemDefined;
-} EFI_MISC_TEMPERATURE_PROBE_DESCRIPTION_DATA;
-
-//
-//////////////////////////////////////////////////////////////////////////////
-//
-// Electrical Current Probe - SMBIOS Type 29
-//
-
-#define EFI_MISC_ELECTRICAL_CURRENT_PROBE_DESCRIPTION_RECORD_NUMBER 0x00000017
-
-typedef struct {
- UINT32 ElectricalCurrentProbeSite :5;
- UINT32 ElectricalCurrentProbeStatus :3;
- UINT32 Reserved :24;
-} EFI_MISC_ELECTRICAL_CURRENT_PROBE_LOCATION;
-
-typedef struct {
- STRING_REF ElectricalCurrentProbeDescription;
- EFI_MISC_ELECTRICAL_CURRENT_PROBE_LOCATION
- ElectricalCurrentProbeLocation;
- EFI_EXP_BASE10_DATA ElectricalCurrentProbeMaximumValue;
- EFI_EXP_BASE10_DATA ElectricalCurrentProbeMinimumValue;
- EFI_EXP_BASE10_DATA ElectricalCurrentProbeResolution;
- EFI_EXP_BASE10_DATA ElectricalCurrentProbeTolerance;
- EFI_EXP_BASE10_DATA ElectricalCurrentProbeAccuracy;
- EFI_EXP_BASE10_DATA ElectricalCurrentProbeNominalValue;
- EFI_EXP_BASE10_DATA MDLowerNoncriticalThreshold;
- EFI_EXP_BASE10_DATA MDUpperNoncriticalThreshold;
- EFI_EXP_BASE10_DATA MDLowerCriticalThreshold;
- EFI_EXP_BASE10_DATA MDUpperCriticalThreshold;
- EFI_EXP_BASE10_DATA MDLowerNonrecoverableThreshold;
- EFI_EXP_BASE10_DATA MDUpperNonrecoverableThreshold;
- UINT32 ElectricalCurrentProbeOemDefined;
-} EFI_MISC_ELECTRICAL_CURRENT_PROBE_DESCRIPTION_DATA;
-
-//
-//////////////////////////////////////////////////////////////////////////////
-//
-// Out-of-Band Remote Access - SMBIOS Type 30
-//
-
-#define EFI_MISC_REMOTE_ACCESS_MANUFACTURER_DESCRIPTION_RECORD_NUMBER 0x00000018
-
-typedef struct {
- UINT32 InboundConnectionEnabled :1;
- UINT32 OutboundConnectionEnabled :1;
- UINT32 Reserved :30;
-} EFI_MISC_REMOTE_ACCESS_CONNECTIONS;
-
-typedef struct {
- STRING_REF RemoteAccessManufacturerNameDescription;
- EFI_MISC_REMOTE_ACCESS_CONNECTIONS RemoteAccessConnections;
-} EFI_MISC_REMOTE_ACCESS_MANUFACTURER_DESCRIPTION_DATA;
-
-//
-//////////////////////////////////////////////////////////////////////////////
-//
-// Misc. BIS Entry Point - SMBIOS Type 31
-//
-#define EFI_MISC_BIS_ENTRY_POINT_RECORD_NUMBER 0x00000019
-
-typedef struct {
- EFI_PHYSICAL_ADDRESS BisEntryPoint;
-} EFI_MISC_BIS_ENTRY_POINT_DATA;
-
-//
-//////////////////////////////////////////////////////////////////////////////
-//
-// Misc. Boot Information - SMBIOS Type 32
-//
-#define EFI_MISC_BOOT_INFORMATION_STATUS_RECORD_NUMBER 0x0000001A
-
-typedef enum {
- EfiBootInformationStatusNoError = 0x00,
- EfiBootInformationStatusNoBootableMedia = 0x01,
- EfiBootInformationStatusNormalOSFailedLoading = 0x02,
- EfiBootInformationStatusFirmwareDetectedFailure = 0x03,
- EfiBootInformationStatusOSDetectedFailure = 0x04,
- EfiBootInformationStatusUserRequestedBoot = 0x05,
- EfiBootInformationStatusSystemSecurityViolation = 0x06,
- EfiBootInformationStatusPreviousRequestedImage = 0x07,
- EfiBootInformationStatusWatchdogTimerExpired = 0x08,
- EfiBootInformationStatusStartReserved = 0x09,
- EfiBootInformationStatusStartOemSpecific = 0x80,
- EfiBootInformationStatusStartProductSpecific = 0xC0,
-} EFI_MISC_BOOT_INFORMATION_STATUS_DATA_TYPE;
-
-typedef struct {
- EFI_MISC_BOOT_INFORMATION_STATUS_DATA_TYPE BootInformationStatus;
- UINT8 BootInformationData[9];
-} EFI_MISC_BOOT_INFORMATION_STATUS_DATA;
-
-//
-//////////////////////////////////////////////////////////////////////////////
-//
-// Management Device - SMBIOS Type 34
-//
-#define EFI_MISC_MANAGEMENT_DEVICE_DESCRIPTION_RECORD_NUMBER 0x0000001B
-
-typedef enum {
- EfiManagementDeviceTypeOther = 0x01,
- EfiManagementDeviceTypeUnknown = 0x02,
- EfiManagementDeviceTypeLm75 = 0x03,
- EfiManagementDeviceTypeLm78 = 0x04,
- EfiManagementDeviceTypeLm79 = 0x05,
- EfiManagementDeviceTypeLm80 = 0x06,
- EfiManagementDeviceTypeLm81 = 0x07,
- EfiManagementDeviceTypeAdm9240 = 0x08,
- EfiManagementDeviceTypeDs1780 = 0x09,
- EfiManagementDeviceTypeMaxim1617 = 0x0A,
- EfiManagementDeviceTypeGl518Sm = 0x0B,
- EfiManagementDeviceTypeW83781D = 0x0C,
- EfiManagementDeviceTypeHt82H791 = 0x0D,
-} EFI_MISC_MANAGEMENT_DEVICE_TYPE;
-
-typedef enum {
- EfiManagementDeviceAddressTypeOther = 1,
- EfiManagementDeviceAddressTypeUnknown = 2,
- EfiManagementDeviceAddressTypeIOPort = 3,
- EfiManagementDeviceAddressTypeMemory = 4,
- EfiManagementDeviceAddressTypeSmbus = 5
-} EFI_MISC_MANAGEMENT_DEVICE_ADDRESS_TYPE;
-
-typedef struct {
- STRING_REF ManagementDeviceDescription;
- EFI_MISC_MANAGEMENT_DEVICE_TYPE ManagementDeviceType;
- UINTN ManagementDeviceAddress;
- EFI_MISC_MANAGEMENT_DEVICE_ADDRESS_TYPE
- ManagementDeviceAddressType;
-} EFI_MISC_MANAGEMENT_DEVICE_DESCRIPTION_DATA;
-
-//
-//////////////////////////////////////////////////////////////////////////////
-//
-// Management Device Component - SMBIOS Type 35
-//
-
-#define EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION_RECORD_NUMBER 0x0000001C
-
-typedef struct {
- STRING_REF ManagementDeviceComponentDescription;
- EFI_INTER_LINK_DATA ManagementDeviceLink;
- EFI_INTER_LINK_DATA ManagementDeviceComponentLink;
-} EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION_DATA;
-
-//
-//////////////////////////////////////////////////////////////////////////////
-//
-// IPMI Data Record - SMBIOS Type 38
-//
-typedef enum {
- EfiIpmiOther = 0,
- EfiIpmiKcs = 1,
- EfiIpmiSmic = 2,
- EfiIpmiBt = 3,
-} EFI_MISC_IPMI_INTERFACE_TYPE;
-
-typedef struct {
- UINT16 IpmiSpecLeastSignificantDigit:4;
- UINT16 IpmiSpecMostSignificantDigit: 4;
- UINT16 Reserved: 8;
-} EFI_MISC_IPMI_SPECIFICATION_REVISION;
-
-typedef struct {
- EFI_MISC_IPMI_INTERFACE_TYPE IpmiInterfaceType;
- EFI_MISC_IPMI_SPECIFICATION_REVISION IpmiSpecificationRevision;
- UINT16 IpmiI2CSlaveAddress;
- UINT16 IpmiNvDeviceAddress;
- UINT64 IpmiBaseAddress;
- EFI_DEVICE_PATH_PROTOCOL IpmiDevicePath;
-} EFI_MISC_IPMI_INTERFACE_TYPE_DATA;
-
-#define EFI_MISC_IPMI_INTERFACE_TYPE_RECORD_NUMBER 0x0000001D
-
-//
-//////////////////////////////////////////////////////////////////////////////
-//
-//System Power supply Record - SMBIOS Type 39
-//
-typedef struct {
- UINT16 PowerSupplyHotReplaceable :1;
- UINT16 PowerSupplyPresent :1;
- UINT16 PowerSupplyUnplugged :1;
- UINT16 InputVoltageRangeSwitch :4;
- UINT16 PowerSupplyStatus :3;
- UINT16 PowerSupplyType :4;
- UINT16 Reserved :2;
-} POWER_SUPPLY_CHARACTERISTICS;
-
-typedef struct {
- UINT16 PowerUnitGroup;
- STRING_REF PowerSupplyLocation;
- STRING_REF PowerSupplyDeviceName;
- STRING_REF PowerSupplyManufacturer;
- STRING_REF PowerSupplySerialNumber;
- STRING_REF PowerSupplyAssetTagNumber;
- STRING_REF PowerSupplyModelPartNumber;
- STRING_REF PowerSupplyRevisionLevel;
- UINT16 PowerSupplyMaxPowerCapacity;
- POWER_SUPPLY_CHARACTERISTICS PowerSupplyCharacteristics;
- EFI_INTER_LINK_DATA PowerSupplyInputVoltageProbeLink;
- EFI_INTER_LINK_DATA PowerSupplyCoolingDeviceLink;
- EFI_INTER_LINK_DATA PowerSupplyInputCurrentProbeLink;
-} EFI_MISC_SYSTEM_POWER_SUPPLY_DATA;
-
-#define EFI_MISC_SYSTEM_POWER_SUPPLY_RECORD_NUMBER 0x0000001E
-
-//
-//////////////////////////////////////////////////////////////////////////////
-//
-// OEM Data Record - SMBIOS Type 0x80-0xFF
-//
-typedef struct {
- UINT8 Type;
- UINT8 Length;
- UINT16 Handle;
-} SMBIOS_STRUCTURE_HDR;
-
-typedef struct {
- SMBIOS_STRUCTURE_HDR Header;
- UINT8 RawData[1];
-} EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION_DATA;
-
-#define EFI_MISC_SMBIOS_STRUCT_ENCAP_RECORD_NUMBER 0x0000001F
-
-//
-// Declare the following strutures alias to use them more conviniently.
-//
-typedef EFI_MISC_LAST_PCI_BUS_DATA EFI_MISC_LAST_PCI_BUS;
-typedef EFI_MISC_BIOS_VENDOR_DATA EFI_MISC_BIOS_VENDOR;
-typedef EFI_MISC_SYSTEM_MANUFACTURER_DATA EFI_MISC_SYSTEM_MANUFACTURER;
-typedef EFI_MISC_BASE_BOARD_MANUFACTURER_DATA EFI_MISC_BASE_BOARD_MANUFACTURER;
-typedef EFI_MISC_CHASSIS_MANUFACTURER_DATA EFI_MISC_CHASSIS_MANUFACTURER;
-typedef EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR;
-typedef EFI_MISC_SYSTEM_SLOT_DESIGNATION_DATA EFI_MISC_SYSTEM_SLOT_DESIGNATION;
-typedef EFI_MISC_ONBOARD_DEVICE_DATA EFI_MISC_ONBOARD_DEVICE;
-typedef EFI_MISC_PORTING_DEVICE_TYPE_DATA EFI_MISC_ONBOARD_DEVICE_TYPE_DATA;
-typedef EFI_MISC_OEM_STRING_DATA EFI_MISC_OEM_STRING;
-typedef EFI_MISC_SYSTEM_OPTION_STRING_DATA EFI_MISC_SYSTEM_OPTION_STRING;
-typedef EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES_DATA EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES;
-typedef EFI_MISC_SYSTEM_LANGUAGE_STRING_DATA EFI_MISC_SYSTEM_LANGUAGE_STRING;
-typedef EFI_MISC_SYSTEM_EVENT_LOG_DATA EFI_MISC_SYSTEM_EVENT_LOG;
-typedef EFI_MISC_BIS_ENTRY_POINT_DATA EFI_MISC_BIS_ENTRY_POINT;
-typedef EFI_MISC_BOOT_INFORMATION_STATUS_DATA EFI_MISC_BOOT_INFORMATION_STATUS;
-typedef EFI_MISC_SYSTEM_POWER_SUPPLY_DATA EFI_MISC_SYSTEM_POWER_SUPPLY;
-typedef EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION_DATA EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION;
-
-typedef union {
- EFI_MISC_LAST_PCI_BUS_DATA LastPciBus;
- EFI_MISC_BIOS_VENDOR_DATA MiscBiosVendor;
- EFI_MISC_SYSTEM_MANUFACTURER_DATA MiscSystemManufacturer;
- EFI_MISC_BASE_BOARD_MANUFACTURER_DATA MiscBaseBoardManufacturer;
- EFI_MISC_CHASSIS_MANUFACTURER_DATA MiscChassisManufacturer;
- EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA MiscPortInternalConnectorDesignator;
- EFI_MISC_SYSTEM_SLOT_DESIGNATION_DATA MiscSystemSlotDesignation;
- EFI_MISC_ONBOARD_DEVICE_DATA MiscOnboardDevice;
- EFI_MISC_OEM_STRING_DATA MiscOemString;
- EFI_MISC_SYSTEM_OPTION_STRING_DATA MiscOptionString;
- EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES_DATA NumberOfInstallableLanguages;
- EFI_MISC_SYSTEM_LANGUAGE_STRING_DATA MiscSystemLanguageString;
- EFI_MISC_SYSTEM_EVENT_LOG_DATA MiscSystemEventLog;
- EFI_MISC_GROUP_NAME_DATA MiscGroupNameData;
- EFI_MISC_GROUP_ITEM_SET_DATA MiscGroupItemSetData;
- EFI_MISC_PORTING_DEVICE_TYPE_DATA MiscPortingDeviceTypeData;
- EFI_MISC_RESET_CAPABILITIES_DATA MiscResetCapablilitiesData;
- EFI_MISC_HARDWARE_SECURITY_SETTINGS_DATA MiscHardwareSecuritySettingsData;
- EFI_MISC_SCHEDULED_POWER_ON_MONTH_DATA MiscScheduledPowerOnMonthData;
- EFI_MISC_VOLTAGE_PROBE_DESCRIPTION_DATA MiscVoltagePorbeDescriptionData;
- EFI_MISC_COOLING_DEVICE_TEMP_LINK_DATA MiscCoolingDeviceTempLinkData;
- EFI_MISC_TEMPERATURE_PROBE_DESCRIPTION_DATA MiscTemperatureProbeDescriptionData;
- EFI_MISC_ELECTRICAL_CURRENT_PROBE_DESCRIPTION_DATA MiscElectricalCurrentProbeDescriptionData;
- EFI_MISC_REMOTE_ACCESS_MANUFACTURER_DESCRIPTION_DATA
- MiscRemoteAccessManufacturerDescriptionData;
- EFI_MISC_BIS_ENTRY_POINT_DATA MiscBisEntryPoint;
- EFI_MISC_BOOT_INFORMATION_STATUS_DATA MiscBootInformationStatus;
- EFI_MISC_MANAGEMENT_DEVICE_DESCRIPTION_DATA MiscMangementDeviceDescriptionData;
- EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION_DATA
- MiscmangementDeviceComponentDescriptionData;
- EFI_MISC_IPMI_INTERFACE_TYPE_DATA MiscIpmiInterfaceTypeData;
- EFI_MISC_SYSTEM_POWER_SUPPLY_DATA MiscPowerSupplyInfo;
- EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION_DATA MiscSmbiosStructEncapsulation;
-} EFI_MISC_SUBCLASS_RECORDS;
-
-//
-//
-//
-typedef struct {
- EFI_SUBCLASS_TYPE1_HEADER Header;
- EFI_MISC_SUBCLASS_RECORDS Record;
-} EFI_MISC_SUBCLASS_DRIVER_DATA;
-
-#pragma pack()
-
-//
-// Sub Class Header type1
-//
-
-#define EFI_SUBCLASS_INSTANCE_RESERVED 0
-#define EFI_SUBCLASS_INSTANCE_NON_APPLICABLE 0xFFFF //16 bit
-
-#endif
-
diff --git a/MdePkg/Include/Common/Dependency.h b/MdePkg/Include/Common/Dependency.h
deleted file mode 100644
index b38dcd5477..0000000000
--- a/MdePkg/Include/Common/Dependency.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/** @file
- This module contains data specific to dependency expressions.
-
- Copyright (c) 2006, Intel Corporation
- All rights reserved. This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php
-
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
- Module Name: Dependency.h
-
- @par Revision Reference:
- These definitions are from DxeCis 0.91 spec.
-
-**/
-
-#ifndef __DEPENDENCY_H__
-#define __DEPENDENCY_H__
-
-/// EFI_DEP_BEFORE - If present, this must be the first and only opcode
-#define EFI_DEP_BEFORE 0x00
-
-/// EFI_DEP_AFTER - If present, this must be the first and only opcode
-#define EFI_DEP_AFTER 0x01
-
-#define EFI_DEP_PUSH 0x02
-#define EFI_DEP_AND 0x03
-#define EFI_DEP_OR 0x04
-#define EFI_DEP_NOT 0x05
-#define EFI_DEP_TRUE 0x06
-#define EFI_DEP_FALSE 0x07
-#define EFI_DEP_END 0x08
-
-/// EFI_DEP_SOR - If present, this must be the first opcode
-#define EFI_DEP_SOR 0x09
-
-#endif
diff --git a/MdePkg/Include/Common/EfiImage.h b/MdePkg/Include/Common/EfiImage.h
deleted file mode 100644
index bf53dcb586..0000000000
--- a/MdePkg/Include/Common/EfiImage.h
+++ /dev/null
@@ -1,744 +0,0 @@
-/** @file
- EFI image format for PE32 and PE32+. Please note some data structures are
- different for PE32 and PE32+. EFI_IMAGE_NT_HEADERS32 is for PE32 and
- EFI_IMAGE_NT_HEADERS64 is for PE32+.
-
- This file is coded to the Visual Studio, Microsoft Portable Executable and
- Common Object File Format Specification, Revision 8.0 - May 16, 2006.
-
- Copyright (c) 2006, Intel Corporation
- All rights reserved. This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php
-
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
- Module Name: EfiImage.h
-
-**/
-
-#ifndef __EFI_IMAGE_H__
-#define __EFI_IMAGE_H__
-
-//
-// PE32+ Subsystem type for EFI images
-//
-#define EFI_IMAGE_SUBSYSTEM_EFI_APPLICATION 10
-#define EFI_IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER 11
-#define EFI_IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER 12
-#define EFI_IMAGE_SUBSYSTEM_EFI_EFI_ROM 13
-
-#define EFI_IMAGE_SUBSYSTEM_SAL_RUNTIME_DRIVER 13
-
-
-//
-// PE32+ Machine type for EFI images
-//
-#define IMAGE_FILE_MACHINE_I386 0x014c
-#define IMAGE_FILE_MACHINE_IA64 0x0200
-#define IMAGE_FILE_MACHINE_EBC 0x0EBC
-#define IMAGE_FILE_MACHINE_X64 0x8664
-//
-// Support old names for backward compatible
-//
-#define EFI_IMAGE_MACHINE_IA32 IMAGE_FILE_MACHINE_I386
-#define EFI_IMAGE_MACHINE_IA64 IMAGE_FILE_MACHINE_IA64
-#define EFI_IMAGE_MACHINE_IPF IMAGE_FILE_MACHINE_IA64
-#define EFI_IMAGE_MACHINE_EBC IMAGE_FILE_MACHINE_EBC
-#define EFI_IMAGE_MACHINE_X64 IMAGE_FILE_MACHINE_X64
-
-#define EFI_IMAGE_DOS_SIGNATURE 0x5A4D // MZ
-#define EFI_IMAGE_OS2_SIGNATURE 0x454E // NE
-#define EFI_IMAGE_OS2_SIGNATURE_LE 0x454C // LE
-#define EFI_IMAGE_NT_SIGNATURE 0x00004550 // PE00
-
-///
-/// PE images can start with an optional DOS header, so if an image is run
-/// under DOS it can print an error message.
-///
-typedef struct {
- UINT16 e_magic; // Magic number
- UINT16 e_cblp; // Bytes on last page of file
- UINT16 e_cp; // Pages in file
- UINT16 e_crlc; // Relocations
- UINT16 e_cparhdr; // Size of header in paragraphs
- UINT16 e_minalloc; // Minimum extra paragraphs needed
- UINT16 e_maxalloc; // Maximum extra paragraphs needed
- UINT16 e_ss; // Initial (relative) SS value
- UINT16 e_sp; // Initial SP value
- UINT16 e_csum; // Checksum
- UINT16 e_ip; // Initial IP value
- UINT16 e_cs; // Initial (relative) CS value
- UINT16 e_lfarlc; // File address of relocation table
- UINT16 e_ovno; // Overlay number
- UINT16 e_res[4]; // Reserved words
- UINT16 e_oemid; // OEM identifier (for e_oeminfo)
- UINT16 e_oeminfo; // OEM information; e_oemid specific
- UINT16 e_res2[10]; // Reserved words
- UINT32 e_lfanew; // File address of new exe header
-} EFI_IMAGE_DOS_HEADER;
-
-///
-/// File header format.
-///
-typedef struct {
- UINT16 Machine;
- UINT16 NumberOfSections;
- UINT32 TimeDateStamp;
- UINT32 PointerToSymbolTable;
- UINT32 NumberOfSymbols;
- UINT16 SizeOfOptionalHeader;
- UINT16 Characteristics;
-} EFI_IMAGE_FILE_HEADER;
-
-#define EFI_IMAGE_SIZEOF_FILE_HEADER 20
-
-#define EFI_IMAGE_FILE_RELOCS_STRIPPED 0x0001 // Relocation info stripped from file.
-#define EFI_IMAGE_FILE_EXECUTABLE_IMAGE 0x0002 // File is executable (i.e. no unresolved externel references).
-#define EFI_IMAGE_FILE_LINE_NUMS_STRIPPED 0x0004 // Line nunbers stripped from file.
-#define EFI_IMAGE_FILE_LOCAL_SYMS_STRIPPED 0x0008 // Local symbols stripped from file.
-#define EFI_IMAGE_FILE_BYTES_REVERSED_LO 0x0080 // Bytes of machine word are reversed.
-#define EFI_IMAGE_FILE_32BIT_MACHINE 0x0100 // 32 bit word machine.
-#define EFI_IMAGE_FILE_DEBUG_STRIPPED 0x0200 // Debugging info stripped from file in .DBG file
-#define EFI_IMAGE_FILE_SYSTEM 0x1000 // System File.
-#define EFI_IMAGE_FILE_DLL 0x2000 // File is a DLL.
-#define EFI_IMAGE_FILE_BYTES_REVERSED_HI 0x8000 // Bytes of machine word are reversed.
-#define EFI_IMAGE_FILE_MACHINE_UNKNOWN 0
-#define EFI_IMAGE_FILE_MACHINE_I386 0x14c // Intel 386.
-#define EFI_IMAGE_FILE_MACHINE_R3000 0x162 // MIPS* little-endian, 0540 big-endian
-#define EFI_IMAGE_FILE_MACHINE_R4000 0x166 // MIPS* little-endian
-#define EFI_IMAGE_FILE_MACHINE_ALPHA 0x184 // Alpha_AXP*
-#define EFI_IMAGE_FILE_MACHINE_POWERPC 0x1F0 // IBM* PowerPC Little-Endian
-#define EFI_IMAGE_FILE_MACHINE_TAHOE 0x7cc // Intel EM machine
-//
-// * Other names and brands may be claimed as the property of others.
-//
-
-///
-/// Directory format.
-///
-typedef struct {
- UINT32 VirtualAddress;
- UINT32 Size;
-} EFI_IMAGE_DATA_DIRECTORY;
-
-#define EFI_IMAGE_NUMBER_OF_DIRECTORY_ENTRIES 16
-
-typedef struct {
- UINT16 Magic;
- UINT8 MajorLinkerVersion;
- UINT8 MinorLinkerVersion;
- UINT32 SizeOfCode;
- UINT32 SizeOfInitializedData;
- UINT32 SizeOfUninitializedData;
- UINT32 AddressOfEntryPoint;
- UINT32 BaseOfCode;
- UINT32 BaseOfData;
- UINT32 BaseOfBss;
- UINT32 GprMask;
- UINT32 CprMask[4];
- UINT32 GpValue;
-} EFI_IMAGE_ROM_OPTIONAL_HEADER;
-
-#define EFI_IMAGE_ROM_OPTIONAL_HDR_MAGIC 0x107
-#define EFI_IMAGE_SIZEOF_ROM_OPTIONAL_HEADER sizeof (EFI_IMAGE_ROM_OPTIONAL_HEADER)
-
-typedef struct {
- EFI_IMAGE_FILE_HEADER FileHeader;
- EFI_IMAGE_ROM_OPTIONAL_HEADER OptionalHeader;
-} EFI_IMAGE_ROM_HEADERS;
-
-///
-/// @attention
-/// EFI_IMAGE_NT_OPTIONAL_HDR32_MAGIC means PE32 and
-/// EFI_IMAGE_OPTIONAL_HEADER32 must be used. The data structures only vary
-/// after NT additional fields.
-///
-#define EFI_IMAGE_NT_OPTIONAL_HDR32_MAGIC 0x10b
-
-typedef struct {
- //
- // Standard fields.
- //
- UINT16 Magic;
- UINT8 MajorLinkerVersion;
- UINT8 MinorLinkerVersion;
- UINT32 SizeOfCode;
- UINT32 SizeOfInitializedData;
- UINT32 SizeOfUninitializedData;
- UINT32 AddressOfEntryPoint;
- UINT32 BaseOfCode;
- UINT32 BaseOfData;
- //
- // NT additional fields.
- //
- UINT32 ImageBase;
- UINT32 SectionAlignment;
- UINT32 FileAlignment;
- UINT16 MajorOperatingSystemVersion;
- UINT16 MinorOperatingSystemVersion;
- UINT16 MajorImageVersion;
- UINT16 MinorImageVersion;
- UINT16 MajorSubsystemVersion;
- UINT16 MinorSubsystemVersion;
- UINT32 Win32VersionValue;
- UINT32 SizeOfImage;
- UINT32 SizeOfHeaders;
- UINT32 CheckSum;
- UINT16 Subsystem;
- UINT16 DllCharacteristics;
- UINT32 SizeOfStackReserve;
- UINT32 SizeOfStackCommit;
- UINT32 SizeOfHeapReserve;
- UINT32 SizeOfHeapCommit;
- UINT32 LoaderFlags;
- UINT32 NumberOfRvaAndSizes;
- EFI_IMAGE_DATA_DIRECTORY DataDirectory[EFI_IMAGE_NUMBER_OF_DIRECTORY_ENTRIES];
-} EFI_IMAGE_OPTIONAL_HEADER32;
-
-///
-/// @attention
-/// EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC means PE32+ and
-/// EFI_IMAGE_OPTIONAL_HEADER64 must be used. The data structures only vary
-/// after NT additional fields.
-///
-#define EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC 0x20b
-
-typedef struct {
- //
- // Standard fields.
- //
- UINT16 Magic;
- UINT8 MajorLinkerVersion;
- UINT8 MinorLinkerVersion;
- UINT32 SizeOfCode;
- UINT32 SizeOfInitializedData;
- UINT32 SizeOfUninitializedData;
- UINT32 AddressOfEntryPoint;
- UINT32 BaseOfCode;
- //
- // NT additional fields.
- //
- UINT64 ImageBase;
- UINT32 SectionAlignment;
- UINT32 FileAlignment;
- UINT16 MajorOperatingSystemVersion;
- UINT16 MinorOperatingSystemVersion;
- UINT16 MajorImageVersion;
- UINT16 MinorImageVersion;
- UINT16 MajorSubsystemVersion;
- UINT16 MinorSubsystemVersion;
- UINT32 Win32VersionValue;
- UINT32 SizeOfImage;
- UINT32 SizeOfHeaders;
- UINT32 CheckSum;
- UINT16 Subsystem;
- UINT16 DllCharacteristics;
- UINT64 SizeOfStackReserve;
- UINT64 SizeOfStackCommit;
- UINT64 SizeOfHeapReserve;
- UINT64 SizeOfHeapCommit;
- UINT32 LoaderFlags;
- UINT32 NumberOfRvaAndSizes;
- EFI_IMAGE_DATA_DIRECTORY DataDirectory[EFI_IMAGE_NUMBER_OF_DIRECTORY_ENTRIES];
-} EFI_IMAGE_OPTIONAL_HEADER64;
-
-
-///
-/// @attention
-/// EFI_IMAGE_NT_HEADERS32 and EFI_IMAGE_HEADERS64 are for use ONLY
-/// by tools. All proper EFI code MUST use EFI_IMAGE_NT_HEADERS ONLY!!!
-///
-typedef struct {
- UINT32 Signature;
- EFI_IMAGE_FILE_HEADER FileHeader;
- EFI_IMAGE_OPTIONAL_HEADER32 OptionalHeader;
-} EFI_IMAGE_NT_HEADERS32;
-
-#define EFI_IMAGE_SIZEOF_NT_OPTIONAL32_HEADER sizeof (EFI_IMAGE_NT_HEADERS32)
-
-typedef struct {
- UINT32 Signature;
- EFI_IMAGE_FILE_HEADER FileHeader;
- EFI_IMAGE_OPTIONAL_HEADER64 OptionalHeader;
-} EFI_IMAGE_NT_HEADERS64;
-
-#define EFI_IMAGE_SIZEOF_NT_OPTIONAL64_HEADER sizeof (EFI_IMAGE_NT_HEADERS64)
-
-
-//
-// Processor specific definition of EFI_IMAGE_OPTIONAL_HEADER so the
-// type name EFI_IMAGE_OPTIONAL_HEADER is appropriate to the build. Same for
-// EFI_IMAGE_NT_HEADERS. These definitions MUST be used by ALL EFI code.
-//
-#if defined (MDE_CPU_IA32)
-
-#define EFI_IMAGE_MACHINE_TYPE_SUPPORTED(Machine) \
- (((Machine) == EFI_IMAGE_MACHINE_IA32) || ((Machine) == EFI_IMAGE_MACHINE_EBC))
-
-#define EFI_IMAGE_MACHINE_CROSS_TYPE_SUPPORTED(Machine) ((Machine) == EFI_IMAGE_MACHINE_X64)
-
-//
-// @bug - Remove me when other package updated.
-//
-typedef EFI_IMAGE_NT_HEADERS32 EFI_IMAGE_NT_HEADERS;
-
-#elif defined (MDE_CPU_IPF)
-
-#define EFI_IMAGE_MACHINE_TYPE_SUPPORTED(Machine) \
- (((Machine) == EFI_IMAGE_MACHINE_IPF) || ((Machine) == EFI_IMAGE_MACHINE_EBC))
-
-#define EFI_IMAGE_MACHINE_CROSS_TYPE_SUPPORTED(Machine) (FALSE)
-
-//
-// @bug - Remove me when other package updated.
-//
-typedef EFI_IMAGE_NT_HEADERS64 EFI_IMAGE_NT_HEADERS;
-
-#elif defined (MDE_CPU_X64)
-
-#define EFI_IMAGE_MACHINE_TYPE_SUPPORTED(Machine) \
- (((Machine) == EFI_IMAGE_MACHINE_X64) || ((Machine) == EFI_IMAGE_MACHINE_EBC))
-
-#define EFI_IMAGE_MACHINE_CROSS_TYPE_SUPPORTED(Machine) ((Machine) == EFI_IMAGE_MACHINE_IA32)
-
-//
-// @bug - Remove me when other package updated.
-//
-typedef EFI_IMAGE_NT_HEADERS32 EFI_IMAGE_NT_HEADERS;
-
-#elif defined (MDE_CPU_EBC)
-
-//
-// This is just to make sure you can cross compile with the EBC compiiler.
-// It does not make sense to have a PE loader coded in EBC. You need to
-// understand the basic
-//
-#define EFI_IMAGE_MACHINE_TYPE_SUPPORTED(Machine) ((Machine) == EFI_IMAGE_MACHINE_EBC)
-
-#define EFI_IMAGE_MACHINE_CROSS_TYPE_SUPPORTED(Machine) (FALSE)
-
-//
-// @bug - Remove me when other package updated.
-//
-typedef EFI_IMAGE_NT_HEADERS64 EFI_IMAGE_NT_HEADERS;
-
-#else
-#error Unknown Processor Type
-#endif
-
-
-#define EFI_IMAGE_FIRST_SECTION(ntheader) \
- ( \
- (EFI_IMAGE_SECTION_HEADER *) \
- ( \
- (UINT32) ntheader + \
- FIELD_OFFSET (EFI_IMAGE_NT_HEADERS, OptionalHeader) + \
- ((EFI_IMAGE_NT_HEADERS *) (ntheader))->FileHeader.SizeOfOptionalHeader \
- ) \
- )
-
-//
-// Subsystem Values
-//
-#define EFI_IMAGE_SUBSYSTEM_UNKNOWN 0
-#define EFI_IMAGE_SUBSYSTEM_NATIVE 1
-#define EFI_IMAGE_SUBSYSTEM_WINDOWS_GUI 2
-#define EFI_IMAGE_SUBSYSTEM_WINDOWS_CUI 3.
-#define EFI_IMAGE_SUBSYSTEM_OS2_CUI 5
-#define EFI_IMAGE_SUBSYSTEM_POSIX_CUI 7
-
-//
-// Directory Entries
-//
-#define EFI_IMAGE_DIRECTORY_ENTRY_EXPORT 0
-#define EFI_IMAGE_DIRECTORY_ENTRY_IMPORT 1
-#define EFI_IMAGE_DIRECTORY_ENTRY_RESOURCE 2
-#define EFI_IMAGE_DIRECTORY_ENTRY_EXCEPTION 3
-#define EFI_IMAGE_DIRECTORY_ENTRY_SECURITY 4
-#define EFI_IMAGE_DIRECTORY_ENTRY_BASERELOC 5
-#define EFI_IMAGE_DIRECTORY_ENTRY_DEBUG 6
-#define EFI_IMAGE_DIRECTORY_ENTRY_COPYRIGHT 7
-#define EFI_IMAGE_DIRECTORY_ENTRY_GLOBALPTR 8
-#define EFI_IMAGE_DIRECTORY_ENTRY_TLS 9
-#define EFI_IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG 10
-
-//
-// Section header format.
-//
-#define EFI_IMAGE_SIZEOF_SHORT_NAME 8
-
-typedef struct {
- UINT8 Name[EFI_IMAGE_SIZEOF_SHORT_NAME];
- union {
- UINT32 PhysicalAddress;
- UINT32 VirtualSize;
- } Misc;
- UINT32 VirtualAddress;
- UINT32 SizeOfRawData;
- UINT32 PointerToRawData;
- UINT32 PointerToRelocations;
- UINT32 PointerToLinenumbers;
- UINT16 NumberOfRelocations;
- UINT16 NumberOfLinenumbers;
- UINT32 Characteristics;
-} EFI_IMAGE_SECTION_HEADER;
-
-#define EFI_IMAGE_SIZEOF_SECTION_HEADER 40
-
-#define EFI_IMAGE_SCN_TYPE_NO_PAD 0x00000008 // Reserved.
-#define EFI_IMAGE_SCN_CNT_CODE 0x00000020
-#define EFI_IMAGE_SCN_CNT_INITIALIZED_DATA 0x00000040
-#define EFI_IMAGE_SCN_CNT_UNINITIALIZED_DATA 0x00000080
-
-#define EFI_IMAGE_SCN_LNK_OTHER 0x00000100 // Reserved.
-#define EFI_IMAGE_SCN_LNK_INFO 0x00000200 // Section contains comments or some other type of information.
-#define EFI_IMAGE_SCN_LNK_REMOVE 0x00000800 // Section contents will not become part of image.
-#define EFI_IMAGE_SCN_LNK_COMDAT 0x00001000
-
-#define EFI_IMAGE_SCN_ALIGN_1BYTES 0x00100000
-#define EFI_IMAGE_SCN_ALIGN_2BYTES 0x00200000
-#define EFI_IMAGE_SCN_ALIGN_4BYTES 0x00300000
-#define EFI_IMAGE_SCN_ALIGN_8BYTES 0x00400000
-#define EFI_IMAGE_SCN_ALIGN_16BYTES 0x00500000
-#define EFI_IMAGE_SCN_ALIGN_32BYTES 0x00600000
-#define EFI_IMAGE_SCN_ALIGN_64BYTES 0x00700000
-
-#define EFI_IMAGE_SCN_MEM_DISCARDABLE 0x02000000
-#define EFI_IMAGE_SCN_MEM_NOT_CACHED 0x04000000
-#define EFI_IMAGE_SCN_MEM_NOT_PAGED 0x08000000
-#define EFI_IMAGE_SCN_MEM_SHARED 0x10000000
-#define EFI_IMAGE_SCN_MEM_EXECUTE 0x20000000
-#define EFI_IMAGE_SCN_MEM_READ 0x40000000
-#define EFI_IMAGE_SCN_MEM_WRITE 0x80000000
-
-///
-/// Symbol format.
-///
-#define EFI_IMAGE_SIZEOF_SYMBOL 18
-
-//
-// Section values.
-//
-// Symbols have a section number of the section in which they are
-// defined. Otherwise, section numbers have the following meanings:
-//
-#define EFI_IMAGE_SYM_UNDEFINED (UINT16) 0 // Symbol is undefined or is common.
-#define EFI_IMAGE_SYM_ABSOLUTE (UINT16) -1 // Symbol is an absolute value.
-#define EFI_IMAGE_SYM_DEBUG (UINT16) -2 // Symbol is a special debug item.
-//
-// Type (fundamental) values.
-//
-#define EFI_IMAGE_SYM_TYPE_NULL 0 // no type.
-#define EFI_IMAGE_SYM_TYPE_VOID 1 //
-#define EFI_IMAGE_SYM_TYPE_CHAR 2 // type character.
-#define EFI_IMAGE_SYM_TYPE_SHORT 3 // type short integer.
-#define EFI_IMAGE_SYM_TYPE_INT 4
-#define EFI_IMAGE_SYM_TYPE_LONG 5
-#define EFI_IMAGE_SYM_TYPE_FLOAT 6
-#define EFI_IMAGE_SYM_TYPE_DOUBLE 7
-#define EFI_IMAGE_SYM_TYPE_STRUCT 8
-#define EFI_IMAGE_SYM_TYPE_UNION 9
-#define EFI_IMAGE_SYM_TYPE_ENUM 10 // enumeration.
-#define EFI_IMAGE_SYM_TYPE_MOE 11 // member of enumeration.
-#define EFI_IMAGE_SYM_TYPE_BYTE 12
-#define EFI_IMAGE_SYM_TYPE_WORD 13
-#define EFI_IMAGE_SYM_TYPE_UINT 14
-#define EFI_IMAGE_SYM_TYPE_DWORD 15
-
-//
-// Type (derived) values.
-//
-#define EFI_IMAGE_SYM_DTYPE_NULL 0 // no derived type.
-#define EFI_IMAGE_SYM_DTYPE_POINTER 1
-#define EFI_IMAGE_SYM_DTYPE_FUNCTION 2
-#define EFI_IMAGE_SYM_DTYPE_ARRAY 3
-
-//
-// Storage classes.
-//
-#define EFI_IMAGE_SYM_CLASS_END_OF_FUNCTION (UINT8) -1
-#define EFI_IMAGE_SYM_CLASS_NULL 0
-#define EFI_IMAGE_SYM_CLASS_AUTOMATIC 1
-#define EFI_IMAGE_SYM_CLASS_EXTERNAL 2
-#define EFI_IMAGE_SYM_CLASS_STATIC 3
-#define EFI_IMAGE_SYM_CLASS_REGISTER 4
-#define EFI_IMAGE_SYM_CLASS_EXTERNAL_DEF 5
-#define EFI_IMAGE_SYM_CLASS_LABEL 6
-#define EFI_IMAGE_SYM_CLASS_UNDEFINED_LABEL 7
-#define EFI_IMAGE_SYM_CLASS_MEMBER_OF_STRUCT 8
-#define EFI_IMAGE_SYM_CLASS_ARGUMENT 9
-#define EFI_IMAGE_SYM_CLASS_STRUCT_TAG 10
-#define EFI_IMAGE_SYM_CLASS_MEMBER_OF_UNION 11
-#define EFI_IMAGE_SYM_CLASS_UNION_TAG 12
-#define EFI_IMAGE_SYM_CLASS_TYPE_DEFINITION 13
-#define EFI_IMAGE_SYM_CLASS_UNDEFINED_STATIC 14
-#define EFI_IMAGE_SYM_CLASS_ENUM_TAG 15
-#define EFI_IMAGE_SYM_CLASS_MEMBER_OF_ENUM 16
-#define EFI_IMAGE_SYM_CLASS_REGISTER_PARAM 17
-#define EFI_IMAGE_SYM_CLASS_BIT_FIELD 18
-#define EFI_IMAGE_SYM_CLASS_BLOCK 100
-#define EFI_IMAGE_SYM_CLASS_FUNCTION 101
-#define EFI_IMAGE_SYM_CLASS_END_OF_STRUCT 102
-#define EFI_IMAGE_SYM_CLASS_FILE 103
-#define EFI_IMAGE_SYM_CLASS_SECTION 104
-#define EFI_IMAGE_SYM_CLASS_WEAK_EXTERNAL 105
-
-//
-// type packing constants
-//
-#define EFI_IMAGE_N_BTMASK 017
-#define EFI_IMAGE_N_TMASK 060
-#define EFI_IMAGE_N_TMASK1 0300
-#define EFI_IMAGE_N_TMASK2 0360
-#define EFI_IMAGE_N_BTSHFT 4
-#define EFI_IMAGE_N_TSHIFT 2
-
-//
-// Communal selection types.
-//
-#define EFI_IMAGE_COMDAT_SELECT_NODUPLICATES 1
-#define EFI_IMAGE_COMDAT_SELECT_ANY 2
-#define EFI_IMAGE_COMDAT_SELECT_SAME_SIZE 3
-#define EFI_IMAGE_COMDAT_SELECT_EXACT_MATCH 4
-#define EFI_IMAGE_COMDAT_SELECT_ASSOCIATIVE 5
-
-#define EFI_IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY 1
-#define EFI_IMAGE_WEAK_EXTERN_SEARCH_LIBRARY 2
-#define EFI_IMAGE_WEAK_EXTERN_SEARCH_ALIAS 3
-
-///
-/// Relocation format.
-///
-typedef struct {
- UINT32 VirtualAddress;
- UINT32 SymbolTableIndex;
- UINT16 Type;
-} EFI_IMAGE_RELOCATION;
-
-#define EFI_IMAGE_SIZEOF_RELOCATION 10
-
-//
-// I386 relocation types.
-//
-#define EFI_IMAGE_REL_I386_ABSOLUTE 0x0000 // Reference is absolute, no relocation is necessary
-#define EFI_IMAGE_REL_I386_DIR16 0x0001 // Direct 16-bit reference to the symbols virtual address
-#define EFI_IMAGE_REL_I386_REL16 0x0002 // PC-relative 16-bit reference to the symbols virtual address
-#define EFI_IMAGE_REL_I386_DIR32 0x0006 // Direct 32-bit reference to the symbols virtual address
-#define EFI_IMAGE_REL_I386_DIR32NB 0x0007 // Direct 32-bit reference to the symbols virtual address, base not included
-#define EFI_IMAGE_REL_I386_SEG12 0x0009 // Direct 16-bit reference to the segment-selector bits of a 32-bit virtual address
-#define EFI_IMAGE_REL_I386_SECTION 0x001a
-#define EFI_IMAGE_REL_I386_SECREL 0x000b
-#define EFI_IMAGE_REL_I386_REL32 0x0014 // PC-relative 32-bit reference to the symbols virtual address
-
-//
-// x64 processor relocation types.
-//
-#define IMAGE_REL_AMD64_ABSOLUTE 0x0000
-#define IMAGE_REL_AMD64_ADDR64 0x0001
-#define IMAGE_REL_AMD64_ADDR32 0x0002
-#define IMAGE_REL_AMD64_ADDR32NB 0x0003
-#define IMAGE_REL_AMD64_REL32 0x0004
-#define IMAGE_REL_AMD64_REL32_1 0x0005
-#define IMAGE_REL_AMD64_REL32_2 0x0006
-#define IMAGE_REL_AMD64_REL32_3 0x0007
-#define IMAGE_REL_AMD64_REL32_4 0x0008
-#define IMAGE_REL_AMD64_REL32_5 0x0009
-#define IMAGE_REL_AMD64_SECTION 0x000A
-#define IMAGE_REL_AMD64_SECREL 0x000B
-#define IMAGE_REL_AMD64_SECREL7 0x000C
-#define IMAGE_REL_AMD64_TOKEN 0x000D
-#define IMAGE_REL_AMD64_SREL32 0x000E
-#define IMAGE_REL_AMD64_PAIR 0x000F
-#define IMAGE_REL_AMD64_SSPAN32 0x0010
-
-///
-/// Based relocation format.
-///
-typedef struct {
- UINT32 VirtualAddress;
- UINT32 SizeOfBlock;
-} EFI_IMAGE_BASE_RELOCATION;
-
-#define EFI_IMAGE_SIZEOF_BASE_RELOCATION 8
-
-//
-// Based relocation types.
-//
-#define EFI_IMAGE_REL_BASED_ABSOLUTE 0
-#define EFI_IMAGE_REL_BASED_HIGH 1
-#define EFI_IMAGE_REL_BASED_LOW 2
-#define EFI_IMAGE_REL_BASED_HIGHLOW 3
-#define EFI_IMAGE_REL_BASED_HIGHADJ 4
-#define EFI_IMAGE_REL_BASED_MIPS_JMPADDR 5
-#define EFI_IMAGE_REL_BASED_IA64_IMM64 9
-#define EFI_IMAGE_REL_BASED_DIR64 10
-
-///
-/// Line number format.
-///
-typedef struct {
- union {
- UINT32 SymbolTableIndex; // Symbol table index of function name if Linenumber is 0.
- UINT32 VirtualAddress; // Virtual address of line number.
- } Type;
- UINT16 Linenumber; // Line number.
-} EFI_IMAGE_LINENUMBER;
-
-#define EFI_IMAGE_SIZEOF_LINENUMBER 6
-
-//
-// Archive format.
-//
-#define EFI_IMAGE_ARCHIVE_START_SIZE 8
-#define EFI_IMAGE_ARCHIVE_START "!<arch>\n"
-#define EFI_IMAGE_ARCHIVE_END "`\n"
-#define EFI_IMAGE_ARCHIVE_PAD "\n"
-#define EFI_IMAGE_ARCHIVE_LINKER_MEMBER "/ "
-#define EFI_IMAGE_ARCHIVE_LONGNAMES_MEMBER "// "
-
-typedef struct {
- UINT8 Name[16]; // File member name - `/' terminated.
- UINT8 Date[12]; // File member date - decimal.
- UINT8 UserID[6]; // File member user id - decimal.
- UINT8 GroupID[6]; // File member group id - decimal.
- UINT8 Mode[8]; // File member mode - octal.
- UINT8 Size[10]; // File member size - decimal.
- UINT8 EndHeader[2]; // String to end header.
-} EFI_IMAGE_ARCHIVE_MEMBER_HEADER;
-
-#define EFI_IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR 60
-
-//
-// DLL support.
-//
-
-///
-/// DLL Export Format
-///
-typedef struct {
- UINT32 Characteristics;
- UINT32 TimeDateStamp;
- UINT16 MajorVersion;
- UINT16 MinorVersion;
- UINT32 Name;
- UINT32 Base;
- UINT32 NumberOfFunctions;
- UINT32 NumberOfNames;
- UINT32 AddressOfFunctions;
- UINT32 AddressOfNames;
- UINT32 AddressOfNameOrdinals;
-} EFI_IMAGE_EXPORT_DIRECTORY;
-
-///
-/// DLL support.
-/// Import Format
-///
-typedef struct {
- UINT16 Hint;
- UINT8 Name[1];
-} EFI_IMAGE_IMPORT_BY_NAME;
-
-typedef struct {
- union {
- UINT32 Function;
- UINT32 Ordinal;
- EFI_IMAGE_IMPORT_BY_NAME *AddressOfData;
- } u1;
-} EFI_IMAGE_THUNK_DATA;
-
-#define EFI_IMAGE_ORDINAL_FLAG 0x80000000
-#define EFI_IMAGE_SNAP_BY_ORDINAL(Ordinal) ((Ordinal & EFI_IMAGE_ORDINAL_FLAG) != 0)
-#define EFI_IMAGE_ORDINAL(Ordinal) (Ordinal & 0xffff)
-
-typedef struct {
- UINT32 Characteristics;
- UINT32 TimeDateStamp;
- UINT32 ForwarderChain;
- UINT32 Name;
- EFI_IMAGE_THUNK_DATA *FirstThunk;
-} EFI_IMAGE_IMPORT_DESCRIPTOR;
-
-///
-/// Debug Format
-///
-#define EFI_IMAGE_DEBUG_TYPE_CODEVIEW 2
-
-typedef struct {
- UINT32 Characteristics;
- UINT32 TimeDateStamp;
- UINT16 MajorVersion;
- UINT16 MinorVersion;
- UINT32 Type;
- UINT32 SizeOfData;
- UINT32 RVA;
- UINT32 FileOffset;
-} EFI_IMAGE_DEBUG_DIRECTORY_ENTRY;
-
-#define CODEVIEW_SIGNATURE_NB10 0x3031424E // "NB10"
-typedef struct {
- UINT32 Signature; // "NB10"
- UINT32 Unknown;
- UINT32 Unknown2;
- UINT32 Unknown3;
- //
- // Filename of .PDB goes here
- //
-} EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY;
-
-#define CODEVIEW_SIGNATURE_RSDS 0x53445352 // "RSDS"
-typedef struct {
- UINT32 Signature; // "RSDS"
- UINT32 Unknown;
- UINT32 Unknown2;
- UINT32 Unknown3;
- UINT32 Unknown4;
- UINT32 Unknown5;
- //
- // Filename of .PDB goes here
- //
-} EFI_IMAGE_DEBUG_CODEVIEW_RSDS_ENTRY;
-
-///
-/// Header format for TE images
-///
-typedef struct {
- UINT16 Signature; // signature for TE format = "VZ"
- UINT16 Machine; // from the original file header
- UINT8 NumberOfSections; // from the original file header
- UINT8 Subsystem; // from original optional header
- UINT16 StrippedSize; // how many bytes we removed from the header
- UINT32 AddressOfEntryPoint; // offset to entry point -- from original optional header
- UINT32 BaseOfCode; // from original image -- required for ITP debug
- UINT64 ImageBase; // from original file header
- EFI_IMAGE_DATA_DIRECTORY DataDirectory[2]; // only base relocation and debug directory
-} EFI_TE_IMAGE_HEADER;
-
-#define EFI_TE_IMAGE_HEADER_SIGNATURE 0x5A56 // "VZ"
-
-//
-// Data directory indexes in our TE image header
-//
-#define EFI_TE_IMAGE_DIRECTORY_ENTRY_BASERELOC 0
-#define EFI_TE_IMAGE_DIRECTORY_ENTRY_DEBUG 1
-
-
-//
-// Union of PE32, PE32+, and TE headers
-//
-typedef union {
- EFI_IMAGE_NT_HEADERS32 Pe32;
- EFI_IMAGE_NT_HEADERS64 Pe32Plus;
- EFI_TE_IMAGE_HEADER Te;
-} EFI_IMAGE_OPTIONAL_HEADER_UNION;
-
-typedef union {
- EFI_IMAGE_NT_HEADERS32 *Pe32;
- EFI_IMAGE_NT_HEADERS64 *Pe32Plus;
- EFI_TE_IMAGE_HEADER *Te;
- EFI_IMAGE_OPTIONAL_HEADER_UNION *Union;
-} EFI_IMAGE_OPTIONAL_HEADER_PTR_UNION;
-
-#endif
diff --git a/MdePkg/Include/Common/FirmwareFileSystem.h b/MdePkg/Include/Common/FirmwareFileSystem.h
deleted file mode 100644
index 00ce8faff1..0000000000
--- a/MdePkg/Include/Common/FirmwareFileSystem.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/** @file
- This file defines the data structures that comprise the FFS file system.
-
- Copyright (c) 2006, Intel Corporation
- All rights reserved. This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php
-
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
- Module Name: FirmwareFileSystem.h
-
- @par Revision Reference:
- These definitions are from Firmware File System Spec 0.9.
-
-**/
-
-#ifndef __EFI_FFS_FILE_SYSTEM_H__
-#define __EFI_FFS_FILE_SYSTEM_H__
-
-///
-/// FFS specific file types
-///
-#define EFI_FV_FILETYPE_FFS_PAD 0xF0
-
-//
-// FFS File Attributes
-//
-#define FFS_ATTRIB_TAIL_PRESENT 0x01
-#define FFS_ATTRIB_RECOVERY 0x02
-#define FFS_ATTRIB_HEADER_EXTENSION 0x04
-#define FFS_ATTRIB_DATA_ALIGNMENT 0x38
-#define FFS_ATTRIB_CHECKSUM 0x40
-
-///
-/// FFS_FIXED_CHECKSUM is the default checksum value used when the
-/// FFS_ATTRIB_CHECKSUM attribute bit is clear
-/// note this is NOT an architecturally defined value, but is in this file for
-/// implementation convenience
-///
-#define FFS_FIXED_CHECKSUM 0x5A
-
-//
-// File state definitions
-//
-#define EFI_FILE_HEADER_CONSTRUCTION 0x01
-#define EFI_FILE_HEADER_VALID 0x02
-#define EFI_FILE_DATA_VALID 0x04
-#define EFI_FILE_MARKED_FOR_UPDATE 0x08
-#define EFI_FILE_DELETED 0x10
-#define EFI_FILE_HEADER_INVALID 0x20
-
-#define EFI_FILE_ALL_STATE_BITS (EFI_FILE_HEADER_CONSTRUCTION | \
- EFI_FILE_HEADER_VALID | \
- EFI_FILE_DATA_VALID | \
- EFI_FILE_MARKED_FOR_UPDATE | \
- EFI_FILE_DELETED | \
- EFI_FILE_HEADER_INVALID \
- )
-
-typedef UINT16 EFI_FFS_FILE_TAIL;
-
-///
-/// FFS file integrity check structure
-///
-typedef union {
- struct {
- UINT8 Header;
- UINT8 File;
- } Checksum;
- UINT16 TailReference;
-} EFI_FFS_INTEGRITY_CHECK;
-
-//
-// FFS file header definition
-//
-typedef UINT8 EFI_FFS_FILE_ATTRIBUTES;
-typedef UINT8 EFI_FFS_FILE_STATE;
-
-typedef struct {
- EFI_GUID Name;
- EFI_FFS_INTEGRITY_CHECK IntegrityCheck;
- EFI_FV_FILETYPE Type;
- EFI_FFS_FILE_ATTRIBUTES Attributes;
- UINT8 Size[3];
- EFI_FFS_FILE_STATE State;
-} EFI_FFS_FILE_HEADER;
-
-#endif
diff --git a/MdePkg/Include/Common/FirmwareVolumeHeader.h b/MdePkg/Include/Common/FirmwareVolumeHeader.h
deleted file mode 100644
index c2bbddf3e9..0000000000
--- a/MdePkg/Include/Common/FirmwareVolumeHeader.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/** @file
- Defines data structure that is the volume header found at the beginning of
- all firmware volumes that are either memory mapped, or have an
- associated FirmwareVolumeBlock protocol.
-
- Copyright (c) 2006, Intel Corporation
- All rights reserved. This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php
-
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
- Module Name: FirmwareVolumeHeader.h
-
- @par Revision Reference:
- These definitions are from Firmware Volume Block Spec 0.9.
-
-**/
-
-#ifndef __EFI_FIRMWARE_VOLUME_HEADER_H__
-#define __EFI_FIRMWARE_VOLUME_HEADER_H__
-
-//
-// Firmware Volume Block Attributes definition
-//
-typedef UINT32 EFI_FVB_ATTRIBUTES;
-
-//
-// Firmware Volume Block Attributes bit definitions
-//
-#define EFI_FVB_READ_DISABLED_CAP 0x00000001
-#define EFI_FVB_READ_ENABLED_CAP 0x00000002
-#define EFI_FVB_READ_STATUS 0x00000004
-
-#define EFI_FVB_WRITE_DISABLED_CAP 0x00000008
-#define EFI_FVB_WRITE_ENABLED_CAP 0x00000010
-#define EFI_FVB_WRITE_STATUS 0x00000020
-
-#define EFI_FVB_LOCK_CAP 0x00000040
-#define EFI_FVB_LOCK_STATUS 0x00000080
-
-#define EFI_FVB_STICKY_WRITE 0x00000200
-#define EFI_FVB_MEMORY_MAPPED 0x00000400
-#define EFI_FVB_ERASE_POLARITY 0x00000800
-
-#define EFI_FVB_ALIGNMENT_CAP 0x00008000
-#define EFI_FVB_ALIGNMENT_2 0x00010000
-#define EFI_FVB_ALIGNMENT_4 0x00020000
-#define EFI_FVB_ALIGNMENT_8 0x00040000
-#define EFI_FVB_ALIGNMENT_16 0x00080000
-#define EFI_FVB_ALIGNMENT_32 0x00100000
-#define EFI_FVB_ALIGNMENT_64 0x00200000
-#define EFI_FVB_ALIGNMENT_128 0x00400000
-#define EFI_FVB_ALIGNMENT_256 0x00800000
-#define EFI_FVB_ALIGNMENT_512 0x01000000
-#define EFI_FVB_ALIGNMENT_1K 0x02000000
-#define EFI_FVB_ALIGNMENT_2K 0x04000000
-#define EFI_FVB_ALIGNMENT_4K 0x08000000
-#define EFI_FVB_ALIGNMENT_8K 0x10000000
-#define EFI_FVB_ALIGNMENT_16K 0x20000000
-#define EFI_FVB_ALIGNMENT_32K 0x40000000
-#define EFI_FVB_ALIGNMENT_64K 0x80000000
-
-#define EFI_FVB_CAPABILITIES (EFI_FVB_READ_DISABLED_CAP | \
- EFI_FVB_READ_ENABLED_CAP | \
- EFI_FVB_WRITE_DISABLED_CAP | \
- EFI_FVB_WRITE_ENABLED_CAP | \
- EFI_FVB_LOCK_CAP \
- )
-
-#define EFI_TEST_FFS_ATTRIBUTES_BIT(FvbAttributes, TestAttributes, Bit) \
- ( \
- (BOOLEAN) ( \
- (FvbAttributes & EFI_FVB_ERASE_POLARITY) ? (((~TestAttributes) & Bit) == Bit) : ((TestAttributes & Bit) == Bit) \
- ) \
- )
-
-#define EFI_FVB_STATUS (EFI_FVB_READ_STATUS | EFI_FVB_WRITE_STATUS | EFI_FVB_LOCK_STATUS)
-
-///
-/// Firmware Volume Header Revision definition
-///
-#define EFI_FVH_REVISION 0x01
-
-///
-/// Firmware Volume Header Signature definition
-///
-#define EFI_FVH_SIGNATURE EFI_SIGNATURE_32 ('_', 'F', 'V', 'H')
-
-///
-/// Firmware Volume Header Block Map Entry definition
-///
-typedef struct {
- UINT32 NumBlocks;
- UINT32 BlockLength;
-} EFI_FV_BLOCK_MAP_ENTRY;
-
-///
-/// Firmware Volume Header definition
-///
-typedef struct {
- UINT8 ZeroVector[16];
- EFI_GUID FileSystemGuid;
- UINT64 FvLength;
- UINT32 Signature;
- EFI_FVB_ATTRIBUTES Attributes;
- UINT16 HeaderLength;
- UINT16 Checksum;
- UINT8 Reserved[3];
- UINT8 Revision;
- EFI_FV_BLOCK_MAP_ENTRY FvBlockMap[1];
-} EFI_FIRMWARE_VOLUME_HEADER;
-
-#endif
diff --git a/MdePkg/Include/Common/FirmwareVolumeImageFormat.h b/MdePkg/Include/Common/FirmwareVolumeImageFormat.h
deleted file mode 100644
index 14fa41bf26..0000000000
--- a/MdePkg/Include/Common/FirmwareVolumeImageFormat.h
+++ /dev/null
@@ -1,277 +0,0 @@
-/** @file
- This file defines the data structures that are architecturally defined for file
- images loaded via the FirmwareVolume protocol. The Firmware Volume specification
- is the basis for these definitions.
-
- Copyright (c) 2006, Intel Corporation
- All rights reserved. This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php
-
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
- Module Name: FimrwareVolumeImageFormat.h
-
- @par Revision Reference:
- These definitions are from Firmware Volume Spec 0.9.
-
-**/
-
-#ifndef __FIRMWARE_VOLUME_IMAGE_FORMAT_H__
-#define __FIRMWARE_VOLUME_IMAGE_FORMAT_H__
-
-//
-// pack all data structures since this is actually a binary format and we cannot
-// allow internal padding in the data structures because of some compilerism..
-//
-#pragma pack(1)
-//
-// ////////////////////////////////////////////////////////////////////////////
-//
-// Architectural file types
-//
-typedef UINT8 EFI_FV_FILETYPE;
-
-#define EFI_FV_FILETYPE_ALL 0x00
-#define EFI_FV_FILETYPE_RAW 0x01
-#define EFI_FV_FILETYPE_FREEFORM 0x02
-#define EFI_FV_FILETYPE_SECURITY_CORE 0x03
-#define EFI_FV_FILETYPE_PEI_CORE 0x04
-#define EFI_FV_FILETYPE_DXE_CORE 0x05
-#define EFI_FV_FILETYPE_PEIM 0x06
-#define EFI_FV_FILETYPE_DRIVER 0x07
-#define EFI_FV_FILETYPE_COMBINED_PEIM_DRIVER 0x08
-#define EFI_FV_FILETYPE_APPLICATION 0x09
-//
-// File type 0x0A is reserved and should not be used
-//
-#define EFI_FV_FILETYPE_FIRMWARE_VOLUME_IMAGE 0x0B
-
-//
-// ////////////////////////////////////////////////////////////////////////////
-//
-// Section types
-//
-typedef UINT8 EFI_SECTION_TYPE;
-
-//
-// ************************************************************
-// The section type EFI_SECTION_ALL is a psuedo type. It is
-// used as a wildcard when retrieving sections. The section
-// type EFI_SECTION_ALL matches all section types.
-// ************************************************************
-//
-#define EFI_SECTION_ALL 0x00
-
-//
-// ************************************************************
-// Encapsulation section Type values
-// ************************************************************
-//
-#define EFI_SECTION_COMPRESSION 0x01
-#define EFI_SECTION_GUID_DEFINED 0x02
-
-//
-// ************************************************************
-// Leaf section Type values
-// ************************************************************
-//
-#define EFI_SECTION_FIRST_LEAF_SECTION_TYPE 0x10
-
-#define EFI_SECTION_PE32 0x10
-#define EFI_SECTION_PIC 0x11
-#define EFI_SECTION_TE 0x12
-#define EFI_SECTION_DXE_DEPEX 0x13
-#define EFI_SECTION_VERSION 0x14
-#define EFI_SECTION_USER_INTERFACE 0x15
-#define EFI_SECTION_COMPATIBILITY16 0x16
-#define EFI_SECTION_FIRMWARE_VOLUME_IMAGE 0x17
-#define EFI_SECTION_FREEFORM_SUBTYPE_GUID 0x18
-#define EFI_SECTION_RAW 0x19
-#define EFI_SECTION_PEI_DEPEX 0x1B
-
-#define EFI_SECTION_LAST_LEAF_SECTION_TYPE 0x1B
-#define EFI_SECTION_LAST_SECTION_TYPE 0x1B
-
-//
-// ////////////////////////////////////////////////////////////////////////////
-//
-// Common section header
-//
-typedef struct {
- UINT8 Size[3];
- UINT8 Type;
-} EFI_COMMON_SECTION_HEADER;
-
-#define SECTION_SIZE(SectionHeaderPtr) \
- ((UINT32) (*((UINT32 *) ((EFI_COMMON_SECTION_HEADER *) SectionHeaderPtr)->Size) & 0x00ffffff))
-
-//
-// ////////////////////////////////////////////////////////////////////////////
-//
-// Compression section
-//
-//
-// CompressionType values
-//
-#define EFI_NOT_COMPRESSED 0x00
-#define EFI_STANDARD_COMPRESSION 0x01
-#define EFI_CUSTOMIZED_COMPRESSION 0x02
-
-typedef struct {
- EFI_COMMON_SECTION_HEADER CommonHeader;
- UINT32 UncompressedLength;
- UINT8 CompressionType;
-} EFI_COMPRESSION_SECTION;
-
-//
-// ////////////////////////////////////////////////////////////////////////////
-//
-// GUID defined section
-//
-typedef struct {
- EFI_COMMON_SECTION_HEADER CommonHeader;
- EFI_GUID SectionDefinitionGuid;
- UINT16 DataOffset;
- UINT16 Attributes;
-} EFI_GUID_DEFINED_SECTION;
-
-//
-// Bit values for Attributes
-//
-#define EFI_GUIDED_SECTION_PROCESSING_REQUIRED 0x01
-#define EFI_GUIDED_SECTION_AUTH_STATUS_VALID 0x02
-
-//
-// Bit values for AuthenticationStatus
-//
-#define EFI_AGGREGATE_AUTH_STATUS_PLATFORM_OVERRIDE 0x000001
-#define EFI_AGGREGATE_AUTH_STATUS_IMAGE_SIGNED 0x000002
-#define EFI_AGGREGATE_AUTH_STATUS_NOT_TESTED 0x000004
-#define EFI_AGGREGATE_AUTH_STATUS_TEST_FAILED 0x000008
-#define EFI_AGGREGATE_AUTH_STATUS_ALL 0x00000f
-
-#define EFI_LOCAL_AUTH_STATUS_PLATFORM_OVERRIDE 0x010000
-#define EFI_LOCAL_AUTH_STATUS_IMAGE_SIGNED 0x020000
-#define EFI_LOCAL_AUTH_STATUS_NOT_TESTED 0x040000
-#define EFI_LOCAL_AUTH_STATUS_TEST_FAILED 0x080000
-#define EFI_LOCAL_AUTH_STATUS_ALL 0x0f0000
-
-//
-// ////////////////////////////////////////////////////////////////////////////
-//
-// PE32+ section
-//
-typedef struct {
- EFI_COMMON_SECTION_HEADER CommonHeader;
-} EFI_PE32_SECTION;
-
-//
-// ////////////////////////////////////////////////////////////////////////////
-//
-// PIC section
-//
-typedef struct {
- EFI_COMMON_SECTION_HEADER CommonHeader;
-} EFI_PIC_SECTION;
-
-//
-// ////////////////////////////////////////////////////////////////////////////
-//
-// PEIM header section
-//
-typedef struct {
- EFI_COMMON_SECTION_HEADER CommonHeader;
-} EFI_PEIM_HEADER_SECTION;
-
-//
-// ////////////////////////////////////////////////////////////////////////////
-//
-// DEPEX section
-//
-typedef struct {
- EFI_COMMON_SECTION_HEADER CommonHeader;
-} EFI_DEPEX_SECTION;
-
-//
-// ////////////////////////////////////////////////////////////////////////////
-//
-// Version section
-//
-typedef struct {
- EFI_COMMON_SECTION_HEADER CommonHeader;
- UINT16 BuildNumber;
- INT16 VersionString[1];
-} EFI_VERSION_SECTION;
-
-//
-// ////////////////////////////////////////////////////////////////////////////
-//
-// User interface section
-//
-typedef struct {
- EFI_COMMON_SECTION_HEADER CommonHeader;
- INT16 FileNameString[1];
-} EFI_USER_INTERFACE_SECTION;
-
-//
-// ////////////////////////////////////////////////////////////////////////////
-//
-// Code16 section
-//
-typedef struct {
- EFI_COMMON_SECTION_HEADER CommonHeader;
-} EFI_CODE16_SECTION;
-
-//
-// ////////////////////////////////////////////////////////////////////////////
-//
-// Firmware Volume Image section
-//
-typedef struct {
- EFI_COMMON_SECTION_HEADER CommonHeader;
-} EFI_FIRMWARE_VOLUME_IMAGE_SECTION;
-
-//
-// ////////////////////////////////////////////////////////////////////////////
-//
-// Freeform subtype GUID section
-//
-typedef struct {
- EFI_COMMON_SECTION_HEADER CommonHeader;
- EFI_GUID SubTypeGuid;
-} EFI_FREEFORM_SUBTYPE_GUID_SECTION;
-
-//
-// ////////////////////////////////////////////////////////////////////////////
-//
-// Raw section
-//
-typedef struct {
- EFI_COMMON_SECTION_HEADER CommonHeader;
-} EFI_RAW_SECTION;
-
-//
-// undo the pragma from the beginning...
-//
-#pragma pack()
-
-typedef union {
- EFI_COMMON_SECTION_HEADER *CommonHeader;
- EFI_COMPRESSION_SECTION *CompressionSection;
- EFI_GUID_DEFINED_SECTION *GuidDefinedSection;
- EFI_PE32_SECTION *Pe32Section;
- EFI_PIC_SECTION *PicSection;
- EFI_PEIM_HEADER_SECTION *PeimHeaderSection;
- EFI_DEPEX_SECTION *DependencySection;
- EFI_VERSION_SECTION *VersionSection;
- EFI_USER_INTERFACE_SECTION *UISection;
- EFI_CODE16_SECTION *Code16Section;
- EFI_FIRMWARE_VOLUME_IMAGE_SECTION *FVImageSection;
- EFI_FREEFORM_SUBTYPE_GUID_SECTION *FreeformSubtypeSection;
- EFI_RAW_SECTION *RawSection;
-} EFI_FILE_SECTION_POINTER;
-
-#endif
diff --git a/MdePkg/Include/Common/Hob.h b/MdePkg/Include/Common/Hob.h
deleted file mode 100644
index b6ae6de009..0000000000
--- a/MdePkg/Include/Common/Hob.h
+++ /dev/null
@@ -1,235 +0,0 @@
-/** @file
- Hand Off Block (HOB) definition.
-
- The HOB is a memory data structure used to hand-off system information from
- PEI to DXE (the next phase).
-
- Copyright (c) 2006, Intel Corporation
- All rights reserved. This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php
-
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
- Module Name: Hob.h
-
- @par Revision Reference:
- These definitions are from Hand Off Block (HOB) Spec Version 0.9.
-
-**/
-
-#ifndef __HOB_H__
-#define __HOB_H__
-
-
-//
-// Every Hob must start with this data structure.
-//
-typedef struct {
- UINT16 HobType;
- UINT16 HobLength;
- UINT32 Reserved;
-} EFI_HOB_GENERIC_HEADER;
-
-//
-// End of HOB List HOB
-//
-#define EFI_HOB_TYPE_END_OF_HOB_LIST 0xffff
-
-//
-// Handoff Information Table HOB
-//
-#define EFI_HOB_TYPE_HANDOFF 0x0001
-
-#define EFI_HOB_HANDOFF_TABLE_VERSION 0x0009
-
-typedef UINT32 EFI_BOOT_MODE;
-
-typedef struct {
- EFI_HOB_GENERIC_HEADER Header;
- UINT32 Version;
- EFI_BOOT_MODE BootMode;
- EFI_PHYSICAL_ADDRESS EfiMemoryTop;
- EFI_PHYSICAL_ADDRESS EfiMemoryBottom;
- EFI_PHYSICAL_ADDRESS EfiFreeMemoryTop;
- EFI_PHYSICAL_ADDRESS EfiFreeMemoryBottom;
- EFI_PHYSICAL_ADDRESS EfiEndOfHobList;
-} EFI_HOB_HANDOFF_INFO_TABLE;
-
-//
-// Memory Descriptor HOB
-//
-#define EFI_HOB_TYPE_MEMORY_ALLOCATION 0x0002
-
-typedef struct {
- EFI_GUID Name;
- EFI_PHYSICAL_ADDRESS MemoryBaseAddress;
- UINT64 MemoryLength;
- EFI_MEMORY_TYPE MemoryType;
- UINT8 Reserved[4];
-} EFI_HOB_MEMORY_ALLOCATION_HEADER;
-
-typedef struct {
- EFI_HOB_GENERIC_HEADER Header;
- EFI_HOB_MEMORY_ALLOCATION_HEADER AllocDescriptor;
- //
- // Additional data pertaining to the "Name" Guid memory
- // may go here.
- //
-} EFI_HOB_MEMORY_ALLOCATION;
-
-typedef struct {
- EFI_HOB_GENERIC_HEADER Header;
- EFI_HOB_MEMORY_ALLOCATION_HEADER AllocDescriptor;
-} EFI_HOB_MEMORY_ALLOCATION_BSP_STORE;
-
-typedef struct {
- EFI_HOB_GENERIC_HEADER Header;
- EFI_HOB_MEMORY_ALLOCATION_HEADER AllocDescriptor;
-} EFI_HOB_MEMORY_ALLOCATION_STACK;
-
-typedef struct {
- EFI_HOB_GENERIC_HEADER Header;
- EFI_HOB_MEMORY_ALLOCATION_HEADER MemoryAllocationHeader;
- EFI_GUID ModuleName;
- EFI_PHYSICAL_ADDRESS EntryPoint;
-} EFI_HOB_MEMORY_ALLOCATION_MODULE;
-
-#define EFI_HOB_TYPE_RESOURCE_DESCRIPTOR 0x0003
-
-typedef UINT32 EFI_RESOURCE_TYPE;
-
-#define EFI_RESOURCE_SYSTEM_MEMORY 0
-#define EFI_RESOURCE_MEMORY_MAPPED_IO 1
-#define EFI_RESOURCE_IO 2
-#define EFI_RESOURCE_FIRMWARE_DEVICE 3
-#define EFI_RESOURCE_MEMORY_MAPPED_IO_PORT 4
-#define EFI_RESOURCE_MEMORY_RESERVED 5
-#define EFI_RESOURCE_IO_RESERVED 6
-#define EFI_RESOURCE_MAX_MEMORY_TYPE 7
-
-typedef UINT32 EFI_RESOURCE_ATTRIBUTE_TYPE;
-
-#define EFI_RESOURCE_ATTRIBUTE_PRESENT 0x00000001
-#define EFI_RESOURCE_ATTRIBUTE_INITIALIZED 0x00000002
-#define EFI_RESOURCE_ATTRIBUTE_TESTED 0x00000004
-#define EFI_RESOURCE_ATTRIBUTE_SINGLE_BIT_ECC 0x00000008
-#define EFI_RESOURCE_ATTRIBUTE_MULTIPLE_BIT_ECC 0x00000010
-#define EFI_RESOURCE_ATTRIBUTE_ECC_RESERVED_1 0x00000020
-#define EFI_RESOURCE_ATTRIBUTE_ECC_RESERVED_2 0x00000040
-#define EFI_RESOURCE_ATTRIBUTE_READ_PROTECTED 0x00000080
-#define EFI_RESOURCE_ATTRIBUTE_WRITE_PROTECTED 0x00000100
-#define EFI_RESOURCE_ATTRIBUTE_EXECUTION_PROTECTED 0x00000200
-#define EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE 0x00000400
-#define EFI_RESOURCE_ATTRIBUTE_WRITE_COMBINEABLE 0x00000800
-#define EFI_RESOURCE_ATTRIBUTE_WRITE_THROUGH_CACHEABLE 0x00001000
-#define EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE 0x00002000
-#define EFI_RESOURCE_ATTRIBUTE_16_BIT_IO 0x00004000
-#define EFI_RESOURCE_ATTRIBUTE_32_BIT_IO 0x00008000
-#define EFI_RESOURCE_ATTRIBUTE_64_BIT_IO 0x00010000
-#define EFI_RESOURCE_ATTRIBUTE_UNCACHED_EXPORTED 0x00020000
-
-typedef struct {
- EFI_HOB_GENERIC_HEADER Header;
- EFI_GUID Owner;
- EFI_RESOURCE_TYPE ResourceType;
- EFI_RESOURCE_ATTRIBUTE_TYPE ResourceAttribute;
- EFI_PHYSICAL_ADDRESS PhysicalStart;
- UINT64 ResourceLength;
-} EFI_HOB_RESOURCE_DESCRIPTOR;
-
-//
-// GUID Extension HOB
-// The HobLength is variable as it includes the GUID specific data.
-//
-#define EFI_HOB_TYPE_GUID_EXTENSION 0x0004
-
-typedef struct {
- EFI_HOB_GENERIC_HEADER Header;
- EFI_GUID Name;
-
- //
- // Guid specific data goes here
- //
-} EFI_HOB_GUID_TYPE;
-
-//
-// Firmware Volume HOB
-//
-#define EFI_HOB_TYPE_FV 0x0005
-
-typedef struct {
- EFI_HOB_GENERIC_HEADER Header;
- EFI_PHYSICAL_ADDRESS BaseAddress;
- UINT64 Length;
-} EFI_HOB_FIRMWARE_VOLUME;
-
-//
-// CPU HOB
-//
-#define EFI_HOB_TYPE_CPU 0x0006
-
-typedef struct {
- EFI_HOB_GENERIC_HEADER Header;
- UINT8 SizeOfMemorySpace;
- UINT8 SizeOfIoSpace;
- UINT8 Reserved[6];
-} EFI_HOB_CPU;
-
-//
-// PEI Core Memory Pool HOB
-// The HobLength is variable as the HOB contains pool allocations by
-// the PeiServices AllocatePool function
-//
-#define EFI_HOB_TYPE_PEI_MEMORY_POOL 0x0007
-
-typedef struct {
- EFI_HOB_GENERIC_HEADER Header;
-} EFI_HOB_MEMORY_POOL;
-
-//
-// Capsule volume HOB -- identical to a firmware volume
-//
-#define EFI_HOB_TYPE_CV 0x0008
-
-typedef struct {
- EFI_HOB_GENERIC_HEADER Header;
- EFI_PHYSICAL_ADDRESS BaseAddress;
- UINT64 Length;
-} EFI_HOB_CAPSULE_VOLUME;
-
-#define EFI_HOB_TYPE_UNUSED 0xFFFE
-
-//
-// Union of all the possible HOB Types
-//
-typedef union {
- EFI_HOB_GENERIC_HEADER *Header;
- EFI_HOB_HANDOFF_INFO_TABLE *HandoffInformationTable;
- EFI_HOB_MEMORY_ALLOCATION *MemoryAllocation;
- EFI_HOB_MEMORY_ALLOCATION_BSP_STORE *MemoryAllocationBspStore;
- EFI_HOB_MEMORY_ALLOCATION_STACK *MemoryAllocationStack;
- EFI_HOB_MEMORY_ALLOCATION_MODULE *MemoryAllocationModule;
- EFI_HOB_RESOURCE_DESCRIPTOR *ResourceDescriptor;
- EFI_HOB_GUID_TYPE *Guid;
- EFI_HOB_FIRMWARE_VOLUME *FirmwareVolume;
- EFI_HOB_CPU *Cpu;
- EFI_HOB_MEMORY_POOL *Pool;
- EFI_HOB_CAPSULE_VOLUME *CapsuleVolume;
- UINT8 *Raw;
-} EFI_PEI_HOB_POINTERS;
-
-#define GET_HOB_TYPE(Hob) ((Hob).Header->HobType)
-#define GET_HOB_LENGTH(Hob) ((Hob).Header->HobLength)
-#define GET_NEXT_HOB(Hob) ((Hob).Raw + GET_HOB_LENGTH (Hob))
-#define END_OF_HOB_LIST(Hob) (GET_HOB_TYPE (Hob) == EFI_HOB_TYPE_END_OF_HOB_LIST)
-
-//
-// Get the data and data size field of GUID
-//
-#define GET_GUID_HOB_DATA(GuidHob) ((VOID *) (((UINT8 *) &((GuidHob)->Name)) + sizeof (EFI_GUID)))
-#define GET_GUID_HOB_DATA_SIZE(GuidHob) (((GuidHob)->Header).HobLength - sizeof (EFI_HOB_GUID_TYPE))
-
-#endif
diff --git a/MdePkg/Include/Common/InternalFormRepresentation.h b/MdePkg/Include/Common/InternalFormRepresentation.h
deleted file mode 100644
index bf3d824fbd..0000000000
--- a/MdePkg/Include/Common/InternalFormRepresentation.h
+++ /dev/null
@@ -1,422 +0,0 @@
-/** @file
- This file defines the encoding for the VFR (Visual Form Representation) language.
- IFR is primarily consumed by the EFI presentation engine, and produced by EFI
- internal application and drivers as well as all add-in card option-ROM drivers
-
- Copyright (c) 2006, Intel Corporation
- All rights reserved. This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php
-
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
- Module Name: InternalFormRepresentation.h
-
- @par Revision Reference:
- These definitions are from Human Interface Infrastructure Spec Version 0.92.
-
-**/
-
-#ifndef __EFI_INTERNAL_FORM_REPRESENTATION_H__
-#define __EFI_INTERNAL_FORM_REPRESENTATION_H__
-
-//
-// The following types are currently defined:
-//
-typedef UINT32 RELOFST;
-typedef CHAR16 *EFI_STRING;
-
-//
-// IFR Op codes
-//
-#define EFI_IFR_FORM_OP 0x01
-#define EFI_IFR_SUBTITLE_OP 0x02
-#define EFI_IFR_TEXT_OP 0x03
-#define EFI_IFR_GRAPHIC_OP 0x04
-#define EFI_IFR_ONE_OF_OP 0x05
-#define EFI_IFR_CHECKBOX_OP 0x06
-#define EFI_IFR_NUMERIC_OP 0x07
-#define EFI_IFR_PASSWORD_OP 0x08
-#define EFI_IFR_ONE_OF_OPTION_OP 0x09 // ONEOF OPTION field
-#define EFI_IFR_SUPPRESS_IF_OP 0x0A
-#define EFI_IFR_END_FORM_OP 0x0B
-#define EFI_IFR_HIDDEN_OP 0x0C
-#define EFI_IFR_END_FORM_SET_OP 0x0D
-#define EFI_IFR_FORM_SET_OP 0x0E
-#define EFI_IFR_REF_OP 0x0F
-#define EFI_IFR_END_ONE_OF_OP 0x10
-#define EFI_IFR_END_OP EFI_IFR_END_ONE_OF_OP
-#define EFI_IFR_INCONSISTENT_IF_OP 0x11
-#define EFI_IFR_EQ_ID_VAL_OP 0x12
-#define EFI_IFR_EQ_ID_ID_OP 0x13
-#define EFI_IFR_EQ_ID_LIST_OP 0x14
-#define EFI_IFR_AND_OP 0x15
-#define EFI_IFR_OR_OP 0x16
-#define EFI_IFR_NOT_OP 0x17
-#define EFI_IFR_END_IF_OP 0x18 // for endif of inconsistentif, suppressif, grayoutif
-#define EFI_IFR_GRAYOUT_IF_OP 0x19
-#define EFI_IFR_DATE_OP 0x1A
-#define EFI_IFR_TIME_OP 0x1B
-#define EFI_IFR_STRING_OP 0x1C
-#define EFI_IFR_LABEL_OP 0x1D
-#define EFI_IFR_SAVE_DEFAULTS_OP 0x1E
-#define EFI_IFR_RESTORE_DEFAULTS_OP 0x1F
-#define EFI_IFR_BANNER_OP 0x20
-#define EFI_IFR_INVENTORY_OP 0x21
-#define EFI_IFR_EQ_VAR_VAL_OP 0x22
-#define EFI_IFR_ORDERED_LIST_OP 0x23
-#define EFI_IFR_VARSTORE_OP 0x24
-#define EFI_IFR_VARSTORE_SELECT_OP 0x25
-#define EFI_IFR_VARSTORE_SELECT_PAIR_OP 0x26
-#define EFI_IFR_TRUE_OP 0x27
-#define EFI_IFR_FALSE_OP 0x28
-#define EFI_IFR_GT_OP 0x29
-#define EFI_IFR_GE_OP 0x2A
-#define EFI_IFR_OEM_DEFINED_OP 0x2B
-#define EFI_IFR_LAST_OPCODE EFI_IFR_OEM_DEFINED_OP
-#define EFI_IFR_OEM_OP 0xFE
-#define EFI_IFR_NV_ACCESS_COMMAND 0xFF
-
-//
-// Define values for the flags fields in some VFR opcodes. These are
-// bitmasks.
-//
-#define EFI_IFR_FLAG_DEFAULT 0x01
-#define EFI_IFR_FLAG_MANUFACTURING 0x02
-#define EFI_IFR_FLAG_INTERACTIVE 0x04
-#define EFI_IFR_FLAG_NV_ACCESS 0x08
-#define EFI_IFR_FLAG_RESET_REQUIRED 0x10
-#define EFI_IFR_FLAG_LATE_CHECK 0x20
-
-#define EFI_NON_DEVICE_CLASS 0x00 // Useful when you do not want something in the Device Manager
-#define EFI_DISK_DEVICE_CLASS 0x01
-#define EFI_VIDEO_DEVICE_CLASS 0x02
-#define EFI_NETWORK_DEVICE_CLASS 0x04
-#define EFI_INPUT_DEVICE_CLASS 0x08
-#define EFI_ON_BOARD_DEVICE_CLASS 0x10
-#define EFI_OTHER_DEVICE_CLASS 0x20
-
-#define EFI_SETUP_APPLICATION_SUBCLASS 0x00
-#define EFI_GENERAL_APPLICATION_SUBCLASS 0x01
-#define EFI_FRONT_PAGE_SUBCLASS 0x02
-#define EFI_SINGLE_USE_SUBCLASS 0x03 // Used to display a single entity and then exit
-
-//
-// Used to flag dynamically created op-codes. This is meaningful to the IFR Library set
-// and the browser since we need to distinguish between compiled NV map data and created data.
-// We do not allow new entries to be created in the NV map dynamically however we still need
-// to display this information correctly. To dynamically create op-codes and assume that their
-// data will be saved, ensure that the NV starting location they refer to is pre-defined in the
-// NV map.
-//
-#define EFI_IFR_FLAG_CREATED 128
-
-#pragma pack(1)
-//
-// IFR Structure definitions
-//
-typedef struct {
- UINT8 OpCode;
- UINT8 Length;
-} EFI_IFR_OP_HEADER;
-
-typedef struct {
- EFI_IFR_OP_HEADER Header;
- EFI_GUID Guid;
- STRING_REF FormSetTitle;
- STRING_REF Help;
- EFI_PHYSICAL_ADDRESS CallbackHandle;
- UINT16 Class;
- UINT16 SubClass;
- UINT16 NvDataSize; // set once, size of the NV data as defined in the script
-} EFI_IFR_FORM_SET;
-
-typedef struct {
- EFI_IFR_OP_HEADER Header;
- UINT16 FormId;
- STRING_REF FormTitle;
-} EFI_IFR_FORM;
-
-typedef struct {
- EFI_IFR_OP_HEADER Header;
- UINT16 LabelId;
-} EFI_IFR_LABEL;
-
-typedef struct {
- EFI_IFR_OP_HEADER Header;
- STRING_REF SubTitle;
-} EFI_IFR_SUBTITLE;
-
-typedef struct {
- EFI_IFR_OP_HEADER Header;
- STRING_REF Help;
- STRING_REF Text;
- STRING_REF TextTwo;
- UINT8 Flags; // This is included solely for purposes of interactive/dynamic support.
- UINT16 Key; // Value to be passed to caller to identify this particular op-code
-} EFI_IFR_TEXT;
-
-//
-// goto
-//
-typedef struct {
- EFI_IFR_OP_HEADER Header;
- UINT16 FormId;
- STRING_REF Prompt;
- STRING_REF Help; // The string Token for the context-help
- UINT8 Flags; // This is included solely for purposes of interactive/dynamic support.
- UINT16 Key; // Value to be passed to caller to identify this particular op-code
-} EFI_IFR_REF;
-
-typedef struct {
- EFI_IFR_OP_HEADER Header;
-} EFI_IFR_END_FORM;
-
-typedef struct {
- EFI_IFR_OP_HEADER Header;
-} EFI_IFR_END_FORM_SET;
-
-//
-// Also notice that the IFR_ONE_OF and IFR_CHECK_BOX are identical in structure......code assumes this to be true, if this ever
-// changes we need to revisit the InitializeTagStructures code
-//
-typedef struct {
- EFI_IFR_OP_HEADER Header;
- UINT16 QuestionId; // The ID designating what the question is about...sucked in from a #define, likely in the form of a variable name
- UINT8 Width; // The Size of the Data being saved
- STRING_REF Prompt; // The String Token for the Prompt
- STRING_REF Help; // The string Token for the context-help
-} EFI_IFR_ONE_OF;
-
-typedef struct {
- EFI_IFR_OP_HEADER Header;
- UINT16 QuestionId; // The offset in NV for storage of the data
- UINT8 MaxEntries; // The maximum number of options in the ordered list (=size of NVStore)
- STRING_REF Prompt; // The string token for the prompt
- STRING_REF Help; // The string token for the context-help
-} EFI_IFR_ORDERED_LIST;
-
-typedef struct {
- EFI_IFR_OP_HEADER Header;
- UINT16 QuestionId; // The ID designating what the question is about...sucked in from a #define, likely in the form of a variable name
- UINT8 Width; // The Size of the Data being saved
- STRING_REF Prompt; // The String Token for the Prompt
- STRING_REF Help; // The string Token for the context-help
- UINT8 Flags; // For now, if non-zero, means that it is the default option, - further definition likely
- UINT16 Key; // Value to be passed to caller to identify this particular op-code
-} EFI_IFR_CHECKBOX, EFI_IFR_CHECK_BOX;
-
-typedef struct {
- EFI_IFR_OP_HEADER Header;
- STRING_REF Option; // The string token describing the option
- UINT16 Value; // The value associated with this option that is stored in the NVRAM if chosen
- UINT8 Flags; // For now, if non-zero, means that it is the default option, - further definition likely above
- UINT16 Key; // Value to be passed to caller to identify this particular op-code
-} EFI_IFR_ONE_OF_OPTION;
-
-typedef struct {
- EFI_IFR_OP_HEADER Header;
- UINT16 QuestionId; // The ID designating what the question is about...sucked in from a #define, likely in the form of a variable name
- UINT8 Width; // The Size of the Data being saved
- STRING_REF Prompt; // The String Token for the Prompt
- STRING_REF Help; // The string Token for the context-help
- UINT8 Flags; // This is included solely for purposes of interactive/dynamic support.
- UINT16 Key; // Value to be passed to caller to identify this particular op-code
- UINT16 Minimum;
- UINT16 Maximum;
- UINT16 Step; // If step is 0, then manual input is specified, otherwise, left/right arrow selection is called for
- UINT16 Default;
-} EFI_IFR_NUMERIC;
-
-//
-// There is an interesting twist with regards to Time and Date. This is one of the few items which can accept input from
-// a user, however may or may not need to use storage in the NVRAM space. The decided method for determining if NVRAM space
-// will be used (only for a TimeOp or DateOp) is: If .QuestionId == 0 && .Width == 0 (normally an impossibility) then use system
-// resources to store the data away and not NV resources. In other words, the setup engine will call gRT->SetTime, and gRT->SetDate
-// for the saving of data, and the values displayed will be from the gRT->GetXXXX series of calls.
-//
-typedef struct {
- EFI_IFR_NUMERIC Hour;
- EFI_IFR_NUMERIC Minute;
- EFI_IFR_NUMERIC Second;
-} EFI_IFR_TIME;
-
-typedef struct {
- EFI_IFR_NUMERIC Year;
- EFI_IFR_NUMERIC Month;
- EFI_IFR_NUMERIC Day;
-} EFI_IFR_DATE;
-
-typedef struct {
- EFI_IFR_OP_HEADER Header;
- UINT16 QuestionId; // The ID designating what the question is about...sucked in from a #define, likely in the form of a variable name
- UINT8 Width; // The Size of the Data being saved -- BUGBUG -- remove someday
- STRING_REF Prompt; // The String Token for the Prompt
- STRING_REF Help; // The string Token for the context-help
- UINT8 Flags; // This is included solely for purposes of interactive/dynamic support.
- UINT16 Key; // Value to be passed to caller to identify this particular op-code
- UINT8 MinSize; // Minimum allowable sized password
- UINT8 MaxSize; // Maximum allowable sized password
- UINT16 Encoding;
-} EFI_IFR_PASSWORD;
-
-typedef struct {
- EFI_IFR_OP_HEADER Header;
- UINT16 QuestionId; // The ID designating what the question is about...sucked in from a #define, likely in the form of a variable name
- UINT8 Width; // The Size of the Data being saved -- BUGBUG -- remove someday
- STRING_REF Prompt; // The String Token for the Prompt
- STRING_REF Help; // The string Token for the context-help
- UINT8 Flags; // This is included solely for purposes of interactive/dynamic support.
- UINT16 Key; // Value to be passed to caller to identify this particular op-code
- UINT8 MinSize; // Minimum allowable sized password
- UINT8 MaxSize; // Maximum allowable sized password
-} EFI_IFR_STRING;
-
-typedef struct {
- EFI_IFR_OP_HEADER Header;
-} EFI_IFR_END_ONE_OF;
-
-typedef struct {
- EFI_IFR_OP_HEADER Header;
- UINT16 Value;
- UINT16 Key;
-} EFI_IFR_HIDDEN;
-
-typedef struct {
- EFI_IFR_OP_HEADER Header;
- UINT8 Flags;
-} EFI_IFR_SUPPRESS;
-
-typedef struct {
- EFI_IFR_OP_HEADER Header;
- UINT8 Flags;
-} EFI_IFR_GRAY_OUT;
-
-typedef struct {
- EFI_IFR_OP_HEADER Header;
- STRING_REF Popup;
- UINT8 Flags;
-} EFI_IFR_INCONSISTENT;
-
-typedef struct {
- EFI_IFR_OP_HEADER Header;
- UINT16 QuestionId; // offset into variable storage
- UINT8 Width; // size of variable storage
- UINT16 Value; // value to compare against
-} EFI_IFR_EQ_ID_VAL;
-
-typedef struct {
- EFI_IFR_OP_HEADER Header;
- UINT16 QuestionId; // offset into variable storage
- UINT8 Width; // size of variable storage
- UINT16 ListLength;
- UINT16 ValueList[1];
-} EFI_IFR_EQ_ID_LIST;
-
-typedef struct {
- EFI_IFR_OP_HEADER Header;
- UINT16 QuestionId1; // offset into variable storage for first value to compare
- UINT8 Width; // size of variable storage (must be same for both)
- UINT16 QuestionId2; // offset into variable storage for second value to compare
-} EFI_IFR_EQ_ID_ID;
-
-typedef struct {
- EFI_IFR_OP_HEADER Header;
- UINT16 VariableId; // offset into variable storage
- UINT16 Value; // value to compare against
-} EFI_IFR_EQ_VAR_VAL;
-
-typedef struct {
- EFI_IFR_OP_HEADER Header;
-} EFI_IFR_AND;
-
-typedef struct {
- EFI_IFR_OP_HEADER Header;
-} EFI_IFR_OR;
-
-typedef struct {
- EFI_IFR_OP_HEADER Header;
-} EFI_IFR_NOT;
-
-typedef struct {
- EFI_IFR_OP_HEADER Header;
-} EFI_IFR_END_EXPR, EFI_IFR_END_IF;
-
-typedef struct {
- EFI_IFR_OP_HEADER Header;
- UINT16 FormId;
- STRING_REF Prompt;
- STRING_REF Help;
- UINT8 Flags;
- UINT16 Key;
-} EFI_IFR_SAVE_DEFAULTS;
-
-typedef struct {
- EFI_IFR_OP_HEADER Header;
- STRING_REF Help;
- STRING_REF Text;
- STRING_REF TextTwo; // optional text
-} EFI_IFR_INVENTORY;
-
-typedef struct {
- EFI_IFR_OP_HEADER Header;
- EFI_GUID Guid; // GUID for the variable
- UINT16 VarId; // variable store ID, as referenced elsewhere in the form
- UINT16 Size; // size of the variable storage
-} EFI_IFR_VARSTORE;
-
-typedef struct {
- EFI_IFR_OP_HEADER Header;
- UINT16 VarId; // variable store ID, as referenced elsewhere in the form
-} EFI_IFR_VARSTORE_SELECT;
-
-//
-// Used for the ideqid VFR statement where two variable stores may be referenced in the
-// same VFR statement.
-// A browser should treat this as an EFI_IFR_VARSTORE_SELECT statement and assume that all following
-// IFR opcodes use the VarId as defined here.
-//
-typedef struct {
- EFI_IFR_OP_HEADER Header;
- UINT16 VarId; // variable store ID, as referenced elsewhere in the form
- UINT16 SecondaryVarId; // variable store ID, as referenced elsewhere in the form
-} EFI_IFR_VARSTORE_SELECT_PAIR;
-
-typedef struct {
- EFI_IFR_OP_HEADER Header;
-} EFI_IFR_TRUE;
-
-typedef struct {
- EFI_IFR_OP_HEADER Header;
-} EFI_IFR_FALSE;
-
-typedef struct {
- EFI_IFR_OP_HEADER Header;
-} EFI_IFR_GT;
-
-typedef struct {
- EFI_IFR_OP_HEADER Header;
-} EFI_IFR_GE;
-
-//
-// Save defaults and restore defaults have same structure
-//
-#define EFI_IFR_RESTORE_DEFAULTS EFI_IFR_SAVE_DEFAULTS
-
-typedef struct {
- EFI_IFR_OP_HEADER Header;
- STRING_REF Title; // The string token for the banner title
- UINT16 LineNumber; // 1-based line number
- UINT8 Alignment; // left, center, or right-aligned
-} EFI_IFR_BANNER;
-
-#define EFI_IFR_BANNER_ALIGN_LEFT 0
-#define EFI_IFR_BANNER_ALIGN_CENTER 1
-#define EFI_IFR_BANNER_ALIGN_RIGHT 2
-#define EFI_IFR_BANNER_TIMEOUT 0xFF
-
-#pragma pack()
-
-#endif
diff --git a/MdePkg/Include/Common/Legacy16.h b/MdePkg/Include/Common/Legacy16.h
deleted file mode 100644
index 09bac9f035..0000000000
--- a/MdePkg/Include/Common/Legacy16.h
+++ /dev/null
@@ -1,310 +0,0 @@
-/** @file
- API between 16-bit Legacy BIOS and EFI
-
- We need to figure out what the 16-bit code is going to use to
- represent these data structures. Is a pointer SEG:OFF or 32-bit...
-
- Copyright (c) 2006, Intel Corporation
- All rights reserved. This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php
-
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
- Module Name: Legacy16.h
-
- @par Revision Reference:
- These definitions are from Compatibility Support Module Spec Version 0.96.
-
-**/
-
-#ifndef LEGACY_16_H_
-#define LEGACY_16_H_
-
-#define EFI_TO_LEGACY_MAJOR_VERSION 0x02
-#define EFI_TO_LEGACY_MINOR_VERSION 0x00
-
-#pragma pack(1)
-//
-// EFI Legacy to Legacy16 data
-// EFI_COMPATIBILITY16_TABLE has been moved to LegacyBios protocol defn file.
-//
-typedef struct {
- //
- // Memory map used to start up Legacy16 code
- //
- UINT32 BiosLessThan1MB;
- UINT32 HiPmmMemory;
- UINT32 HiPmmMemorySizeInBytes;
-
- UINT16 ReverseThunkCallSegment;
- UINT16 ReverseThunkCallOffset;
- UINT32 NumberE820Entries;
- UINT32 OsMemoryAbove1Mb;
- UINT32 ThunkStart;
- UINT32 ThunkSizeInBytes;
- UINT32 LowPmmMemory;
- UINT32 LowPmmMemorySizeInBytes;
-} EFI_TO_COMPATIBILITY16_INIT_TABLE;
-
-#pragma pack()
-//
-// Legacy16 Call types
-//
-typedef enum {
- Legacy16InitializeYourself = 0x0000,
- Legacy16UpdateBbs = 0x0001,
- Legacy16PrepareToBoot = 0x0002,
- Legacy16Boot = 0x0003,
- Legacy16RetrieveLastBootDevice= 0x0004,
- Legacy16DispatchOprom = 0x0005,
- Legacy16GetTableAddress = 0x0006,
- Legacy16SetKeyboardLeds = 0x0007,
- Legacy16InstallPciHandler = 0x0008,
-} EFI_COMPATIBILITY_FUNCTIONS;
-
-#define F0000Region 0x01
-#define E0000Region 0x02
-//
-// Legacy16 call prototypes
-// Input: AX = EFI_COMPATIBILITY16_FUNCTIONS for all functions.
-// Output: AX = Return status for all functions. It follows EFI error
-// codes.
-//
-// Legacy16InitializeYourself
-// Description: This is the first call to 16-bit code. It allows the
-// 16-bit to perform any internal initialization.
-// Input: ES:BX pointer to EFI_TO_COMPATIBILITY16_INIT_TABLE
-// Output:
-// Legacy16UpdateBbs
-// Description: The 16-bit code updates the BBS table for non-compliant
-// devices.
-// Input: ES:BX pointer to EFI_TO_COMPATIBILITY16_BOOT_TABLE
-// Output:
-// Legacy16PrepareToBoot
-// Description: This is the last call to 16-bit code where 0xE0000 -0xFFFFF
-// is read/write. 16-bit code does any final clean up.
-// Input: ES:BX pointer to EFI_TO_COMPATIBILITY16_BOOT_TABLE
-// Output:
-// Legacy16Boot
-// Description: Do INT19.
-// Input:
-// Output:
-// Legacy16RetrieveLastBootDevice
-// Description: Return the priority number of the device that booted.
-// Input:
-// Output: BX = priority number of the last attempted boot device.
-// Legacy16DispatchOprom
-// Description: Pass control to the specified OPROM. Allows the 16-bit
-// code to rehook INT 13,18 and/or 19 from non-BBS
-// compliant devices.
-// Input: ES:DI = Segment:Offset of PnPInstallationCheck
-// SI = OPROM segment. Offset assumed to be 3.
-// BH = PCI bus number.
-// BL = PCI device * 8 | PCI function.
-// Output: BX = Number of BBS non-compliant drives detected. Return
-// zero for BBS compliant devices.
-// Legacy16GetTableAddress
-// Description: Allocate an area in the 0xE0000-0xFFFFF region.
-// Input: BX = Allocation region.
-// 0x0 = Any region
-// Bit 0 = 0xF0000 region
-// Bit 1 = 0xE0000 region
-// Multiple bits can be set.
-// CX = Length in bytes requested
-// DX = Required address alignment
-// Bit mapped. First non-zero bit from right to left is
-// alignment.
-// Output: DS:BX is assigned region.
-// AX = EFI_OUT_OF_RESOURCES if request cannot be granted.
-// Legacy16SetKeyboardLeds
-// Description: Perform any special action when keyboard LEDS change.
-// Other code performs the LED change and updates standard
-// BDA locations. This is for non-standard operations.
-// Input: CL = LED status. 1 = set.
-// Bit 0 = Scroll lock
-// Bit 1 = Num lock
-// Bit 2 = Caps lock
-// Output:
-// Legacy16InstallPciHandler
-// Description: Provides 16-bit code a hook to establish an interrupt
-// handler for any PCI device requiring a PCI interrupt
-// but having no OPROM. This is called before interrupt
-// is assigned. 8259 will be disabled(even if sharded)
-// and PCI Interrupt Line unprogrammed. Other code will
-// program 8259 and PCI Interrupt Line.
-// Input: ES:BX Pointer to EFI_LEGACY_INSTALL_PCI_HANDLER strcture
-// Output:
-//
-typedef UINT8 SERIAL_MODE;
-typedef UINT8 PARALLEL_MODE;
-
-#pragma pack(1)
-
-#define DEVICE_SERIAL_MODE_NORMAL 0x00
-#define DEVICE_SERIAL_MODE_IRDA 0x01
-#define DEVICE_SERIAL_MODE_ASK_IR 0x02
-#define DEVICE_SERIAL_MODE_DUPLEX_HALF 0x00
-#define DEVICE_SERIAL_MODE_DUPLEX_FULL 0x10
-
-#define DEVICE_PARALLEL_MODE_MODE_OUTPUT_ONLY 0x00
-#define DEVICE_PARALLEL_MODE_MODE_BIDIRECTIONAL 0x01
-#define DEVICE_PARALLEL_MODE_MODE_EPP 0x02
-#define DEVICE_PARALLEL_MODE_MODE_ECP 0x03
-
-typedef struct {
- UINT16 Address;
- UINT8 Irq;
- SERIAL_MODE Mode;
-} DEVICE_PRODUCER_SERIAL;
-
-typedef struct {
- UINT16 Address;
- UINT8 Irq;
- UINT8 Dma;
- PARALLEL_MODE Mode;
-} DEVICE_PRODUCER_PARALLEL;
-
-typedef struct {
- UINT16 Address;
- UINT8 Irq;
- UINT8 Dma;
- UINT8 NumberOfFloppy;
-} DEVICE_PRODUCER_FLOPPY;
-
-typedef struct {
- UINT32 A20Kybd : 1;
- UINT32 A20Port90 : 1;
- UINT32 Reserved : 30;
-} LEGACY_DEVICE_FLAGS;
-
-typedef struct {
- DEVICE_PRODUCER_SERIAL Serial[4];
- DEVICE_PRODUCER_PARALLEL Parallel[3];
- DEVICE_PRODUCER_FLOPPY Floppy;
- UINT8 MousePresent;
- LEGACY_DEVICE_FLAGS Flags;
-} DEVICE_PRODUCER_DATA_HEADER;
-//
-// SMM Table definitions
-// SMM table has a header that provides the number of entries. Following
-// the header is a variable length amount of data.
-//
-
-#define STANDARD_IO 0x00
-#define STANDARD_MEMORY 0x01
-
-#define PORT_SIZE_8 0x00
-#define PORT_SIZE_16 0x01
-#define PORT_SIZE_32 0x02
-#define PORT_SIZE_64 0x03
-
-#define DATA_SIZE_8 0x00
-#define DATA_SIZE_16 0x01
-#define DATA_SIZE_32 0x02
-#define DATA_SIZE_64 0x03
-
-typedef struct {
- UINT16 Type : 3;
- UINT16 PortGranularity : 3;
- UINT16 DataGranularity : 3;
- UINT16 Reserved : 7;
-} SMM_ATTRIBUTES;
-
-#define INT15_D042 0x0000
-#define GET_USB_BOOT_INFO 0x0001
-#define DMI_PNP_50_57 0x0002
-
-#define STANDARD_OWNER 0x0
-#define OEM_OWNER 0x1
-
-typedef struct {
- UINT16 Function : 15;
- UINT16 Owner : 1;
-} SMM_FUNCTION;
-
-typedef struct {
- SMM_ATTRIBUTES SmmAttributes;
- SMM_FUNCTION SmmFunction;
- //
- // Data size depends upon SmmAttributes and ranges from 2 bytes to
- // 16 bytes
- //
- // bugbug how to do variable length Data
- //
- UINT8 SmmPort;
- UINT8 SmmData;
-} SMM_ENTRY;
-
-typedef struct {
- UINT16 NumSmmEntries;
- SMM_ENTRY SmmEntry;
-} SMM_TABLE;
-
-//
-// If MAX_IDE_CONTROLLER changes value 16-bit legacy code needs to change
-//
-#define MAX_IDE_CONTROLLER 8
-
-typedef struct {
- UINT16 MajorVersion;
- UINT16 MinorVersion;
-
- UINT32 AcpiTable; // 4 GB range
- UINT32 SmbiosTable; // 4 GB range
- UINT32 SmbiosTableLength;
-
- //
- // Legacy SIO state
- //
- DEVICE_PRODUCER_DATA_HEADER SioData;
-
- UINT16 DevicePathType;
- UINT16 PciIrqMask;
- UINT32 NumberE820Entries;
- //
- // Controller & Drive Identify[2] per controller information
- //
- HDD_INFO HddInfo[MAX_IDE_CONTROLLER];
- UINT32 NumberBbsEntries;
- UINT32 BbsTable;
- UINT32 SmmTable;
- UINT32 OsMemoryAbove1Mb;
- UINT32 UnconventionalDeviceTable;
-} EFI_TO_COMPATIBILITY16_BOOT_TABLE;
-
-typedef struct {
- UINT8 PciBus;
- UINT8 PciDeviceFun;
- UINT8 PciSegment;
- UINT8 PciClass;
- UINT8 PciSubclass;
- UINT8 PciInterface;
- UINT8 PrimaryIrq;
- UINT8 PrimaryReserved;
- UINT16 PrimaryControl;
- UINT16 PrimaryBase;
- UINT16 PrimaryBusMaster;
- UINT8 SecondaryIrq;
- UINT8 SecondaryReserved;
- UINT16 SecondaryControl;
- UINT16 SecondaryBase;
- UINT16 SecondaryBusMaster;
-} EFI_LEGACY_INSTALL_PCI_HANDLER;
-
-typedef struct {
- UINT16 PnPInstallationCheckSegment;
- UINT16 PnPInstallationCheckOffset;
- UINT16 OpromSegment;
- UINT8 PciBus;
- UINT8 PciDeviceFunction;
- UINT8 NumberBbsEntries;
- VOID *BbsTablePointer;
-
-} EFI_DISPATCH_OPROM_TABLE;
-
-#pragma pack()
-
-#endif
diff --git a/MdePkg/Include/Common/MultiPhase.h b/MdePkg/Include/Common/MultiPhase.h
deleted file mode 100644
index d9b72a4695..0000000000
--- a/MdePkg/Include/Common/MultiPhase.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/** @file
- This includes some definitions that will be used in both PEI and DXE phases.
-
- Copyright (c) 2006, Intel Corporation
- All rights reserved. This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php
-
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
- Module Name: MultiPhase.h
-
-**/
-
-#ifndef __MULTI_PHASE_H__
-#define __MULTI_PHASE_H__
-
-//
-// Needed EFI defines for PEI
-//
-typedef UINT64 EFI_PHYSICAL_ADDRESS;
-
-typedef enum {
- EfiReservedMemoryType,
- EfiLoaderCode,
- EfiLoaderData,
- EfiBootServicesCode,
- EfiBootServicesData,
- EfiRuntimeServicesCode,
- EfiRuntimeServicesData,
- EfiConventionalMemory,
- EfiUnusableMemory,
- EfiACPIReclaimMemory,
- EfiACPIMemoryNVS,
- EfiMemoryMappedIO,
- EfiMemoryMappedIOPortSpace,
- EfiPalCode,
- EfiMaxMemoryType
-} EFI_MEMORY_TYPE;
-
-typedef UINT32 EFI_STATUS_CODE_TYPE;
-typedef UINT32 EFI_STATUS_CODE_VALUE;
-
-typedef struct {
- UINT16 HeaderSize;
- UINT16 Size;
- EFI_GUID Type;
-} EFI_STATUS_CODE_DATA;
-
-typedef struct {
- UINT64 Signature;
- UINT32 Revision;
- UINT32 HeaderSize;
- UINT32 CRC32;
- UINT32 Reserved;
-} EFI_TABLE_HEADER;
-
-#define EFI_PAGE_SIZE 4096
-
-
-typedef VOID *EFI_HANDLE;
-typedef UINT16 EFI_HII_HANDLE;
-typedef UINT16 STRING_REF;
-typedef struct {
- INT16 Value;
- INT16 Exponent;
-} EFI_EXP_BASE10_DATA;
-
-//
-// Define macros to build data structure signatures from characters.
-//
-#define EFI_SIGNATURE_16(A, B) ((A) | (B << 8))
-#define EFI_SIGNATURE_32(A, B, C, D) (EFI_SIGNATURE_16 (A, B) | (EFI_SIGNATURE_16 (C, D) << 16))
-#define EFI_SIGNATURE_64(A, B, C, D, E, F, G, H) \
- (EFI_SIGNATURE_32 (A, B, C, D) | ((UINT64) (EFI_SIGNATURE_32 (E, F, G, H)) << 32))
-
-
-#include <Protocol/DevicePath.h>
-
-#endif
diff --git a/MdePkg/Include/Common/PeCoffLoaderImageContext.h b/MdePkg/Include/Common/PeCoffLoaderImageContext.h
deleted file mode 100644
index b2519ea46d..0000000000
--- a/MdePkg/Include/Common/PeCoffLoaderImageContext.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/** @file
- Important data type defined used for Memory Only PE COFF loader.
-
- Copyright (c) 2007, Intel Corporation
- All rights reserved. This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php
-
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-**/
-
-#ifndef __PECOFFLOADER_IMAGE_CONTEXT_H
-#define __PECOFFLOADER_IMAGE_CONTEXT_H
-
-//
-// PE/COFF Loader Read Function passed in by caller
-//
-typedef
-RETURN_STATUS
-(EFIAPI *PE_COFF_LOADER_READ_FILE) (
- IN VOID *FileHandle,
- IN UINTN FileOffset,
- IN OUT UINTN *ReadSize,
- OUT VOID *Buffer
- );
-
-//
-// Context structure used while PE/COFF image is being loaded and relocated
-//
-typedef struct {
- PHYSICAL_ADDRESS ImageAddress;
- UINT64 ImageSize;
- PHYSICAL_ADDRESS DestinationAddress;
- PHYSICAL_ADDRESS EntryPoint;
- PE_COFF_LOADER_READ_FILE ImageRead;
- VOID *Handle;
- VOID *FixupData;
- UINT32 SectionAlignment;
- UINT32 PeCoffHeaderOffset;
- UINT32 DebugDirectoryEntryRva;
- VOID *CodeView;
- CHAR8 *PdbPointer;
- UINTN SizeOfHeaders;
- UINT32 ImageCodeMemoryType;
- UINT32 ImageDataMemoryType;
- UINT32 ImageError;
- UINTN FixupDataSize;
- UINT16 Machine;
- UINT16 ImageType;
- BOOLEAN RelocationsStripped;
- BOOLEAN IsTeImage;
-} PE_COFF_LOADER_IMAGE_CONTEXT;
-
-#endif
diff --git a/MdePkg/Include/Common/StatusCode.h b/MdePkg/Include/Common/StatusCode.h
deleted file mode 100644
index af23a0ae11..0000000000
--- a/MdePkg/Include/Common/StatusCode.h
+++ /dev/null
@@ -1,940 +0,0 @@
-/** @file
- Status Code Definitions, according to Intel Platform Innovation Framework
- for EFI Status Codes Specification
-
- The file is divided into sections for ease of use.
-
-<pre>
- Section: Contents:
- 1 General Status Code Definitions
- 2 Class definitions
- 3 Computing Unit Subclasses, Progress and Error Codes
- 4 Peripheral Subclasses, Progress and Error Codes.
- 5 IO Bus Subclasses, Progress and Error Codes.
- 6 Software Subclasses, Progress and Error Codes.
- 7 Debug Codes
-</pre>
-
- Copyright (c) 2006 - 2007, Intel Corporation
- All rights reserved. This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php
-
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
- Module Name: StatusCode.h
-
- @par Revision Reference:
- Version 0.92.
-
-**/
-
-#ifndef _EFI_STATUS_CODE_H_
-#define _EFI_STATUS_CODE_H_
-
-
-//
-// /////////////////////////////////////////////////////////////////////////////
-// Section 1
-///////////////////////////////////////////////////////////////////////////////
-
-//
-// A Status Code Type is made up of the code type and severity
-// All values masked by EFI_STATUS_CODE_RESERVED_MASK are
-// reserved for use by this specification.
-//
-#define EFI_STATUS_CODE_TYPE_MASK 0x000000FF
-#define EFI_STATUS_CODE_SEVERITY_MASK 0xFF000000
-#define EFI_STATUS_CODE_RESERVED_MASK 0x00FFFF00
-
-//
-// Definition of code types, all other values masked by
-// EFI_STATUS_CODE_TYPE_MASK are reserved for use by
-// this specification.
-//
-#define EFI_PROGRESS_CODE 0x00000001
-#define EFI_ERROR_CODE 0x00000002
-#define EFI_DEBUG_CODE 0x00000003
-
-//
-// Definitions of severities, all other values masked by
-// EFI_STATUS_CODE_SEVERITY_MASK are reserved for use by
-// this specification.
-//
-#define EFI_ERROR_MINOR 0x40000000
-#define EFI_ERROR_MAJOR 0x80000000
-#define EFI_ERROR_UNRECOVERED 0x90000000
-#define EFI_ERROR_UNCONTAINED 0xA0000000
-
-//
-// A Status Code Value is made up of the class, subclass, and
-// an operation. Classes, subclasses, and operations are defined
-// in the following sections.
-//
-#define EFI_STATUS_CODE_CLASS_MASK 0xFF000000
-#define EFI_STATUS_CODE_SUBCLASS_MASK 0x00FF0000
-#define EFI_STATUS_CODE_OPERATION_MASK 0x0000FFFF
-
-//
-// Data Hub Status Code class record definition
-//
-typedef struct {
- EFI_STATUS_CODE_TYPE CodeType;
- EFI_STATUS_CODE_VALUE Value;
- UINT32 Instance;
- EFI_GUID CallerId;
- EFI_STATUS_CODE_DATA Data;
-} DATA_HUB_STATUS_CODE_DATA_RECORD;
-
-//
-// /////////////////////////////////////////////////////////////////////////////
-// Section 2
-///////////////////////////////////////////////////////////////////////////////
-//
-// Class definitions
-// Values of 4-127 are reserved for future use by this
-// specification.
-// Values in the range 128-255 are reserved for OEM use.
-//
-#define EFI_COMPUTING_UNIT 0x00000000
-#define EFI_PERIPHERAL 0x01000000
-#define EFI_IO_BUS 0x02000000
-#define EFI_SOFTWARE 0x03000000
-
-//
-// General partitioning scheme for Progress and Error Codes are
-// 0x0000-0x0FFF - Shared by all sub-classes in a given class
-// 0x1000-0x7FFF - Subclass Specific
-// 0x8000-0xFFFF - OEM specific
-//
-#define EFI_SUBCLASS_SPECIFIC 0x1000
-#define EFI_OEM_SPECIFIC 0x8000
-
-//
-// /////////////////////////////////////////////////////////////////////////////
-// Section 3
-///////////////////////////////////////////////////////////////////////////////
-//
-// Computing Unit Subclass definitions.
-// Values of 7-127 are reserved for future use by this
-// specification.
-// Values of 128-255 are reserved for OEM use.
-//
-#define EFI_COMPUTING_UNIT_UNSPECIFIED (EFI_COMPUTING_UNIT | 0x00000000)
-#define EFI_COMPUTING_UNIT_HOST_PROCESSOR (EFI_COMPUTING_UNIT | 0x00010000)
-#define EFI_COMPUTING_UNIT_FIRMWARE_PROCESSOR (EFI_COMPUTING_UNIT | 0x00020000)
-#define EFI_COMPUTING_UNIT_IO_PROCESSOR (EFI_COMPUTING_UNIT | 0x00030000)
-#define EFI_COMPUTING_UNIT_CACHE (EFI_COMPUTING_UNIT | 0x00040000)
-#define EFI_COMPUTING_UNIT_MEMORY (EFI_COMPUTING_UNIT | 0x00050000)
-#define EFI_COMPUTING_UNIT_CHIPSET (EFI_COMPUTING_UNIT | 0x00060000)
-
-//
-// Computing Unit Class Progress Code definitions.
-// These are shared by all subclasses.
-//
-#define EFI_CU_PC_INIT_BEGIN 0x00000000
-#define EFI_CU_PC_INIT_END 0x00000001
-
-//
-// Computing Unit Unspecified Subclass Progress Code definitions.
-//
-//
-// Computing Unit Host Processor Subclass Progress Code definitions.
-//
-#define EFI_CU_HP_PC_POWER_ON_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000000)
-#define EFI_CU_HP_PC_CACHE_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000001)
-#define EFI_CU_HP_PC_RAM_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000002)
-#define EFI_CU_HP_PC_MEMORY_CONTROLLER_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000003)
-#define EFI_CU_HP_PC_IO_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000004)
-#define EFI_CU_HP_PC_BSP_SELECT (EFI_SUBCLASS_SPECIFIC | 0x00000005)
-#define EFI_CU_HP_PC_BSP_RESELECT (EFI_SUBCLASS_SPECIFIC | 0x00000006)
-#define EFI_CU_HP_PC_AP_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000007)
-#define EFI_CU_HP_PC_SMM_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000008)
-
-//
-// Computing Unit Firmware Processor Subclass Progress Code definitions.
-//
-//
-// Computing Unit IO Processor Subclass Progress Code definitions.
-//
-//
-// Computing Unit Cache Subclass Progress Code definitions.
-//
-#define EFI_CU_CACHE_PC_PRESENCE_DETECT (EFI_SUBCLASS_SPECIFIC | 0x00000000)
-#define EFI_CU_CACHE_PC_CONFIGURATION (EFI_SUBCLASS_SPECIFIC | 0x00000001)
-
-//
-// Computing Unit Memory Subclass Progress Code definitions.
-//
-#define EFI_CU_MEMORY_PC_SPD_READ (EFI_SUBCLASS_SPECIFIC | 0x00000000)
-#define EFI_CU_MEMORY_PC_PRESENCE_DETECT (EFI_SUBCLASS_SPECIFIC | 0x00000001)
-#define EFI_CU_MEMORY_PC_TIMING (EFI_SUBCLASS_SPECIFIC | 0x00000002)
-#define EFI_CU_MEMORY_PC_CONFIGURING (EFI_SUBCLASS_SPECIFIC | 0x00000003)
-#define EFI_CU_MEMORY_PC_OPTIMIZING (EFI_SUBCLASS_SPECIFIC | 0x00000004)
-#define EFI_CU_MEMORY_PC_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000005)
-#define EFI_CU_MEMORY_PC_TEST (EFI_SUBCLASS_SPECIFIC | 0x00000006)
-
-//
-// Computing Unit Chipset Subclass Progress Code definitions.
-//
-//
-// Computing Unit Class Error Code definitions.
-// These are shared by all subclasses.
-//
-#define EFI_CU_EC_NON_SPECIFIC 0x00000000
-#define EFI_CU_EC_DISABLED 0x00000001
-#define EFI_CU_EC_NOT_SUPPORTED 0x00000002
-#define EFI_CU_EC_NOT_DETECTED 0x00000003
-#define EFI_CU_EC_NOT_CONFIGURED 0x00000004
-
-//
-// Computing Unit Unspecified Subclass Error Code definitions.
-//
-//
-// Computing Unit Host Processor Subclass Error Code definitions.
-//
-#define EFI_CU_HP_EC_INVALID_TYPE (EFI_SUBCLASS_SPECIFIC | 0x00000000)
-#define EFI_CU_HP_EC_INVALID_SPEED (EFI_SUBCLASS_SPECIFIC | 0x00000001)
-#define EFI_CU_HP_EC_MISMATCH (EFI_SUBCLASS_SPECIFIC | 0x00000002)
-#define EFI_CU_HP_EC_TIMER_EXPIRED (EFI_SUBCLASS_SPECIFIC | 0x00000003)
-#define EFI_CU_HP_EC_SELF_TEST (EFI_SUBCLASS_SPECIFIC | 0x00000004)
-#define EFI_CU_HP_EC_INTERNAL (EFI_SUBCLASS_SPECIFIC | 0x00000005)
-#define EFI_CU_HP_EC_THERMAL (EFI_SUBCLASS_SPECIFIC | 0x00000006)
-#define EFI_CU_HP_EC_LOW_VOLTAGE (EFI_SUBCLASS_SPECIFIC | 0x00000007)
-#define EFI_CU_HP_EC_HIGH_VOLTAGE (EFI_SUBCLASS_SPECIFIC | 0x00000008)
-#define EFI_CU_HP_EC_CACHE (EFI_SUBCLASS_SPECIFIC | 0x00000009)
-#define EFI_CU_HP_EC_MICROCODE_UPDATE (EFI_SUBCLASS_SPECIFIC | 0x0000000A)
-#define EFI_CU_HP_EC_CORRECTABLE (EFI_SUBCLASS_SPECIFIC | 0x0000000B)
-#define EFI_CU_HP_EC_UNCORRECTABLE (EFI_SUBCLASS_SPECIFIC | 0x0000000C)
-#define EFI_CU_HP_EC_NO_MICROCODE_UPDATE (EFI_SUBCLASS_SPECIFIC | 0x0000000D)
-
-//
-// Computing Unit Firmware Processor Subclass Error Code definitions.
-//
-#define EFI_CU_FP_EC_HARD_FAIL (EFI_SUBCLASS_SPECIFIC | 0x00000000)
-#define EFI_CU_FP_EC_SOFT_FAIL (EFI_SUBCLASS_SPECIFIC | 0x00000001)
-#define EFI_CU_FP_EC_COMM_ERROR (EFI_SUBCLASS_SPECIFIC | 0x00000002)
-
-//
-// Computing Unit IO Processor Subclass Error Code definitions.
-//
-//
-// Computing Unit Cache Subclass Error Code definitions.
-//
-#define EFI_CU_CACHE_EC_INVALID_TYPE (EFI_SUBCLASS_SPECIFIC | 0x00000000)
-#define EFI_CU_CACHE_EC_INVALID_SPEED (EFI_SUBCLASS_SPECIFIC | 0x00000001)
-#define EFI_CU_CACHE_EC_INVALID_SIZE (EFI_SUBCLASS_SPECIFIC | 0x00000002)
-#define EFI_CU_CACHE_EC_MISMATCH (EFI_SUBCLASS_SPECIFIC | 0x00000003)
-
-//
-// Computing Unit Memory Subclass Error Code definitions.
-//
-#define EFI_CU_MEMORY_EC_INVALID_TYPE (EFI_SUBCLASS_SPECIFIC | 0x00000000)
-#define EFI_CU_MEMORY_EC_INVALID_SPEED (EFI_SUBCLASS_SPECIFIC | 0x00000001)
-#define EFI_CU_MEMORY_EC_CORRECTABLE (EFI_SUBCLASS_SPECIFIC | 0x00000002)
-#define EFI_CU_MEMORY_EC_UNCORRECTABLE (EFI_SUBCLASS_SPECIFIC | 0x00000003)
-#define EFI_CU_MEMORY_EC_SPD_FAIL (EFI_SUBCLASS_SPECIFIC | 0x00000004)
-#define EFI_CU_MEMORY_EC_INVALID_SIZE (EFI_SUBCLASS_SPECIFIC | 0x00000005)
-#define EFI_CU_MEMORY_EC_MISMATCH (EFI_SUBCLASS_SPECIFIC | 0x00000006)
-#define EFI_CU_MEMORY_EC_S3_RESUME_FAIL (EFI_SUBCLASS_SPECIFIC | 0x00000007)
-#define EFI_CU_MEMORY_EC_UPDATE_FAIL (EFI_SUBCLASS_SPECIFIC | 0x00000008)
-#define EFI_CU_MEMORY_EC_NONE_DETECTED (EFI_SUBCLASS_SPECIFIC | 0x00000009)
-#define EFI_CU_MEMORY_EC_NONE_USEFUL (EFI_SUBCLASS_SPECIFIC | 0x0000000A)
-
-//
-// Computing Unit Chipset Subclass Error Code definitions.
-//
-
-///////////////////////////////////////////////////////////////////////////////
-// Section 4
-///////////////////////////////////////////////////////////////////////////////
-//
-// Peripheral Subclass definitions.
-// Values of 13-127 are reserved for future use by this
-// specification.
-// Values of 128-255 are reserved for OEM use.
-//
-#define EFI_PERIPHERAL_UNSPECIFIED (EFI_PERIPHERAL | 0x00000000)
-#define EFI_PERIPHERAL_KEYBOARD (EFI_PERIPHERAL | 0x00010000)
-#define EFI_PERIPHERAL_MOUSE (EFI_PERIPHERAL | 0x00020000)
-#define EFI_PERIPHERAL_LOCAL_CONSOLE (EFI_PERIPHERAL | 0x00030000)
-#define EFI_PERIPHERAL_REMOTE_CONSOLE (EFI_PERIPHERAL | 0x00040000)
-#define EFI_PERIPHERAL_SERIAL_PORT (EFI_PERIPHERAL | 0x00050000)
-#define EFI_PERIPHERAL_PARALLEL_PORT (EFI_PERIPHERAL | 0x00060000)
-#define EFI_PERIPHERAL_FIXED_MEDIA (EFI_PERIPHERAL | 0x00070000)
-#define EFI_PERIPHERAL_REMOVABLE_MEDIA (EFI_PERIPHERAL | 0x00080000)
-#define EFI_PERIPHERAL_AUDIO_INPUT (EFI_PERIPHERAL | 0x00090000)
-#define EFI_PERIPHERAL_AUDIO_OUTPUT (EFI_PERIPHERAL | 0x000A0000)
-#define EFI_PERIPHERAL_LCD_DEVICE (EFI_PERIPHERAL | 0x000B0000)
-#define EFI_PERIPHERAL_NETWORK (EFI_PERIPHERAL | 0x000C0000)
-
-//
-// Peripheral Class Progress Code definitions.
-// These are shared by all subclasses.
-//
-#define EFI_P_PC_INIT 0x00000000
-#define EFI_P_PC_RESET 0x00000001
-#define EFI_P_PC_DISABLE 0x00000002
-#define EFI_P_PC_PRESENCE_DETECT 0x00000003
-#define EFI_P_PC_ENABLE 0x00000004
-#define EFI_P_PC_RECONFIG 0x00000005
-#define EFI_P_PC_DETECTED 0x00000006
-
-//
-// Peripheral Class Unspecified Subclass Progress Code definitions.
-//
-//
-// Peripheral Class Keyboard Subclass Progress Code definitions.
-//
-#define EFI_P_KEYBOARD_PC_CLEAR_BUFFER (EFI_SUBCLASS_SPECIFIC | 0x00000000)
-#define EFI_P_KEYBOARD_PC_SELF_TEST (EFI_SUBCLASS_SPECIFIC | 0x00000001)
-
-//
-// Peripheral Class Mouse Subclass Progress Code definitions.
-//
-#define EFI_P_MOUSE_PC_SELF_TEST (EFI_SUBCLASS_SPECIFIC | 0x00000000)
-
-//
-// Peripheral Class Local Console Subclass Progress Code definitions.
-//
-//
-// Peripheral Class Remote Console Subclass Progress Code definitions.
-//
-//
-// Peripheral Class Serial Port Subclass Progress Code definitions.
-//
-#define EFI_P_SERIAL_PORT_PC_CLEAR_BUFFER (EFI_SUBCLASS_SPECIFIC | 0x00000000)
-
-//
-// Peripheral Class Parallel Port Subclass Progress Code definitions.
-//
-//
-// Peripheral Class Fixed Media Subclass Progress Code definitions.
-//
-//
-// Peripheral Class Removable Media Subclass Progress Code definitions.
-//
-//
-// Peripheral Class Audio Input Subclass Progress Code definitions.
-//
-//
-// Peripheral Class Audio Output Subclass Progress Code definitions.
-//
-//
-// Peripheral Class LCD Device Subclass Progress Code definitions.
-//
-//
-// Peripheral Class Network Subclass Progress Code definitions.
-//
-//
-// Peripheral Class Error Code definitions.
-// These are shared by all subclasses.
-//
-#define EFI_P_EC_NON_SPECIFIC 0x00000000
-#define EFI_P_EC_DISABLED 0x00000001
-#define EFI_P_EC_NOT_SUPPORTED 0x00000002
-#define EFI_P_EC_NOT_DETECTED 0x00000003
-#define EFI_P_EC_NOT_CONFIGURED 0x00000004
-#define EFI_P_EC_INTERFACE_ERROR 0x00000005
-#define EFI_P_EC_CONTROLLER_ERROR 0x00000006
-#define EFI_P_EC_INPUT_ERROR 0x00000007
-#define EFI_P_EC_OUTPUT_ERROR 0x00000008
-#define EFI_P_EC_RESOURCE_CONFLICT 0x00000009
-
-//
-// Peripheral Class Unspecified Subclass Error Code definitions.
-//
-//
-// Peripheral Class Keyboard Subclass Error Code definitions.
-//
-#define EFI_P_KEYBOARD_EC_LOCKED (EFI_SUBCLASS_SPECIFIC | 0x00000000)
-#define EFI_P_KEYBOARD_EC_STUCK_KEY (EFI_SUBCLASS_SPECIFIC | 0x00000001)
-
-//
-// Peripheral Class Mouse Subclass Error Code definitions.
-//
-#define EFI_P_MOUSE_EC_LOCKED (EFI_SUBCLASS_SPECIFIC | 0x00000000)
-
-//
-// Peripheral Class Local Console Subclass Error Code definitions.
-//
-//
-// Peripheral Class Remote Console Subclass Error Code definitions.
-//
-//
-// Peripheral Class Serial Port Subclass Error Code definitions.
-//
-//
-// Peripheral Class Parallel Port Subclass Error Code definitions.
-//
-//
-// Peripheral Class Fixed Media Subclass Error Code definitions.
-//
-//
-// Peripheral Class Removable Media Subclass Error Code definitions.
-//
-//
-// Peripheral Class Audio Input Subclass Error Code definitions.
-//
-//
-// Peripheral Class Audio Output Subclass Error Code definitions.
-//
-//
-// Peripheral Class LCD Device Subclass Error Code definitions.
-//
-//
-// Peripheral Class Network Subclass Error Code definitions.
-//
-
-///////////////////////////////////////////////////////////////////////////////
-// Section 5
-///////////////////////////////////////////////////////////////////////////////
-//
-// IO Bus Subclass definitions.
-// Values of 13-127 are reserved for future use by this
-// specification.
-// Values of 128-255 are reserved for OEM use.
-//
-#define EFI_IO_BUS_UNSPECIFIED (EFI_IO_BUS | 0x00000000)
-#define EFI_IO_BUS_PCI (EFI_IO_BUS | 0x00010000)
-#define EFI_IO_BUS_USB (EFI_IO_BUS | 0x00020000)
-#define EFI_IO_BUS_IBA (EFI_IO_BUS | 0x00030000)
-#define EFI_IO_BUS_AGP (EFI_IO_BUS | 0x00040000)
-#define EFI_IO_BUS_PC_CARD (EFI_IO_BUS | 0x00050000)
-#define EFI_IO_BUS_LPC (EFI_IO_BUS | 0x00060000)
-#define EFI_IO_BUS_SCSI (EFI_IO_BUS | 0x00070000)
-#define EFI_IO_BUS_ATA_ATAPI (EFI_IO_BUS | 0x00080000)
-#define EFI_IO_BUS_FC (EFI_IO_BUS | 0x00090000)
-#define EFI_IO_BUS_IP_NETWORK (EFI_IO_BUS | 0x000A0000)
-#define EFI_IO_BUS_SMBUS (EFI_IO_BUS | 0x000B0000)
-#define EFI_IO_BUS_I2C (EFI_IO_BUS | 0x000C0000)
-
-//
-// IO Bus Class Progress Code definitions.
-// These are shared by all subclasses.
-//
-#define EFI_IOB_PC_INIT 0x00000000
-#define EFI_IOB_PC_RESET 0x00000001
-#define EFI_IOB_PC_DISABLE 0x00000002
-#define EFI_IOB_PC_DETECT 0x00000003
-#define EFI_IOB_PC_ENABLE 0x00000004
-#define EFI_IOB_PC_RECONFIG 0x00000005
-#define EFI_IOB_PC_HOTPLUG 0x00000006
-
-//
-// IO Bus Class Unspecified Subclass Progress Code definitions.
-//
-//
-// IO Bus Class PCI Subclass Progress Code definitions.
-//
-#define EFI_IOB_PCI_PC_BUS_ENUM (EFI_SUBCLASS_SPECIFIC | 0x00000000)
-#define EFI_IOB_PCI_PC_RES_ALLOC (EFI_SUBCLASS_SPECIFIC | 0x00000001)
-#define EFI_IOB_PCI_PC_HPC_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000002)
-
-//
-// IO Bus Class USB Subclass Progress Code definitions.
-//
-//
-// IO Bus Class IBA Subclass Progress Code definitions.
-//
-//
-// IO Bus Class AGP Subclass Progress Code definitions.
-//
-//
-// IO Bus Class PC Card Subclass Progress Code definitions.
-//
-//
-// IO Bus Class LPC Subclass Progress Code definitions.
-//
-//
-// IO Bus Class SCSI Subclass Progress Code definitions.
-//
-//
-// IO Bus Class ATA/ATAPI Subclass Progress Code definitions.
-//
-#define EFI_IOB_ATA_BUS_SMART_ENABLE (EFI_SUBCLASS_SPECIFIC | 0x00000000)
-#define EFI_IOB_ATA_BUS_SMART_DISABLE (EFI_SUBCLASS_SPECIFIC | 0x00000001)
-#define EFI_IOB_ATA_BUS_SMART_OVERTHRESHOLD (EFI_SUBCLASS_SPECIFIC | 0x00000002)
-#define EFI_IOB_ATA_BUS_SMART_UNDERTHRESHOLD (EFI_SUBCLASS_SPECIFIC | 0x00000003)
-
-//
-// IO Bus Class FC Subclass Progress Code definitions.
-//
-//
-// IO Bus Class IP Network Subclass Progress Code definitions.
-//
-//
-// IO Bus Class SMBUS Subclass Progress Code definitions.
-//
-//
-// IO Bus Class I2C Subclass Progress Code definitions.
-//
-//
-// IO Bus Class Error Code definitions.
-// These are shared by all subclasses.
-//
-#define EFI_IOB_EC_NON_SPECIFIC 0x00000000
-#define EFI_IOB_EC_DISABLED 0x00000001
-#define EFI_IOB_EC_NOT_SUPPORTED 0x00000002
-#define EFI_IOB_EC_NOT_DETECTED 0x00000003
-#define EFI_IOB_EC_NOT_CONFIGURED 0x00000004
-#define EFI_IOB_EC_INTERFACE_ERROR 0x00000005
-#define EFI_IOB_EC_CONTROLLER_ERROR 0x00000006
-#define EFI_IOB_EC_READ_ERROR 0x00000007
-#define EFI_IOB_EC_WRITE_ERROR 0x00000008
-#define EFI_IOB_EC_RESOURCE_CONFLICT 0x00000009
-
-//
-// IO Bus Class Unspecified Subclass Error Code definitions.
-//
-//
-// IO Bus Class PCI Subclass Error Code definitions.
-//
-#define EFI_IOB_PCI_EC_PERR (EFI_SUBCLASS_SPECIFIC | 0x00000000)
-#define EFI_IOB_PCI_EC_SERR (EFI_SUBCLASS_SPECIFIC | 0x00000001)
-
-//
-// IO Bus Class USB Subclass Error Code definitions.
-//
-//
-// IO Bus Class IBA Subclass Error Code definitions.
-//
-//
-// IO Bus Class AGP Subclass Error Code definitions.
-//
-//
-// IO Bus Class PC Card Subclass Error Code definitions.
-//
-//
-// IO Bus Class LPC Subclass Error Code definitions.
-//
-//
-// IO Bus Class SCSI Subclass Error Code definitions.
-//
-//
-// IO Bus Class ATA/ATAPI Subclass Error Code definitions.
-//
-#define EFI_IOB_ATA_BUS_SMART_NOTSUPPORTED (EFI_SUBCLASS_SPECIFIC | 0x00000000)
-#define EFI_IOB_ATA_BUS_SMART_DISABLED (EFI_SUBCLASS_SPECIFIC | 0x00000001)
-
-//
-// IO Bus Class FC Subclass Error Code definitions.
-//
-//
-// IO Bus Class IP Network Subclass Error Code definitions.
-//
-//
-// IO Bus Class SMBUS Subclass Error Code definitions.
-//
-//
-// IO Bus Class I2C Subclass Error Code definitions.
-//
-
-///////////////////////////////////////////////////////////////////////////////
-// Section 6
-///////////////////////////////////////////////////////////////////////////////
-//
-// Software Subclass definitions.
-// Values of 20-127 are reserved for future use by this
-// specification.
-// Values of 128-255 are reserved for OEM use.
-//
-#define EFI_SOFTWARE_UNSPECIFIED (EFI_SOFTWARE | 0x00000000)
-#define EFI_SOFTWARE_SEC (EFI_SOFTWARE | 0x00010000)
-#define EFI_SOFTWARE_PEI_CORE (EFI_SOFTWARE | 0x00020000)
-#define EFI_SOFTWARE_PEI_MODULE (EFI_SOFTWARE | 0x00030000)
-#define EFI_SOFTWARE_DXE_CORE (EFI_SOFTWARE | 0x00040000)
-#define EFI_SOFTWARE_DXE_BS_DRIVER (EFI_SOFTWARE | 0x00050000)
-#define EFI_SOFTWARE_DXE_RT_DRIVER (EFI_SOFTWARE | 0x00060000)
-#define EFI_SOFTWARE_SMM_DRIVER (EFI_SOFTWARE | 0x00070000)
-#define EFI_SOFTWARE_EFI_APPLICATION (EFI_SOFTWARE | 0x00080000)
-#define EFI_SOFTWARE_EFI_OS_LOADER (EFI_SOFTWARE | 0x00090000)
-#define EFI_SOFTWARE_RT (EFI_SOFTWARE | 0x000A0000)
-#define EFI_SOFTWARE_AL (EFI_SOFTWARE | 0x000B0000)
-#define EFI_SOFTWARE_EBC_EXCEPTION (EFI_SOFTWARE | 0x000C0000)
-#define EFI_SOFTWARE_IA32_EXCEPTION (EFI_SOFTWARE | 0x000D0000)
-#define EFI_SOFTWARE_IPF_EXCEPTION (EFI_SOFTWARE | 0x000E0000)
-#define EFI_SOFTWARE_PEI_SERVICE (EFI_SOFTWARE | 0x000F0000)
-#define EFI_SOFTWARE_EFI_BOOT_SERVICE (EFI_SOFTWARE | 0x00100000)
-#define EFI_SOFTWARE_EFI_RUNTIME_SERVICE (EFI_SOFTWARE | 0x00110000)
-#define EFI_SOFTWARE_EFI_DXE_SERVICE (EFI_SOFTWARE | 0x00120000)
-#define EFI_SOFTWARE_X64_EXCEPTION (EFI_SOFTWARE | 0x00130000)
-
-//
-// Software Class Progress Code definitions.
-// These are shared by all subclasses.
-//
-#define EFI_SW_PC_INIT 0x00000000
-#define EFI_SW_PC_LOAD 0x00000001
-#define EFI_SW_PC_INIT_BEGIN 0x00000002
-#define EFI_SW_PC_INIT_END 0x00000003
-#define EFI_SW_PC_AUTHENTICATE_BEGIN 0x00000004
-#define EFI_SW_PC_AUTHENTICATE_END 0x00000005
-#define EFI_SW_PC_INPUT_WAIT 0x00000006
-#define EFI_SW_PC_USER_SETUP 0x00000007
-
-//
-// Software Class Unspecified Subclass Progress Code definitions.
-//
-//
-// Software Class SEC Subclass Progress Code definitions.
-//
-#define EFI_SW_SEC_PC_ENTRY_POINT (EFI_SUBCLASS_SPECIFIC | 0x00000000)
-#define EFI_SW_SEC_PC_HANDOFF_TO_NEXT (EFI_SUBCLASS_SPECIFIC | 0x00000001)
-
-//
-// Software Class PEI Core Subclass Progress Code definitions.
-//
-#define EFI_SW_PEI_CORE_PC_ENTRY_POINT (EFI_SUBCLASS_SPECIFIC | 0x00000000)
-#define EFI_SW_PEI_CORE_PC_HANDOFF_TO_NEXT (EFI_SUBCLASS_SPECIFIC | 0x00000001)
-#define EFI_SW_PEI_CORE_PC_RETURN_TO_LAST (EFI_SUBCLASS_SPECIFIC | 0x00000002)
-
-//
-// Software Class PEI Module Subclass Progress Code definitions.
-//
-#define EFI_SW_PEIM_PC_RECOVERY_BEGIN (EFI_SUBCLASS_SPECIFIC | 0x00000000)
-#define EFI_SW_PEIM_PC_CAPSULE_LOAD (EFI_SUBCLASS_SPECIFIC | 0x00000001)
-#define EFI_SW_PEIM_PC_CAPSULE_START (EFI_SUBCLASS_SPECIFIC | 0x00000002)
-#define EFI_SW_PEIM_PC_RECOVERY_USER (EFI_SUBCLASS_SPECIFIC | 0x00000003)
-#define EFI_SW_PEIM_PC_RECOVERY_AUTO (EFI_SUBCLASS_SPECIFIC | 0x00000004)
-
-//
-// Software Class DXE Core Subclass Progress Code definitions.
-//
-#define EFI_SW_DXE_CORE_PC_ENTRY_POINT (EFI_SUBCLASS_SPECIFIC | 0x00000000)
-#define EFI_SW_DXE_CORE_PC_HANDOFF_TO_NEXT (EFI_SUBCLASS_SPECIFIC | 0x00000001)
-#define EFI_SW_DXE_CORE_PC_RETURN_TO_LAST (EFI_SUBCLASS_SPECIFIC | 0x00000002)
-#define EFI_SW_DXE_CORE_PC_START_DRIVER (EFI_SUBCLASS_SPECIFIC | 0x00000003)
-
-//
-// Software Class DXE BS Driver Subclass Progress Code definitions.
-//
-#define EFI_SW_DXE_BS_PC_LEGACY_OPROM_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000000)
-#define EFI_SW_DXE_BS_PC_READY_TO_BOOT_EVENT (EFI_SUBCLASS_SPECIFIC | 0x00000001)
-#define EFI_SW_DXE_BS_PC_LEGACY_BOOT_EVENT (EFI_SUBCLASS_SPECIFIC | 0x00000002)
-#define EFI_SW_DXE_BS_PC_EXIT_BOOT_SERVICES_EVENT (EFI_SUBCLASS_SPECIFIC | 0x00000003)
-#define EFI_SW_DXE_BS_PC_VIRTUAL_ADDRESS_CHANGE_EVENT (EFI_SUBCLASS_SPECIFIC | 0x00000004)
-#define EFI_SW_DXE_BS_PC_BEGIN_CONNECTING_DRIVERS (EFI_SUBCLASS_SPECIFIC | 0x00000005)
-#define EFI_SW_DXE_BS_PC_VERIFYING_PASSWORD (EFI_SUBCLASS_SPECIFIC | 0x00000006)
-
-//
-// Software Class DXE RT Driver Subclass Progress Code definitions.
-//
-#define EFI_SW_DXE_RT_PC_S0 (EFI_SUBCLASS_SPECIFIC | 0x00000000)
-#define EFI_SW_DXE_RT_PC_S1 (EFI_SUBCLASS_SPECIFIC | 0x00000001)
-#define EFI_SW_DXE_RT_PC_S2 (EFI_SUBCLASS_SPECIFIC | 0x00000002)
-#define EFI_SW_DXE_RT_PC_S3 (EFI_SUBCLASS_SPECIFIC | 0x00000003)
-#define EFI_SW_DXE_RT_PC_S4 (EFI_SUBCLASS_SPECIFIC | 0x00000004)
-#define EFI_SW_DXE_RT_PC_S5 (EFI_SUBCLASS_SPECIFIC | 0x00000005)
-
-//
-// Software Class SMM Driver Subclass Progress Code definitions.
-//
-//
-// Software Class EFI Application Subclass Progress Code definitions.
-//
-//
-// Software Class EFI OS Loader Subclass Progress Code definitions.
-//
-//
-// Software Class EFI RT Subclass Progress Code definitions.
-//
-#define EFI_SW_RT_PC_ENTRY_POINT (EFI_SUBCLASS_SPECIFIC | 0x00000000)
-#define EFI_SW_RT_PC_HANDOFF_TO_NEXT (EFI_SUBCLASS_SPECIFIC | 0x00000001)
-#define EFI_SW_RT_PC_RETURN_TO_LAST (EFI_SUBCLASS_SPECIFIC | 0x00000002)
-
-//
-// Software Class EFI AL Subclass Progress Code definitions.
-//
-#define EFI_SW_AL_PC_ENTRY_POINT (EFI_SUBCLASS_SPECIFIC | 0x00000000)
-#define EFI_SW_AL_PC_RETURN_TO_LAST (EFI_SUBCLASS_SPECIFIC | 0x00000001)
-
-//
-// Software Class EBC Exception Subclass Progress Code definitions.
-//
-//
-// Software Class IA32 Exception Subclass Progress Code definitions.
-//
-//
-// Software Class X64 Exception Subclass Progress Code definitions.
-//
-//
-// Software Class IPF Exception Subclass Progress Code definitions.
-//
-//
-// Software Class PEI Services Subclass Progress Code definitions.
-//
-#define EFI_SW_PS_PC_INSTALL_PPI (EFI_SUBCLASS_SPECIFIC | 0x00000000)
-#define EFI_SW_PS_PC_REINSTALL_PPI (EFI_SUBCLASS_SPECIFIC | 0x00000001)
-#define EFI_SW_PS_PC_LOCATE_PPI (EFI_SUBCLASS_SPECIFIC | 0x00000002)
-#define EFI_SW_PS_PC_NOTIFY_PPI (EFI_SUBCLASS_SPECIFIC | 0x00000003)
-#define EFI_SW_PS_PC_GET_BOOT_MODE (EFI_SUBCLASS_SPECIFIC | 0x00000004)
-#define EFI_SW_PS_PC_SET_BOOT_MODE (EFI_SUBCLASS_SPECIFIC | 0x00000005)
-#define EFI_SW_PS_PC_GET_HOB_LIST (EFI_SUBCLASS_SPECIFIC | 0x00000006)
-#define EFI_SW_PS_PC_CREATE_HOB (EFI_SUBCLASS_SPECIFIC | 0x00000007)
-#define EFI_SW_PS_PC_FFS_FIND_NEXT_VOLUME (EFI_SUBCLASS_SPECIFIC | 0x00000008)
-#define EFI_SW_PS_PC_FFS_FIND_NEXT_FILE (EFI_SUBCLASS_SPECIFIC | 0x00000009)
-#define EFI_SW_PS_PC_FFS_FIND_SECTION_DATA (EFI_SUBCLASS_SPECIFIC | 0x0000000A)
-#define EFI_SW_PS_PC_INSTALL_PEI_MEMORY (EFI_SUBCLASS_SPECIFIC | 0x0000000B)
-#define EFI_SW_PS_PC_ALLOCATE_PAGES (EFI_SUBCLASS_SPECIFIC | 0x0000000C)
-#define EFI_SW_PS_PC_ALLOCATE_POOL (EFI_SUBCLASS_SPECIFIC | 0x0000000D)
-#define EFI_SW_PS_PC_COPY_MEM (EFI_SUBCLASS_SPECIFIC | 0x0000000E)
-#define EFI_SW_PS_PC_SET_MEM (EFI_SUBCLASS_SPECIFIC | 0x0000000F)
-
-//
-// Software Class EFI Boot Services Subclass Progress Code definitions.
-//
-#define EFI_SW_BS_PC_RAISE_TPL (EFI_SUBCLASS_SPECIFIC | 0x00000000)
-#define EFI_SW_BS_PC_RESTORE_TPL (EFI_SUBCLASS_SPECIFIC | 0x00000001)
-#define EFI_SW_BS_PC_ALLOCATE_PAGES (EFI_SUBCLASS_SPECIFIC | 0x00000002)
-#define EFI_SW_BS_PC_FREE_PAGES (EFI_SUBCLASS_SPECIFIC | 0x00000003)
-#define EFI_SW_BS_PC_GET_MEMORY_MAP (EFI_SUBCLASS_SPECIFIC | 0x00000004)
-#define EFI_SW_BS_PC_ALLOCATE_POOL (EFI_SUBCLASS_SPECIFIC | 0x00000005)
-#define EFI_SW_BS_PC_FREE_POOL (EFI_SUBCLASS_SPECIFIC | 0x00000006)
-#define EFI_SW_BS_PC_CREATE_EVENT (EFI_SUBCLASS_SPECIFIC | 0x00000007)
-#define EFI_SW_BS_PC_SET_TIMER (EFI_SUBCLASS_SPECIFIC | 0x00000008)
-#define EFI_SW_BS_PC_WAIT_FOR_EVENT (EFI_SUBCLASS_SPECIFIC | 0x00000009)
-#define EFI_SW_BS_PC_SIGNAL_EVENT (EFI_SUBCLASS_SPECIFIC | 0x0000000A)
-#define EFI_SW_BS_PC_CLOSE_EVENT (EFI_SUBCLASS_SPECIFIC | 0x0000000B)
-#define EFI_SW_BS_PC_CHECK_EVENT (EFI_SUBCLASS_SPECIFIC | 0x0000000C)
-#define EFI_SW_BS_PC_INSTALL_PROTOCOL_INTERFACE (EFI_SUBCLASS_SPECIFIC | 0x0000000D)
-#define EFI_SW_BS_PC_REINSTALL_PROTOCOL_INTERFACE (EFI_SUBCLASS_SPECIFIC | 0x0000000E)
-#define EFI_SW_BS_PC_UNINSTALL_PROTOCOL_INTERFACE (EFI_SUBCLASS_SPECIFIC | 0x0000000F)
-#define EFI_SW_BS_PC_HANDLE_PROTOCOL (EFI_SUBCLASS_SPECIFIC | 0x00000010)
-#define EFI_SW_BS_PC_PC_HANDLE_PROTOCOL (EFI_SUBCLASS_SPECIFIC | 0x00000011)
-#define EFI_SW_BS_PC_REGISTER_PROTOCOL_NOTIFY (EFI_SUBCLASS_SPECIFIC | 0x00000012)
-#define EFI_SW_BS_PC_LOCATE_HANDLE (EFI_SUBCLASS_SPECIFIC | 0x00000013)
-#define EFI_SW_BS_PC_INSTALL_CONFIGURATION_TABLE (EFI_SUBCLASS_SPECIFIC | 0x00000014)
-#define EFI_SW_BS_PC_LOAD_IMAGE (EFI_SUBCLASS_SPECIFIC | 0x00000015)
-#define EFI_SW_BS_PC_START_IMAGE (EFI_SUBCLASS_SPECIFIC | 0x00000016)
-#define EFI_SW_BS_PC_EXIT (EFI_SUBCLASS_SPECIFIC | 0x00000017)
-#define EFI_SW_BS_PC_UNLOAD_IMAGE (EFI_SUBCLASS_SPECIFIC | 0x00000018)
-#define EFI_SW_BS_PC_EXIT_BOOT_SERVICES (EFI_SUBCLASS_SPECIFIC | 0x00000019)
-#define EFI_SW_BS_PC_GET_NEXT_MONOTONIC_COUNT (EFI_SUBCLASS_SPECIFIC | 0x0000001A)
-#define EFI_SW_BS_PC_STALL (EFI_SUBCLASS_SPECIFIC | 0x0000001B)
-#define EFI_SW_BS_PC_SET_WATCHDOG_TIMER (EFI_SUBCLASS_SPECIFIC | 0x0000001C)
-#define EFI_SW_BS_PC_CONNECT_CONTROLLER (EFI_SUBCLASS_SPECIFIC | 0x0000001D)
-#define EFI_SW_BS_PC_DISCONNECT_CONTROLLER (EFI_SUBCLASS_SPECIFIC | 0x0000001E)
-#define EFI_SW_BS_PC_OPEN_PROTOCOL (EFI_SUBCLASS_SPECIFIC | 0x0000001F)
-#define EFI_SW_BS_PC_CLOSE_PROTOCOL (EFI_SUBCLASS_SPECIFIC | 0x00000020)
-#define EFI_SW_BS_PC_OPEN_PROTOCOL_INFORMATION (EFI_SUBCLASS_SPECIFIC | 0x00000021)
-#define EFI_SW_BS_PC_PROTOCOLS_PER_HANDLE (EFI_SUBCLASS_SPECIFIC | 0x00000022)
-#define EFI_SW_BS_PC_LOCATE_HANDLE_BUFFER (EFI_SUBCLASS_SPECIFIC | 0x00000023)
-#define EFI_SW_BS_PC_LOCATE_PROTOCOL (EFI_SUBCLASS_SPECIFIC | 0x00000024)
-#define EFI_SW_BS_PC_INSTALL_MULTIPLE_INTERFACES (EFI_SUBCLASS_SPECIFIC | 0x00000025)
-#define EFI_SW_BS_PC_UNINSTALL_MULTIPLE_INTERFACES (EFI_SUBCLASS_SPECIFIC | 0x00000026)
-#define EFI_SW_BS_PC_CALCULATE_CRC_32 (EFI_SUBCLASS_SPECIFIC | 0x00000027)
-#define EFI_SW_BS_PC_COPY_MEM (EFI_SUBCLASS_SPECIFIC | 0x00000028)
-#define EFI_SW_BS_PC_SET_MEM (EFI_SUBCLASS_SPECIFIC | 0x00000029)
-
-//
-// Software Class EFI Runtime Services Subclass Progress Code definitions.
-//
-#define EFI_SW_RS_PC_GET_TIME (EFI_SUBCLASS_SPECIFIC | 0x00000000)
-#define EFI_SW_RS_PC_SET_TIME (EFI_SUBCLASS_SPECIFIC | 0x00000001)
-#define EFI_SW_RS_PC_GET_WAKEUP_TIME (EFI_SUBCLASS_SPECIFIC | 0x00000002)
-#define EFI_SW_RS_PC_SET_WAKEUP_TIME (EFI_SUBCLASS_SPECIFIC | 0x00000003)
-#define EFI_SW_RS_PC_SET_VIRTUAL_ADDRESS_MAP (EFI_SUBCLASS_SPECIFIC | 0x00000004)
-#define EFI_SW_RS_PC_CONVERT_POINTER (EFI_SUBCLASS_SPECIFIC | 0x00000005)
-#define EFI_SW_RS_PC_GET_VARIABLE (EFI_SUBCLASS_SPECIFIC | 0x00000006)
-#define EFI_SW_RS_PC_GET_NEXT_VARIABLE_NAME (EFI_SUBCLASS_SPECIFIC | 0x00000007)
-#define EFI_SW_RS_PC_SET_VARIABLE (EFI_SUBCLASS_SPECIFIC | 0x00000008)
-#define EFI_SW_RS_PC_GET_NEXT_HIGH_MONOTONIC_COUNT (EFI_SUBCLASS_SPECIFIC | 0x00000009)
-#define EFI_SW_RS_PC_RESET_SYSTEM (EFI_SUBCLASS_SPECIFIC | 0x0000000A)
-
-//
-// Software Class EFI DXE Services Subclass Progress Code definitions
-//
-#define EFI_SW_DS_PC_ADD_MEMORY_SPACE (EFI_SUBCLASS_SPECIFIC | 0x00000000)
-#define EFI_SW_DS_PC_ALLOCATE_MEMORY_SPACE (EFI_SUBCLASS_SPECIFIC | 0x00000001)
-#define EFI_SW_DS_PC_FREE_MEMORY_SPACE (EFI_SUBCLASS_SPECIFIC | 0x00000002)
-#define EFI_SW_DS_PC_REMOVE_MEMORY_SPACE (EFI_SUBCLASS_SPECIFIC | 0x00000003)
-#define EFI_SW_DS_PC_GET_MEMORY_SPACE_DESCRIPTOR (EFI_SUBCLASS_SPECIFIC | 0x00000004)
-#define EFI_SW_DS_PC_SET_MEMORY_SPACE_ATTRIBUTES (EFI_SUBCLASS_SPECIFIC | 0x00000005)
-#define EFI_SW_DS_PC_GET_MEMORY_SPACE_MAP (EFI_SUBCLASS_SPECIFIC | 0x00000006)
-#define EFI_SW_DS_PC_ADD_IO_SPACE (EFI_SUBCLASS_SPECIFIC | 0x00000007)
-#define EFI_SW_DS_PC_ALLOCATE_IO_SPACE (EFI_SUBCLASS_SPECIFIC | 0x00000008)
-#define EFI_SW_DS_PC_FREE_IO_SPACE (EFI_SUBCLASS_SPECIFIC | 0x00000009)
-#define EFI_SW_DS_PC_REMOVE_IO_SPACE (EFI_SUBCLASS_SPECIFIC | 0x0000000A)
-#define EFI_SW_DS_PC_GET_IO_SPACE_DESCRIPTOR (EFI_SUBCLASS_SPECIFIC | 0x0000000B)
-#define EFI_SW_DS_PC_GET_IO_SPACE_MAP (EFI_SUBCLASS_SPECIFIC | 0x0000000C)
-#define EFI_SW_DS_PC_DISPATCH (EFI_SUBCLASS_SPECIFIC | 0x0000000D)
-#define EFI_SW_DS_PC_SCHEDULE (EFI_SUBCLASS_SPECIFIC | 0x0000000E)
-#define EFI_SW_DS_PC_TRUST (EFI_SUBCLASS_SPECIFIC | 0x0000000F)
-#define EFI_SW_DS_PC_PROCESS_FIRMWARE_VOLUME (EFI_SUBCLASS_SPECIFIC | 0x00000010)
-
-//
-// Software Class Error Code definitions.
-// These are shared by all subclasses.
-//
-#define EFI_SW_EC_NON_SPECIFIC 0x00000000
-#define EFI_SW_EC_LOAD_ERROR 0x00000001
-#define EFI_SW_EC_INVALID_PARAMETER 0x00000002
-#define EFI_SW_EC_UNSUPPORTED 0x00000003
-#define EFI_SW_EC_INVALID_BUFFER 0x00000004
-#define EFI_SW_EC_OUT_OF_RESOURCES 0x00000005
-#define EFI_SW_EC_ABORTED 0x00000006
-#define EFI_SW_EC_ILLEGAL_SOFTWARE_STATE 0x00000007
-#define EFI_SW_EC_ILLEGAL_HARDWARE_STATE 0x00000008
-#define EFI_SW_EC_START_ERROR 0x00000009
-#define EFI_SW_EC_BAD_DATE_TIME 0x0000000A
-#define EFI_SW_EC_CFG_INVALID 0x0000000B
-#define EFI_SW_EC_CFG_CLR_REQUEST 0x0000000C
-#define EFI_SW_EC_CFG_DEFAULT 0x0000000D
-#define EFI_SW_EC_PWD_INVALID 0x0000000E
-#define EFI_SW_EC_PWD_CLR_REQUEST 0x0000000F
-#define EFI_SW_EC_PWD_CLEARED 0x00000010
-#define EFI_SW_EC_EVENT_LOG_FULL 0x00000011
-
-//
-// Software Class Unspecified Subclass Error Code definitions.
-//
-//
-// Software Class SEC Subclass Error Code definitions.
-//
-//
-// Software Class PEI Core Subclass Error Code definitions.
-//
-#define EFI_SW_PEI_CORE_EC_DXE_CORRUPT (EFI_SUBCLASS_SPECIFIC | 0x00000000)
-
-//
-// Software Class PEI Module Subclass Error Code definitions.
-//
-#define EFI_SW_PEIM_EC_NO_RECOVERY_CAPSULE (EFI_SUBCLASS_SPECIFIC | 0x00000000)
-#define EFI_SW_PEIM_EC_INVALID_CAPSULE_DESCRIPTOR (EFI_SUBCLASS_SPECIFIC | 0x00000001)
-
-//
-// Software Class DXE Core Subclass Error Code definitions.
-//
-#define EFI_SW_CSM_LEGACY_ROM_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000000)
-//
-// Software Class DXE Boot Service Driver Subclass Error Code definitions.
-//
-#define EFI_SW_DXE_BS_EC_LEGACY_OPROM_NO_SPACE (EFI_SUBCLASS_SPECIFIC | 0x00000000)
-
-//
-// Software Class DXE Runtime Service Driver Subclass Error Code definitions.
-//
-//
-// Software Class SMM Driver Subclass Error Code definitions.
-//
-//
-// Software Class EFI Application Subclass Error Code definitions.
-//
-//
-// Software Class EFI OS Loader Subclass Error Code definitions.
-//
-//
-// Software Class EFI RT Subclass Error Code definitions.
-//
-//
-// Software Class EFI AL Subclass Error Code definitions.
-//
-//
-// Software Class EBC Exception Subclass Error Code definitions.
-// These exceptions are derived from the debug protocol definitions in the EFI
-// specification.
-//
-#define EFI_SW_EC_EBC_UNDEFINED (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_UNDEFINED)
-#define EFI_SW_EC_EBC_DIVIDE_ERROR (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_DIVIDE_ERROR)
-#define EFI_SW_EC_EBC_DEBUG (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_DEBUG)
-#define EFI_SW_EC_EBC_BREAKPOINT (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_BREAKPOINT)
-#define EFI_SW_EC_EBC_OVERFLOW (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_OVERFLOW)
-#define EFI_SW_EC_EBC_INVALID_OPCODE (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_INVALID_OPCODE)
-#define EFI_SW_EC_EBC_STACK_FAULT (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_STACK_FAULT)
-#define EFI_SW_EC_EBC_ALIGNMENT_CHECK (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_ALIGNMENT_CHECK)
-#define EFI_SW_EC_EBC_INSTRUCTION_ENCODING (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_INSTRUCTION_ENCODING)
-#define EFI_SW_EC_EBC_BAD_BREAK (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_BAD_BREAK)
-#define EFI_SW_EC_EBC_STEP (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_STEP)
-
-//
-// Software Class IA32 Exception Subclass Error Code definitions.
-// These exceptions are derived from the debug protocol definitions in the EFI
-// specification.
-//
-#define EFI_SW_EC_IA32_DIVIDE_ERROR (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_DIVIDE_ERROR)
-#define EFI_SW_EC_IA32_DEBUG (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_DEBUG)
-#define EFI_SW_EC_IA32_NMI (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_NMI)
-#define EFI_SW_EC_IA32_BREAKPOINT (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_BREAKPOINT)
-#define EFI_SW_EC_IA32_OVERFLOW (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_OVERFLOW)
-#define EFI_SW_EC_IA32_BOUND (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_BOUND)
-#define EFI_SW_EC_IA32_INVALID_OPCODE (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_INVALID_OPCODE)
-#define EFI_SW_EC_IA32_DOUBLE_FAULT (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_DOUBLE_FAULT)
-#define EFI_SW_EC_IA32_INVALID_TSS (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_INVALID_TSS)
-#define EFI_SW_EC_IA32_SEG_NOT_PRESENT (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_SEG_NOT_PRESENT)
-#define EFI_SW_EC_IA32_STACK_FAULT (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_STACK_FAULT)
-#define EFI_SW_EC_IA32_GP_FAULT (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_GP_FAULT)
-#define EFI_SW_EC_IA32_PAGE_FAULT (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_PAGE_FAULT)
-#define EFI_SW_EC_IA32_FP_ERROR (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_FP_ERROR)
-#define EFI_SW_EC_IA32_ALIGNMENT_CHECK (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_ALIGNMENT_CHECK)
-#define EFI_SW_EC_IA32_MACHINE_CHECK (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_MACHINE_CHECK)
-#define EFI_SW_EC_IA32_SIMD (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_SIMD)
-
-//
-// Software Class X64 Exception Subclass Error Code definitions.
-// These exceptions are derived from the debug protocol definitions in the EFI
-// specification.
-//
-#define EFI_SW_EC_X64_DIVIDE_ERROR (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_DIVIDE_ERROR)
-#define EFI_SW_EC_X64_DEBUG (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_DEBUG)
-#define EFI_SW_EC_X64_NMI (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_NMI)
-#define EFI_SW_EC_X64_BREAKPOINT (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_BREAKPOINT)
-#define EFI_SW_EC_X64_OVERFLOW (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_OVERFLOW)
-#define EFI_SW_EC_X64_BOUND (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_BOUND)
-#define EFI_SW_EC_X64_INVALID_OPCODE (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_INVALID_OPCODE)
-#define EFI_SW_EC_X64_DOUBLE_FAULT (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_DOUBLE_FAULT)
-#define EFI_SW_EC_X64_INVALID_TSS (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_INVALID_TSS)
-#define EFI_SW_EC_X64_SEG_NOT_PRESENT (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_SEG_NOT_PRESENT)
-#define EFI_SW_EC_X64_STACK_FAULT (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_STACK_FAULT)
-#define EFI_SW_EC_X64_GP_FAULT (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_GP_FAULT)
-#define EFI_SW_EC_X64_PAGE_FAULT (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_PAGE_FAULT)
-#define EFI_SW_EC_X64_FP_ERROR (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_FP_ERROR)
-#define EFI_SW_EC_X64_ALIGNMENT_CHECK (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_ALIGNMENT_CHECK)
-#define EFI_SW_EC_X64_MACHINE_CHECK (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_MACHINE_CHECK)
-#define EFI_SW_EC_X64_SIMD (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_SIMD)
-
-//
-// Software Class IPF Exception Subclass Error Code definitions.
-// These exceptions are derived from the debug protocol definitions in the EFI
-// specification.
-//
-#define EFI_SW_EC_IPF_ALT_DTLB (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_ALT_DTLB)
-#define EFI_SW_EC_IPF_DNESTED_TLB (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_DNESTED_TLB)
-#define EFI_SW_EC_IPF_BREAKPOINT (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_BREAKPOINT)
-#define EFI_SW_EC_IPF_EXTERNAL_INTERRUPT (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_EXTERNAL_INTERRUPT)
-#define EFI_SW_EC_IPF_GEN_EXCEPT (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_GEN_EXCEPT)
-#define EFI_SW_EC_IPF_NAT_CONSUMPTION (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_NAT_CONSUMPTION)
-#define EFI_SW_EC_IPF_DEBUG_EXCEPT (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_DEBUG_EXCEPT)
-#define EFI_SW_EC_IPF_UNALIGNED_ACCESS (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_UNALIGNED_ACCESS)
-#define EFI_SW_EC_IPF_FP_FAULT (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_FP_FAULT)
-#define EFI_SW_EC_IPF_FP_TRAP (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_FP_TRAP)
-#define EFI_SW_EC_IPF_TAKEN_BRANCH (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_TAKEN_BRANCH)
-#define EFI_SW_EC_IPF_SINGLE_STEP (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_SINGLE_STEP)
-
-
-//
-// Software Class PEI Service Subclass Error Code definitions.
-//
-//
-// Software Class EFI Boot Service Subclass Error Code definitions.
-//
-//
-// Software Class EFI Runtime Service Subclass Error Code definitions.
-//
-//
-// Software Class EFI DXE Service Subclass Error Code definitions.
-//
-
-///////////////////////////////////////////////////////////////////////////////
-// Section 7
-///////////////////////////////////////////////////////////////////////////////
-//
-// Debug Code definitions for all classes and subclass
-// Only one debug code is defined at this point and should
-// be used for anything that gets sent to debug stream.
-//
-#define EFI_DC_UNSPECIFIED 0x0
-
-#endif
diff --git a/MdePkg/Include/Common/StatusCodeDataTypeId.h b/MdePkg/Include/Common/StatusCodeDataTypeId.h
deleted file mode 100644
index 49bea6122e..0000000000
--- a/MdePkg/Include/Common/StatusCodeDataTypeId.h
+++ /dev/null
@@ -1,336 +0,0 @@
-/** @file
- This file defines the data structures to support Status Code Data.
-
- Copyright (c) 2006, Intel Corporation
- All rights reserved. This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php
-
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
- Module Name: StatusCodeDataTypeId.h
-
- @par Revision Reference:
- These definitions are from Framework of EFI Status Code Spec
- Version 0.92.
-
-**/
-
-#ifndef __STATUS_CODE_DATA_TYPE_ID_H__
-#define __STATUS_CODE_DATA_TYPE_ID_H__
-
-
-///
-/// The size of string
-///
-#define EFI_STATUS_CODE_DATA_MAX_STRING_SIZE 150
-
-///
-/// This is the max data size including all the headers which can be passed
-/// as Status Code data. This data should be multiple of 8 byte
-/// to avoid any kind of boundary issue. Also, sum of this data size (inclusive
-/// of size of EFI_STATUS_CODE_DATA should not exceed the max record size of
-/// data hub
-///
-#define EFI_STATUS_CODE_DATA_MAX_SIZE 200
-
-#pragma pack(1)
-typedef enum {
- EfiStringAscii,
- EfiStringUnicode,
- EfiStringToken
-} EFI_STRING_TYPE;
-
-typedef struct {
- EFI_HII_HANDLE Handle;
- STRING_REF Token;
-} EFI_STATUS_CODE_STRING_TOKEN;
-
-typedef union {
- CHAR8 *Ascii;
- CHAR16 *Unicode;
- EFI_STATUS_CODE_STRING_TOKEN Hii;
-} EFI_STATUS_CODE_STRING;
-
-typedef struct {
- EFI_STATUS_CODE_DATA DataHeader;
- EFI_STRING_TYPE StringType;
- EFI_STATUS_CODE_STRING String;
-} EFI_STATUS_CODE_STRING_DATA;
-
-#pragma pack()
-
-#pragma pack(1)
-
-typedef struct {
- UINT32 ErrorLevel;
- //
- // 12 * sizeof (UINT64) Var Arg stack
- //
- // ascii DEBUG () Format string
- //
-} EFI_DEBUG_INFO;
-
-#pragma pack()
-
-//
-// declaration for EFI_EXP_DATA. This may change
-//
-// typedef UINTN EFI_EXP_DATA;
-
-///
-/// Voltage Extended Error Data
-///
-typedef struct {
- EFI_STATUS_CODE_DATA DataHeader;
- EFI_EXP_BASE10_DATA Voltage;
- EFI_EXP_BASE10_DATA Threshold;
-} EFI_COMPUTING_UNIT_VOLTAGE_ERROR_DATA;
-
-///
-/// Microcode Update Extended Error Data
-///
-typedef struct {
- EFI_STATUS_CODE_DATA DataHeader;
- UINT32 Version;
-} EFI_COMPUTING_UNIT_MICROCODE_UPDATE_ERROR_DATA;
-
-///
-/// Asynchronous Timer Extended Error Data
-///
-typedef struct {
- EFI_STATUS_CODE_DATA DataHeader;
- EFI_EXP_BASE10_DATA TimerLimit;
-} EFI_COMPUTING_UNIT_TIMER_EXPIRED_ERROR_DATA;
-
-///
-/// Host Processor Mismatch Extended Error Data
-///
-typedef struct {
- EFI_STATUS_CODE_DATA DataHeader;
- UINT32 Instance;
- UINT16 Attributes;
-} EFI_HOST_PROCESSOR_MISMATCH_ERROR_DATA;
-
-//
-// EFI_COMPUTING_UNIT_MISMATCH_ATTRIBUTES
-// All other attributes are reserved for future use and
-// must be initialized to 0.
-//
-#define EFI_COMPUTING_UNIT_MISMATCH_SPEED 0x0001
-#define EFI_COMPUTING_UNIT_MISMATCH_FSB_SPEED 0x0002
-#define EFI_COMPUTING_UNIT_MISMATCH_FAMILY 0x0004
-#define EFI_COMPUTING_UNIT_MISMATCH_MODEL 0x0008
-#define EFI_COMPUTING_UNIT_MISMATCH_STEPPING 0x0010
-#define EFI_COMPUTING_UNIT_MISMATCH_CACHE_SIZE 0x0020
-#define EFI_COMPUTING_UNIT_MISMATCH_OEM1 0x1000
-#define EFI_COMPUTING_UNIT_MISMATCH_OEM2 0x2000
-#define EFI_COMPUTING_UNIT_MISMATCH_OEM3 0x4000
-#define EFI_COMPUTING_UNIT_MISMATCH_OEM4 0x8000
-
-///
-/// Thermal Extended Error Data
-///
-typedef struct {
- EFI_STATUS_CODE_DATA DataHeader;
- EFI_EXP_BASE10_DATA Temperature;
- EFI_EXP_BASE10_DATA Threshold;
-} EFI_COMPUTING_UNIT_THERMAL_ERROR_DATA;
-
-///
-/// Processor Disabled Extended Error Data
-///
-typedef struct {
- EFI_STATUS_CODE_DATA DataHeader;
- UINT32 Cause;
- BOOLEAN SoftwareDisabled;
-} EFI_COMPUTING_UNIT_CPU_DISABLED_ERROR_DATA;
-
-typedef enum {
- EfiInitCacheDataOnly,
- EfiInitCacheInstrOnly,
- EfiInitCacheBoth,
- EfiInitCacheUnspecified
-} EFI_INIT_CACHE_TYPE;
-
-///
-/// Embedded cache init extended data
-///
-typedef struct {
- EFI_STATUS_CODE_DATA DataHeader;
- UINT32 Level;
- EFI_INIT_CACHE_TYPE Type;
-} EFI_CACHE_INIT_DATA;
-
-//
-// Memory Extended Error Data
-//
-
-///
-/// Memory Error Granularity Definition
-///
-typedef UINT8 EFI_MEMORY_ERROR_GRANULARITY;
-
-///
-/// Memory Error Operation Definition
-///
-typedef UINT8 EFI_MEMORY_ERROR_OPERATION;
-
-typedef struct {
- EFI_STATUS_CODE_DATA DataHeader;
- EFI_MEMORY_ERROR_GRANULARITY Granularity;
- EFI_MEMORY_ERROR_OPERATION Operation;
- UINTN Syndrome;
- EFI_PHYSICAL_ADDRESS Address;
- UINTN Resolution;
-} EFI_MEMORY_EXTENDED_ERROR_DATA;
-
-//
-// Memory Error Granularities
-//
-#define EFI_MEMORY_ERROR_OTHER 0x01
-#define EFI_MEMORY_ERROR_UNKNOWN 0x02
-#define EFI_MEMORY_ERROR_DEVICE 0x03
-#define EFI_MEMORY_ERROR_PARTITION 0x04
-
-//
-// Memory Error Operations
-//
-#define EFI_MEMORY_OPERATION_OTHER 0x01
-#define EFI_MEMORY_OPERATION_UNKNOWN 0x02
-#define EFI_MEMORY_OPERATION_READ 0x03
-#define EFI_MEMORY_OPERATION_WRITE 0x04
-#define EFI_MEMORY_OPERATION_PARTIAL_WRITE 0x05
-
-//
-// Define shorthands to describe Group Operations
-// Many memory init operations are essentially group
-// operations.
-
-/// A shorthand to describe that the operation is performed
-/// on multiple devices within the array
-///
-#define EFI_MULTIPLE_MEMORY_DEVICE_OPERATION 0xfffe
-///
-/// A shorthand to describe that the operation is performed on all devices within the array
-///
-#define EFI_ALL_MEMORY_DEVICE_OPERATION 0xffff
-///
-/// A shorthand to describe that the operation is performed on multiple arrays
-///
-#define EFI_MULTIPLE_MEMORY_ARRAY_OPERATION 0xfffe
-///
-/// A shorthand to describe that the operation is performed on all the arrays
-///
-#define EFI_ALL_MEMORY_ARRAY_OPERATION 0xffff
-
-//
-// DIMM number
-//
-#pragma pack(1)
-typedef struct {
- EFI_STATUS_CODE_DATA DataHeader;
- UINT16 Array;
- UINT16 Device;
-} EFI_STATUS_CODE_DIMM_NUMBER;
-#pragma pack()
-
-///
-/// Memory Module Mismatch Extended Error Data
-///
-typedef struct {
- EFI_STATUS_CODE_DATA DataHeader;
- EFI_STATUS_CODE_DIMM_NUMBER Instance;
-} EFI_MEMORY_MODULE_MISMATCH_ERROR_DATA;
-
-///
-/// Memory Range Extended Data
-///
-typedef struct {
- EFI_STATUS_CODE_DATA DataHeader;
- EFI_PHYSICAL_ADDRESS Start;
- EFI_PHYSICAL_ADDRESS Length;
-} EFI_MEMORY_RANGE_EXTENDED_DATA;
-
-///
-/// Device handle Extended Data. Used for many
-/// errors and progress codes to point to the device.
-///
-typedef struct {
- EFI_STATUS_CODE_DATA DataHeader;
- EFI_HANDLE Handle;
-} EFI_DEVICE_HANDLE_EXTENDED_DATA;
-
-typedef struct {
- EFI_STATUS_CODE_DATA DataHeader;
- UINT8 *DevicePath;
-} EFI_DEVICE_PATH_EXTENDED_DATA;
-
-typedef struct {
- EFI_STATUS_CODE_DATA DataHeader;
- EFI_HANDLE ControllerHandle;
- EFI_HANDLE DriverBindingHandle;
- UINT16 DevicePathSize;
- UINT8 *RemainingDevicePath;
-} EFI_STATUS_CODE_START_EXTENDED_DATA;
-
-///
-/// Resource Allocation Failure Extended Error Data
-///
-
-/*
-typedef struct {
- EFI_STATUS_CODE_DATA DataHeader;
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;
- UINT32 Bar;
- VOID *ReqRes;
- VOID *AllocRes;
-} EFI_RESOURCE_ALLOC_FAILURE_ERROR_DATA;
-*/
-typedef struct {
- EFI_STATUS_CODE_DATA DataHeader;
- UINT32 Bar;
- UINT16 DevicePathSize;
- UINT16 ReqResSize;
- UINT16 AllocResSize;
- UINT8 *DevicePath;
- UINT8 *ReqRes;
- UINT8 *AllocRes;
-} EFI_RESOURCE_ALLOC_FAILURE_ERROR_DATA;
-
-///
-/// Extended Error Data for Assert
-///
-typedef struct {
- EFI_STATUS_CODE_DATA DataHeader;
- UINT32 LineNumber;
- UINT32 FileNameSize;
- EFI_STATUS_CODE_STRING_DATA *FileName;
-} EFI_DEBUG_ASSERT_DATA;
-
-///
-/// System Context Data EBC/IA32/IPF
-///
-typedef union {
- EFI_SYSTEM_CONTEXT_EBC SystemContextEbc;
- EFI_SYSTEM_CONTEXT_IA32 SystemContextIa32;
- EFI_SYSTEM_CONTEXT_IPF SystemContextIpf;
-} EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT;
-
-typedef struct {
- EFI_STATUS_CODE_DATA DataHeader;
- EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT Context;
-} EFI_STATUS_CODE_EXCEP_EXTENDED_DATA;
-
-///
-/// Legacy Oprom extended data
-///
-typedef struct {
- EFI_STATUS_CODE_DATA DataHeader;
- EFI_HANDLE DeviceHandle;
- EFI_PHYSICAL_ADDRESS RomImageBase;
-} EFI_LEGACY_OPROM_EXTENDED_DATA;
-
-#endif
diff --git a/MdePkg/Include/Common/UefiBaseTypes.h b/MdePkg/Include/Common/UefiBaseTypes.h
deleted file mode 100644
index f88dd4c23d..0000000000
--- a/MdePkg/Include/Common/UefiBaseTypes.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/** @file
- This file makes the BaseTypes.h backward compatible with the ones used in the
- past for EFI and Tiano development. It's mostly just prepending an EFI_ on the
- definitions.
-
- Copyright (c) 2006, Intel Corporation
- All rights reserved. This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php
-
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
- Module Name: UefiBaseTypes.h
-
-**/
-
-#ifndef __UEFI_BASE_TYPES_H__
-#define __UEFI_BASE_TYPES_H__
-
-#include <Common/BaseTypes.h>
-
-typedef UINT64 EFI_LBA;
-
-#define EFIERR(_a) ENCODE_ERROR(_a)
-
-#define EFI_MAX_BIT MAX_BIT
-#define EFI_MAX_ADDRESS MAX_ADDRESS
-#define EFI_BREAKPOINT() CpuBreakpoint ()
-#define EFI_DEADLOOP() CpuDeadLoop ()
-#define EFI_ERROR(A) RETURN_ERROR(A)
-
-typedef GUID EFI_GUID;
-typedef RETURN_STATUS EFI_STATUS;
-
-#define EFI_SUCCESS RETURN_SUCCESS
-#define EFI_LOAD_ERROR RETURN_LOAD_ERROR
-#define EFI_INVALID_PARAMETER RETURN_INVALID_PARAMETER
-#define EFI_UNSUPPORTED RETURN_UNSUPPORTED
-#define EFI_BAD_BUFFER_SIZE RETURN_BAD_BUFFER_SIZE
-#define EFI_BUFFER_TOO_SMALL RETURN_BUFFER_TOO_SMALL
-#define EFI_NOT_READY RETURN_NOT_READY
-#define EFI_DEVICE_ERROR RETURN_DEVICE_ERROR
-#define EFI_WRITE_PROTECTED RETURN_WRITE_PROTECTED
-#define EFI_OUT_OF_RESOURCES RETURN_OUT_OF_RESOURCES
-#define EFI_VOLUME_CORRUPTED RETURN_VOLUME_CORRUPTED
-#define EFI_VOLUME_FULL RETURN_VOLUME_FULL
-#define EFI_NO_MEDIA RETURN_NO_MEDIA
-#define EFI_MEDIA_CHANGED RETURN_MEDIA_CHANGED
-#define EFI_NOT_FOUND RETURN_NOT_FOUND
-#define EFI_ACCESS_DENIED RETURN_ACCESS_DENIED
-#define EFI_NO_RESPONSE RETURN_NO_RESPONSE
-#define EFI_NO_MAPPING RETURN_NO_MAPPING
-#define EFI_TIMEOUT RETURN_TIMEOUT
-#define EFI_NOT_STARTED RETURN_NOT_STARTED
-#define EFI_ALREADY_STARTED RETURN_ALREADY_STARTED
-#define EFI_ABORTED RETURN_ABORTED
-#define EFI_ICMP_ERROR RETURN_ICMP_ERROR
-#define EFI_TFTP_ERROR RETURN_TFTP_ERROR
-#define EFI_PROTOCOL_ERROR RETURN_PROTOCOL_ERROR
-#define EFI_INCOMPATIBLE_VERSION RETURN_INCOMPATIBLE_VERSION
-#define EFI_SECURITY_VIOLATION RETURN_SECURITY_VIOLATION
-#define EFI_CRC_ERROR RETURN_CRC_ERROR
-#define EFI_END_OF_MEDIA RETURN_END_OF_MEDIA
-#define EFI_END_OF_FILE RETURN_END_OF_FILE
-
-#define EFI_WARN_UNKNOWN_GLYPH RETURN_WARN_UNKNOWN_GLYPH
-#define EFI_WARN_DELETE_FAILURE RETURN_WARN_DELETE_FAILURE
-#define EFI_WARN_WRITE_FAILURE RETURN_WARN_WRITE_FAILURE
-#define EFI_WARN_BUFFER_TOO_SMALL RETURN_WARN_BUFFER_TOO_SMALL
-
-//
-// The EFI memory allocation functions work in units of EFI_PAGEs that are
-// 4K. This should in no way be confused with the page size of the processor.
-// An EFI_PAGE is just the quanta of memory in EFI.
-//
-#define EFI_PAGE_MASK 0xFFF
-#define EFI_PAGE_SHIFT 12
-
-#define EFI_SIZE_TO_PAGES(a) (((a) >> EFI_PAGE_SHIFT) + (((a) & EFI_PAGE_MASK) ? 1 : 0))
-
-#define EFI_PAGES_TO_SIZE(a) ( (a) << EFI_PAGE_SHIFT)
-
-//
-// EFI Time Abstraction:
-// Year: 2000 - 20XX
-// Month: 1 - 12
-// Day: 1 - 31
-// Hour: 0 - 23
-// Minute: 0 - 59
-// Second: 0 - 59
-// Nanosecond: 0 - 999,999,999
-// TimeZone: -1440 to 1440 or 2047
-//
-typedef struct {
- UINT16 Year;
- UINT8 Month;
- UINT8 Day;
- UINT8 Hour;
- UINT8 Minute;
- UINT8 Second;
- UINT8 Pad1;
- UINT32 Nanosecond;
- INT16 TimeZone;
- UINT8 Daylight;
- UINT8 Pad2;
-} EFI_TIME;
-
-//
-// Bit definitions for EFI_TIME.Daylight
-//
-#define EFI_TIME_ADJUST_DAYLIGHT 0x01
-#define EFI_TIME_IN_DAYLIGHT 0x02
-
-//
-// Value definition for EFI_TIME.TimeZone
-//
-#define EFI_UNSPECIFIED_TIMEZONE 0x07FF
-
-#endif