From 586cd1f1f4129ab7ec24543d4968801e17cc870b Mon Sep 17 00:00:00 2001 From: lhauch Date: Fri, 1 Jun 2007 14:49:55 +0000 Subject: 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 --- MdePkg/Include/Common/BaseTypes.h | 304 ---- MdePkg/Include/Common/BootMode.h | 37 - MdePkg/Include/Common/BootScript.h | 63 - MdePkg/Include/Common/Capsule.h | 67 - MdePkg/Include/Common/DataHubRecords.h | 1909 -------------------- MdePkg/Include/Common/Dependency.h | 40 - MdePkg/Include/Common/EfiImage.h | 744 -------- MdePkg/Include/Common/FirmwareFileSystem.h | 91 - MdePkg/Include/Common/FirmwareVolumeHeader.h | 116 -- MdePkg/Include/Common/FirmwareVolumeImageFormat.h | 277 --- MdePkg/Include/Common/Hob.h | 235 --- MdePkg/Include/Common/InternalFormRepresentation.h | 422 ----- MdePkg/Include/Common/Legacy16.h | 310 ---- MdePkg/Include/Common/MultiPhase.h | 82 - MdePkg/Include/Common/PeCoffLoaderImageContext.h | 57 - MdePkg/Include/Common/StatusCode.h | 940 ---------- MdePkg/Include/Common/StatusCodeDataTypeId.h | 336 ---- MdePkg/Include/Common/UefiBaseTypes.h | 121 -- 18 files changed, 6151 deletions(-) delete mode 100644 MdePkg/Include/Common/BaseTypes.h delete mode 100644 MdePkg/Include/Common/BootMode.h delete mode 100644 MdePkg/Include/Common/BootScript.h delete mode 100644 MdePkg/Include/Common/Capsule.h delete mode 100644 MdePkg/Include/Common/DataHubRecords.h delete mode 100644 MdePkg/Include/Common/Dependency.h delete mode 100644 MdePkg/Include/Common/EfiImage.h delete mode 100644 MdePkg/Include/Common/FirmwareFileSystem.h delete mode 100644 MdePkg/Include/Common/FirmwareVolumeHeader.h delete mode 100644 MdePkg/Include/Common/FirmwareVolumeImageFormat.h delete mode 100644 MdePkg/Include/Common/Hob.h delete mode 100644 MdePkg/Include/Common/InternalFormRepresentation.h delete mode 100644 MdePkg/Include/Common/Legacy16.h delete mode 100644 MdePkg/Include/Common/MultiPhase.h delete mode 100644 MdePkg/Include/Common/PeCoffLoaderImageContext.h delete mode 100644 MdePkg/Include/Common/StatusCode.h delete mode 100644 MdePkg/Include/Common/StatusCodeDataTypeId.h delete mode 100644 MdePkg/Include/Common/UefiBaseTypes.h (limited to 'MdePkg/Include/Common') 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 - -#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 "!\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 - -#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. - -
-  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
-
- - 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 - -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 -- cgit v1.2.3