roll back the change on the naming of DataHubRecords.h for backward compatibility.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8881 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
eric_tian 2009-07-10 10:20:57 +00:00
parent 1db0e83a24
commit 6115bccfc3
1 changed files with 231 additions and 110 deletions

View File

@ -26,7 +26,12 @@
#include <Framework/FrameworkInternalFormRepresentation.h> #include <Framework/FrameworkInternalFormRepresentation.h>
#define EFI_PROCESSOR_SUBCLASS_VERSION 0x0100 ///
/// Inconsistent with specification here:
/// In MiscSubclass spec 0.9, the value is 0x0100.
/// Keep it unchanged from the perspective of binary consistency.
///
#define EFI_PROCESSOR_SUBCLASS_VERSION 0x00010000
#pragma pack(1) #pragma pack(1)
@ -118,7 +123,7 @@ typedef struct _FLOOPY_CONN_DEVICE_PATH {
/// ///
/// Inconsistent with specification here: /// Inconsistent with specification here:
/// In MiscSubclass spec0.9, this data structure and corrsponding fields are NOT defined. /// In MiscSubclass spec 0.9, this data structure and corrsponding fields are NOT defined.
/// It's implementation-specific to simplify the code logic. /// It's implementation-specific to simplify the code logic.
/// ///
typedef union _EFI_MISC_PORT_DEVICE_PATH { typedef union _EFI_MISC_PORT_DEVICE_PATH {
@ -134,6 +139,16 @@ typedef union _EFI_MISC_PORT_DEVICE_PATH {
} EFI_MISC_PORT_DEVICE_PATH; } EFI_MISC_PORT_DEVICE_PATH;
#pragma pack() #pragma pack()
///
/// String Token Definition
///
/// Inconsistent with specification here:
/// The macro isn't defined by any spec.
/// Keep it unchanged for backward compatibility.
///
#define EFI_STRING_TOKEN UINT16
/// ///
/// Each data record that is a member of some subclass starts with a standard /// Each data record that is a member of some subclass starts with a standard
/// header of type EFI_SUBCLASS_TYPE1_HEADER. /// header of type EFI_SUBCLASS_TYPE1_HEADER.
@ -246,7 +261,7 @@ typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_CORE_FREQUENCY_DATA;
/// that the processor/driver supports automatic frequency selection. /// that the processor/driver supports automatic frequency selection.
/// ///
/// Inconsistent with specification here: /// Inconsistent with specification here:
/// It's a typo of MiscSubclass 0.9 spec. It should be a pointer since it refers to a list of frequencies. /// According to MiscSubclass 0.9 spec, it should be a pointer since it refers to a list of frequencies.
/// ///
typedef EFI_EXP_BASE10_DATA *EFI_PROCESSOR_CORE_FREQUENCY_LIST_DATA; typedef EFI_EXP_BASE10_DATA *EFI_PROCESSOR_CORE_FREQUENCY_LIST_DATA;
@ -276,10 +291,16 @@ typedef struct {
UINT32 ProcessorReserved2: 4; UINT32 ProcessorReserved2: 4;
} EFI_PROCESSOR_SIGNATURE; } EFI_PROCESSOR_SIGNATURE;
///
/// Inconsistent with specification here:
/// The name of third field in ProcSubClass spec0.9 is LogicalProcessorCount.
/// Keep it unchanged for backward compatibility.
///
typedef struct { typedef struct {
UINT32 ProcessorBrandIndex :8; UINT32 ProcessorBrandIndex :8;
UINT32 ProcessorClflush :8; UINT32 ProcessorClflush :8;
UINT32 LogicalProcessorCount :8; UINT32 ProcessorReserved :8;
UINT32 ProcessorDfltApicId :8; UINT32 ProcessorDfltApicId :8;
} EFI_PROCESSOR_MISC_INFO; } EFI_PROCESSOR_MISC_INFO;
@ -423,7 +444,8 @@ typedef enum {
EfiProcessorFamilyUltraSparcIII = 0x57, EfiProcessorFamilyUltraSparcIII = 0x57,
/// ///
/// Inconsistent with specification here: /// Inconsistent with specification here:
/// This field in ProcSubClass spec0.9 is defined as EfiProcessorFamilyUltraSparcIIi, it's a typo. /// This field in ProcSubClass spec 0.9 is defined as EfiProcessorFamilyUltraSparcIIi.
/// Change it to EfiProcessorFamilyUltraSparcIIIi to avoid build break.
/// ///
EfiProcessorFamilyUltraSparcIIIi = 0x58, EfiProcessorFamilyUltraSparcIIIi = 0x58,
EfiProcessorFamily68040 = 0x60, EfiProcessorFamily68040 = 0x60,
@ -653,16 +675,26 @@ typedef enum {
} EFI_PROCESSOR_SOCKET_TYPE_DATA; } EFI_PROCESSOR_SOCKET_TYPE_DATA;
typedef STRING_REF EFI_PROCESSOR_SOCKET_NAME_DATA; typedef STRING_REF EFI_PROCESSOR_SOCKET_NAME_DATA;
typedef EFI_INTER_LINK_DATA EFI_PROCESSOR_CACHE_ASSOCIATION_DATA;
///
/// Inconsistent with specification here:
/// In MiscSubclass spec 0.9, the naming is EFI_PROCESSOR_CACHE_ASSOCIATION_DATA.
/// Keep it unchanged for backward compatibilty.
///
typedef EFI_INTER_LINK_DATA EFI_CACHE_ASSOCIATION_DATA;
/// ///
/// This data record refers to the health status of the processor. /// This data record refers to the health status of the processor.
/// ///
/// Inconsistent with specification here:
/// In MiscSubclass spec 0.9, the naming is EFI_PROCESSOR_HEALTH_STATUS_DATA.
/// Keep it unchanged for backward compatibilty.
///
typedef enum { typedef enum {
EfiProcessorHealthy = 1, EfiProcessorHealthy = 1,
EfiProcessorPerfRestricted = 2, EfiProcessorPerfRestricted = 2,
EfiProcessorFuncRestricted = 3 EfiProcessorFuncRestricted = 3
} EFI_PROCESSOR_HEALTH_STATUS_DATA; } EFI_PROCESSOR_HEALTH_STATUS;
/// ///
/// This data record refers to the package number of this processor. Multiple logical processors can /// This data record refers to the package number of this processor. Multiple logical processors can
@ -671,30 +703,62 @@ typedef enum {
/// ///
typedef UINTN EFI_PROCESSOR_PACKAGE_NUMBER_DATA; typedef UINTN EFI_PROCESSOR_PACKAGE_NUMBER_DATA;
#define EFI_PROCESSOR_FREQUENCY_RECORD_NUMBER 0x00000001 ///
#define EFI_PROCESSOR_BUS_FREQUENCY_RECORD_NUMBER 0x00000002 /// Inconsistent with specification here:
#define EFI_PROCESSOR_VERSION_RECORD_NUMBER 0x00000003 /// In ProcSubclass spec 0.9, the enumeration type data structure is NOT defined.
#define EFI_PROCESSOR_MANUFACTURER_RECORD_NUMBER 0x00000004 /// The equivalent in spec is
#define EFI_PROCESSOR_SERIAL_NUMBER_RECORD_NUMBER 0x00000005 /// #define EFI_PROCESSOR_FREQUENCY_RECORD_NUMBER 0x00000001
#define EFI_PROCESSOR_ID_RECORD_NUMBER 0x00000006 /// #define EFI_PROCESSOR_BUS_FREQUENCY_RECORD_NUMBER 0x00000002
#define EFI_PROCESSOR_TYPE_RECORD_NUMBER 0x00000007 /// #define EFI_PROCESSOR_VERSION_RECORD_NUMBER 0x00000003
#define EFI_PROCESSOR_FAMILY_RECORD_NUMBER 0x00000008 /// #define EFI_PROCESSOR_MANUFACTURER_RECORD_NUMBER 0x00000004
#define EFI_PROCESSOR_VOLTAGE_RECORD_NUMBER 0x00000009 /// #define EFI_PROCESSOR_SERIAL_NUMBER_RECORD_NUMBER 0x00000005
#define EFI_PROCESSOR_APIC_BASE_ADDRESS_RECORD_NUMBER 0x0000000A /// #define EFI_PROCESSOR_ID_RECORD_NUMBER 0x00000006
#define EFI_PROCESSOR_APIC_ID_RECORD_NUMBER 0x0000000B /// #define EFI_PROCESSOR_TYPE_RECORD_NUMBER 0x00000007
#define EFI_PROCESSOR_APIC_VER_NUMBER_RECORD_NUMBER 0x0000000C /// #define EFI_PROCESSOR_FAMILY_RECORD_NUMBER 0x00000008
#define EFI_PROCESSOR_MICROCODE_REVISION_RECORD_NUMBER 0x0000000D /// #define EFI_PROCESSOR_VOLTAGE_RECORD_NUMBER 0x00000009
#define EFI_PROCESSOR_STATUS_RECORD_NUMBER 0x0000000E /// #define EFI_PROCESSOR_APIC_BASE_ADDRESS_RECORD_NUMBER 0x0000000A
#define EFI_PROCESSOR_SOCKET_TYPE_RECORD_NUMBER 0x0000000F /// #define EFI_PROCESSOR_APIC_ID_RECORD_NUMBER 0x0000000B
#define EFI_PROCESSOR_SOCKET_NAME_RECORD_NUMBER 0x00000010 /// #define EFI_PROCESSOR_APIC_VER_NUMBER_RECORD_NUMBER 0x0000000C
#define EFI_PROCESSOR_CACHE_ASSOCIATION_RECORD_NUMBER 0x00000011 /// #define EFI_PROCESSOR_MICROCODE_REVISION_RECORD_NUMBER 0x0000000D
#define EFI_PROCESSOR_MAX_FREQUENCY_RECORD_NUMBER 0x00000012 /// #define EFI_PROCESSOR_STATUS_RECORD_NUMBER 0x0000000E
#define EFI_PROCESSOR_ASSET_TAG_RECORD_NUMBER 0x00000013 /// #define EFI_PROCESSOR_SOCKET_TYPE_RECORD_NUMBER 0x0000000F
#define EFI_PROCESSOR_MAX_FSB_FREQUENCY_RECORD_NUMBER 0x00000014 /// #define EFI_PROCESSOR_SOCKET_NAME_RECORD_NUMBER 0x00000010
#define EFI_PROCESSOR_PACKAGE_NUMBER_RECORD_NUMBER 0x00000015 /// #define EFI_PROCESSOR_CACHE_ASSOCIATION_RECORD_NUMBER 0x00000011
#define EFI_PROCESSOR_FREQUENCY_LIST_RECORD_NUMBER 0x00000016 /// #define EFI_PROCESSOR_MAX_FREQUENCY_RECORD_NUMBER 0x00000012
#define EFI_PROCESSOR_FSB_FREQUENCY_LIST_RECORD_NUMBER 0x00000017 /// #define EFI_PROCESSOR_ASSET_TAG_RECORD_NUMBER 0x00000013
#define EFI_PROCESSOR_HEALTH_STATUS_RECORD_NUMBER 0x00000018 /// #define EFI_PROCESSOR_MAX_FSB_FREQUENCY_RECORD_NUMBER 0x00000014
/// #define EFI_PROCESSOR_PACKAGE_NUMBER_RECORD_NUMBER 0x00000015
/// #define EFI_PROCESSOR_FREQUENCY_LIST_RECORD_NUMBER 0x00000016
/// #define EFI_PROCESSOR_FSB_FREQUENCY_LIST_RECORD_NUMBER 0x00000017
/// #define EFI_PROCESSOR_HEALTH_STATUS_RECORD_NUMBER 0x00000018
///
/// Keep the definition unchanged for backward compatibility.
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;
/// ///
/// Inconsistent with specification here: /// Inconsistent with specification here:
@ -723,7 +787,7 @@ typedef union {
EFI_PROCESSOR_SOCKET_TYPE_DATA ProcessorSocketType; EFI_PROCESSOR_SOCKET_TYPE_DATA ProcessorSocketType;
EFI_PROCESSOR_SOCKET_NAME_DATA ProcessorSocketName; EFI_PROCESSOR_SOCKET_NAME_DATA ProcessorSocketName;
EFI_PROCESSOR_ASSET_TAG_DATA ProcessorAssetTag; EFI_PROCESSOR_ASSET_TAG_DATA ProcessorAssetTag;
EFI_PROCESSOR_HEALTH_STATUS_DATA ProcessorHealthStatus; EFI_PROCESSOR_HEALTH_STATUS ProcessorHealthStatus;
EFI_PROCESSOR_PACKAGE_NUMBER_DATA ProcessorPackageNumber; EFI_PROCESSOR_PACKAGE_NUMBER_DATA ProcessorPackageNumber;
} EFI_CPU_VARIABLE_RECORD; } EFI_CPU_VARIABLE_RECORD;
@ -735,7 +799,12 @@ typedef struct {
#define EFI_CACHE_SUBCLASS_VERSION 0x00010000 #define EFI_CACHE_SUBCLASS_VERSION 0x00010000
typedef EFI_EXP_BASE2_DATA EFI_CACHE_SIZE_DATA; typedef EFI_EXP_BASE2_DATA EFI_CACHE_SIZE_DATA;
typedef EFI_EXP_BASE2_DATA EFI_CACHE_MAXIMUM_SIZE_DATA; ///
/// Inconsistent with specification here:
/// In MiscSubclass spec 0.9, the naming is EFI_CACHE_MAXIMUM_SIZE_DATA.
/// Keep it unchanged for backward compatibilty.
///
typedef EFI_EXP_BASE2_DATA EFI_MAXIMUM_CACHE_SIZE_DATA;
typedef EFI_EXP_BASE10_DATA EFI_CACHE_SPEED_DATA; typedef EFI_EXP_BASE10_DATA EFI_CACHE_SPEED_DATA;
typedef STRING_REF EFI_CACHE_SOCKET_DATA; typedef STRING_REF EFI_CACHE_SOCKET_DATA;
@ -782,7 +851,8 @@ typedef enum {
/// ///
/// Inconsistent with specification here: /// Inconsistent with specification here:
/// It's a typo of CacheSubclass 0.9 spec. It should be UINT32 type since it refers to a 32bit width data. /// In CacheSubclass 0.9 spec. It defines the field type as UINT16.
/// In fact, it should be UINT32 type since it refers to a 32bit width data.
/// ///
typedef struct { typedef struct {
UINT32 Level :3; UINT32 Level :3;
@ -842,7 +912,7 @@ typedef enum {
/// ///
typedef union { typedef union {
EFI_CACHE_SIZE_DATA CacheSize; EFI_CACHE_SIZE_DATA CacheSize;
EFI_CACHE_MAXIMUM_SIZE_DATA MaximumCacheSize; EFI_MAXIMUM_CACHE_SIZE_DATA MaximumCacheSize;
EFI_CACHE_SPEED_DATA CacheSpeed; EFI_CACHE_SPEED_DATA CacheSpeed;
EFI_CACHE_SOCKET_DATA CacheSocket; EFI_CACHE_SOCKET_DATA CacheSocket;
EFI_CACHE_SRAM_TYPE_DATA CacheSramType; EFI_CACHE_SRAM_TYPE_DATA CacheSramType;
@ -851,7 +921,7 @@ typedef union {
EFI_CACHE_TYPE_DATA CacheType; EFI_CACHE_TYPE_DATA CacheType;
EFI_CACHE_ASSOCIATIVITY_DATA CacheAssociativity; EFI_CACHE_ASSOCIATIVITY_DATA CacheAssociativity;
EFI_CACHE_CONFIGURATION_DATA CacheConfig; EFI_CACHE_CONFIGURATION_DATA CacheConfig;
EFI_PROCESSOR_CACHE_ASSOCIATION_DATA CacheAssociation; EFI_CACHE_ASSOCIATION_DATA CacheAssociation;
} EFI_CACHE_VARIABLE_RECORD; } EFI_CACHE_VARIABLE_RECORD;
typedef struct { typedef struct {
@ -1146,8 +1216,11 @@ typedef struct {
/// ///
/// The memory speed in megahertz (MHz). A value of 0x00 denotes that /// The memory speed in megahertz (MHz). A value of 0x00 denotes that
/// the speed is unknown. /// the speed is unknown.
/// /// Inconsistent with specification here:
EFI_EXP_BASE10_DATA MemoryTypeSpeed; /// In MemSubclass spec 0.9, the naming is MemoryTypeSpeed.
/// Keep it unchanged for backward compatibilty.
///
EFI_EXP_BASE10_DATA MemorySpeed;
/// ///
/// The memory state. /// The memory state.
/// ///
@ -1547,6 +1620,8 @@ typedef struct {
#define EFI_MISC_SUBCLASS_VERSION 0x0100 #define EFI_MISC_SUBCLASS_VERSION 0x0100
#pragma pack(1)
// //
// Last PCI Bus Number // Last PCI Bus Number
// //
@ -1765,8 +1840,8 @@ typedef enum {
typedef struct { typedef struct {
/// ///
/// Inconsistent with specification here: /// Inconsistent with specification here:
/// It's a typo of MiscSubclass 0.9 spec. It should be a variable /// In MiscSubclass 0.9 spec. It have a wrong field name "EFI_MISC_CHASSIS_TYPE".
/// name "ChassisType" rather than a type "EFI_MISC_CHASSIS_TYPE". /// Change it to "ChassisType" to pass build.
/// ///
UINT32 ChassisType :16; UINT32 ChassisType :16;
UINT32 ChassisLockPresent:1; UINT32 ChassisLockPresent:1;
@ -1940,18 +2015,13 @@ typedef enum {
EfiSlotTypeAgp = 0x0F, EfiSlotTypeAgp = 0x0F,
/// ///
/// Inconsistent with specification here: /// Inconsistent with specification here:
/// In MiscSubclass spec 0.9, there is a typo on this field. /// In MiscSubclass spec 0.9, its naming should be EfiSlotTypeAgp2X
/// Its naming should be EfiSlotTypeAgp2X rather than EfiSlotTypeApg2X. /// rather than EfiSlotTypeApg2X.
/// ///
EfiSlotTypeAgp2X = 0x10, EfiSlotTypeAgp2X = 0x10,
EfiSlotTypeAgp4X = 0x11, EfiSlotTypeAgp4X = 0x11,
EfiSlotTypePciX = 0x12, EfiSlotTypePciX = 0x12,
/// EfiSlotTypeAgp8x = 0x13,
/// Inconsistent with specification here:
/// In MiscSubclass spec 0.9, there is a typo on this field.
/// Its naming should be EfiSlotTypeAgp8X rather than EfiSlotTypeAgp8x.
///
EfiSlotTypeAgp8X = 0x13,
EfiSlotTypePC98C20 = 0xA0, EfiSlotTypePC98C20 = 0xA0,
EfiSlotTypePC98C24 = 0xA1, EfiSlotTypePC98C24 = 0xA1,
EfiSlotTypePC98E = 0xA2, EfiSlotTypePC98E = 0xA2,
@ -2038,7 +2108,12 @@ typedef struct {
typedef struct { typedef struct {
STRING_REF OnBoardDeviceDescription; STRING_REF OnBoardDeviceDescription;
EFI_MISC_ONBOARD_DEVICE_STATUS OnBoardDeviceType; ///
/// Inconsistent with specification here:
/// In MiscSubclass spec 0.9, the naming is OnBoardDeviceType.
/// Keep it unchanged for backward compatibilty.
///
EFI_MISC_ONBOARD_DEVICE_STATUS OnBoardDeviceStatus;
EFI_DEVICE_PATH_PROTOCOL OnBoardDevicePath; EFI_DEVICE_PATH_PROTOCOL OnBoardDevicePath;
} EFI_MISC_ONBOARD_DEVICE_DATA; } EFI_MISC_ONBOARD_DEVICE_DATA;
@ -2150,43 +2225,57 @@ typedef struct {
// //
// Portable Battery - SMBIOS Type 22 // Portable Battery - SMBIOS Type 22
// //
#define EFI_MISC_BATTERY_LOCATION_RECORD_NUMBER 0x00000010 ///
/// Inconsistent with specification here:
/// In MiscSubclass spec 0.9, the naming is EFI_MISC_BATTERY_LOCATION_RECORD_NUMBER.
/// Keep it unchanged for backward compatibilty.
///
#define EFI_MISC_PORTABLE_BATTERY_RECORD_NUMBER 0x00000010
///
/// Inconsistent with specification here:
/// In MiscSubclass spec 0.9, the structure name is EFI_MISC_BATTERY_DEVICE_CHEMISTRY.
/// And all field namings are also different with spec.
/// Keep it unchanged for backward compatibilty.
///
typedef enum { typedef enum {
EfiBatteryDeviceChemistryTypeOther = 1, EfiPortableBatteryDeviceChemistryOther = 1,
EfiBatteryDeviceChemistryTypeUnknown = 2, EfiPortableBatteryDeviceChemistryUnknown = 2,
EfiBatteryDeviceChemistryTypeLeadAcid = 3, EfiPortableBatteryDeviceChemistryLeadAcid = 3,
EfiBatteryDeviceChemistryTypeNickelCadmium = 4, EfiPortableBatteryDeviceChemistryNickelCadmium = 4,
EfiBatteryDeviceChemistryTypeNickelMetalHydride = 5, EfiPortableBatteryDeviceChemistryNickelMetalHydride = 5,
EfiBatteryDeviceChemistryTypeLithiumIon = 6, EfiPortableBatteryDeviceChemistryLithiumIon = 6,
EfiBatteryDeviceChemistryTypeZincAir = 7, EfiPortableBatteryDeviceChemistryZincAir = 7,
EfiBatteryDeviceChemistryTypeLithiumPolymer = 8 EfiPortableBatteryDeviceChemistryLithiumPolymer = 8
} EFI_MISC_BATTERY_DEVICE_CHEMISTRY; } EFI_MISC_PORTABLE_BATTERY_DEVICE_CHEMISTRY;
typedef struct {
UINT32 Date :5;
UINT32 Month :4;
UINT32 Year :7;
UINT32 Reserved :16;
} EFI_MISC_BATTERY_SBDS_MANUFACTURE_DATE;
///
/// Inconsistent with specification here:
/// In MiscSubclass spec 0.9, the structure name is EFI_MISC_BATTERY_LOCATION_DATA.
/// And the name and the order of the fields are also different with spec.
/// Keep it unchanged for backward compatibilty.
///
typedef struct { typedef struct {
STRING_REF BatteryLocation; STRING_REF Location;
STRING_REF BatteryManufacturer; STRING_REF Manufacturer;
STRING_REF BatteryManufactureDate; STRING_REF ManufactureDate;
STRING_REF BatterySerialNumber; STRING_REF SerialNumber;
STRING_REF BatteryDeviceName; STRING_REF DeviceName;
STRING_REF BatterySbdsVersionNumber; EFI_MISC_PORTABLE_BATTERY_DEVICE_CHEMISTRY
STRING_REF BatterySbdsDeviceChemistry; DeviceChemistry;
EFI_MISC_BATTERY_DEVICE_CHEMISTRY BatteryDeviceChemistry; UINT16 DesignCapacity;
EFI_EXP_BASE10_DATA BatteryDesignCapacity; UINT16 DesignVoltage;
EFI_EXP_BASE10_DATA BatteryDesignVoltage; STRING_REF SBDSVersionNumber;
UINT16 BatteryMaximumError; UINT8 MaximumError;
UINT16 BatterySbdsSerialNumber; UINT16 SBDSSerialNumber;
EFI_MISC_BATTERY_SBDS_MANUFACTURE_DATE UINT16 SBDSManufactureDate;
BatterySbdsManufacturingDate; STRING_REF SBDSDeviceChemistry;
UINT32 BatteryOemSpecific; UINT8 DesignCapacityMultiplier;
} EFI_MISC_BATTERY_LOCATION_DATA; UINT32 OEMSpecific;
UINT8 BatteryNumber; // Temporary
BOOLEAN Valid; // Is entry valid - Temporary
} EFI_MISC_PORTABLE_BATTERY;
// //
// Misc. Reset Capabilities - SMBIOS Type 23 // Misc. Reset Capabilities - SMBIOS Type 23
@ -2224,7 +2313,7 @@ typedef struct {
/// ///
/// Inconsistent with specification here: /// Inconsistent with specification here:
/// In MiscSubclass spec0.9, it only mention the possible value of each field in /// In MiscSubclass spec 0.9, it only mention the possible value of each field in
/// EFI_MISC_HARDWARE_SECURITY_SETTINGS. /// EFI_MISC_HARDWARE_SECURITY_SETTINGS.
/// It's implementation-specific to simplify the code logic. /// It's implementation-specific to simplify the code logic.
/// ///
@ -2400,6 +2489,11 @@ typedef struct {
// //
#define EFI_MISC_BOOT_INFORMATION_STATUS_RECORD_NUMBER 0x0000001A #define EFI_MISC_BOOT_INFORMATION_STATUS_RECORD_NUMBER 0x0000001A
///
/// Inconsistent with specification here:
/// In MiscSubclass spec 0.9, the structure name is EFI_MISC_BOOT_INFORMATION_STATUS_TYPE.
/// Keep it unchanged for backward compatibilty.
///
typedef enum { typedef enum {
EfiBootInformationStatusNoError = 0x00, EfiBootInformationStatusNoError = 0x00,
EfiBootInformationStatusNoBootableMedia = 0x01, EfiBootInformationStatusNoBootableMedia = 0x01,
@ -2413,10 +2507,15 @@ typedef enum {
EfiBootInformationStatusStartReserved = 0x09, EfiBootInformationStatusStartReserved = 0x09,
EfiBootInformationStatusStartOemSpecific = 0x80, EfiBootInformationStatusStartOemSpecific = 0x80,
EfiBootInformationStatusStartProductSpecific = 0xC0 EfiBootInformationStatusStartProductSpecific = 0xC0
} EFI_MISC_BOOT_INFORMATION_STATUS_TYPE; } EFI_MISC_BOOT_INFORMATION_STATUS_DATA_TYPE;
typedef struct { typedef struct {
EFI_MISC_BOOT_INFORMATION_STATUS_TYPE BootInformationStatus; ///
/// Inconsistent with specification here:
/// In MiscSubclass spec 0.9, the field name is EFI_MISC_BOOT_INFORMATION_STATUS_TYPE.
/// Keep it unchanged for backward compatibilty.
///
EFI_MISC_BOOT_INFORMATION_STATUS_DATA_TYPE BootInformationStatus;
UINT8 BootInformationData[9]; UINT8 BootInformationData[9];
} EFI_MISC_BOOT_INFORMATION_STATUS_DATA; } EFI_MISC_BOOT_INFORMATION_STATUS_DATA;
@ -2469,7 +2568,7 @@ typedef struct {
EFI_INTER_LINK_DATA ManagementDeviceComponentLink; EFI_INTER_LINK_DATA ManagementDeviceComponentLink;
/// ///
/// Inconsistent with specification here: /// Inconsistent with specification here:
/// In MiscSubclass spec0.9, this field is NOT defined. /// In MiscSubclass spec 0.9, this field is NOT defined.
/// It's introduced for SmBios 2.6 spec type 35. /// It's introduced for SmBios 2.6 spec type 35.
/// ///
EFI_INTER_LINK_DATA ManagementDeviceThresholdLink; EFI_INTER_LINK_DATA ManagementDeviceThresholdLink;
@ -2503,19 +2602,28 @@ typedef struct {
#define EFI_MISC_IPMI_INTERFACE_TYPE_RECORD_NUMBER 0x0000001D #define EFI_MISC_IPMI_INTERFACE_TYPE_RECORD_NUMBER 0x0000001D
// ///
//System Power supply Record - SMBIOS Type 39 /// System Power supply Record - SMBIOS Type 39
// ///
/// Inconsistent with specification here:
/// In MiscSubclass spec 0.9, the type of all fields are UINT32.
/// Keep it unchanged for backward compatibilty.
///
typedef struct { typedef struct {
UINT32 PowerSupplyHotReplaceable:1; UINT16 PowerSupplyHotReplaceable:1;
UINT32 PowerSupplyPresent :1; UINT16 PowerSupplyPresent :1;
UINT32 PowerSupplyUnplugged :1; UINT16 PowerSupplyUnplugged :1;
UINT32 InputVoltageRangeSwitch :4; UINT16 InputVoltageRangeSwitch :4;
UINT32 PowerSupplyStatus :3; UINT16 PowerSupplyStatus :3;
UINT32 PowerSupplyType :4; UINT16 PowerSupplyType :4;
UINT32 Reserved :18; UINT16 Reserved :2;
} EFI_MISC_POWER_SUPPLY_CHARACTERISTICS; } EFI_MISC_POWER_SUPPLY_CHARACTERISTICS;
///
/// Inconsistent with specification here:
/// In MiscSubclass spec 0.9, the field name is EFI_MISC_POWER_SUPPLY_UNIT_GROUP_DATA.
/// Keep it unchanged for backward compatibilty.
///
typedef struct { typedef struct {
UINT16 PowerUnitGroup; UINT16 PowerUnitGroup;
STRING_REF PowerSupplyLocation; STRING_REF PowerSupplyLocation;
@ -2530,21 +2638,31 @@ typedef struct {
EFI_INTER_LINK_DATA PowerSupplyInputVoltageProbeLink; EFI_INTER_LINK_DATA PowerSupplyInputVoltageProbeLink;
EFI_INTER_LINK_DATA PowerSupplyCoolingDeviceLink; EFI_INTER_LINK_DATA PowerSupplyCoolingDeviceLink;
EFI_INTER_LINK_DATA PowerSupplyInputCurrentProbeLink; EFI_INTER_LINK_DATA PowerSupplyInputCurrentProbeLink;
} EFI_MISC_POWER_SUPPLY_UNIT_GROUP_DATA; } EFI_MISC_SYSTEM_POWER_SUPPLY_DATA;
#define EFI_MISC_SYSTEM_POWER_SUPPLY_RECORD_NUMBER 0x0000001E #define EFI_MISC_SYSTEM_POWER_SUPPLY_RECORD_NUMBER 0x0000001E
// ///
// OEM Data Record - SMBIOS Type 0x80-0xFF /// OEM Data Record - SMBIOS Type 0x80-0xFF
// ///
/// Inconsistent with specification here:
/// In MiscSubclass spec 0.9, the structure name is EFI_SMBIOS_STRUCTURE_HDR.
/// Due to this structure is commonly used by vendor to construct SmBios type 0x80~0xFF table,
/// Keep it unchanged for backward compatibilty.
///
typedef struct { typedef struct {
UINT8 Type; UINT8 Type;
UINT8 Length; UINT8 Length;
UINT16 Handle; UINT16 Handle;
} EFI_SMBIOS_STRUCTURE_HDR; } SMBIOS_STRUCTURE_HDR;
typedef struct { typedef struct {
EFI_SMBIOS_STRUCTURE_HDR Header; ///
/// Inconsistent with specification here:
/// In MiscSubclass spec 0.9, the field name is EFI_SMBIOS_STRUCTURE_HDR.
/// Keep it unchanged for backward compatibilty.
///
SMBIOS_STRUCTURE_HDR Header;
UINT8 RawData[1]; UINT8 RawData[1];
} EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION_DATA; } EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION_DATA;
@ -2554,14 +2672,14 @@ typedef struct {
/// Misc. System Event Log - SMBIOS Type 15 /// Misc. System Event Log - SMBIOS Type 15
/// ///
/// Inconsistent with specification here: /// Inconsistent with specification here:
/// In MiscSubclass spec0.9, the following data structures are NOT defined. /// In MiscSubclass spec 0.9, the following data structures are NOT defined.
/// It's introduced for SmBios 2.6 spec type 15. /// It's introduced for SmBios 2.6 spec type 15.
/// ///
#define EFI_MISC_SYSTEM_EVENT_LOG_RECORD_NUMBER 0x00000020 #define EFI_MISC_SYSTEM_EVENT_LOG_RECORD_NUMBER 0x00000020
/// ///
/// Inconsistent with specification here: /// Inconsistent with specification here:
/// In MiscSubclass spec0.9, the following data structures are NOT defined. /// In MiscSubclass spec 0.9, the following data structures are NOT defined.
/// It's introduced for SmBios 2.6 spec type 15. /// It's introduced for SmBios 2.6 spec type 15.
/// ///
typedef struct { typedef struct {
@ -2593,13 +2711,13 @@ typedef struct {
/// Management Device Threshold Data Record - SMBIOS Type 36 /// Management Device Threshold Data Record - SMBIOS Type 36
/// ///
/// Inconsistent with specification here: /// Inconsistent with specification here:
/// In MiscSubclass spec0.9, the following data structures are NOT defined. /// In MiscSubclass spec 0.9, the following data structures are NOT defined.
/// It's introduced for SmBios 2.6 spec type 36. /// It's introduced for SmBios 2.6 spec type 36.
/// ///
#define EFI_MISC_MANAGEMENT_DEVICE_THRESHOLD_RECORD_NUMBER 0x00000021 #define EFI_MISC_MANAGEMENT_DEVICE_THRESHOLD_RECORD_NUMBER 0x00000021
/// ///
/// Inconsistent with specification here: /// Inconsistent with specification here:
/// In MiscSubclass spec0.9, the following data structures are NOT defined. /// In MiscSubclass spec 0.9, the following data structures are NOT defined.
/// It's introduced for SmBios 2.6 spec type 36. /// It's introduced for SmBios 2.6 spec type 36.
/// ///
typedef struct { typedef struct {
@ -2630,7 +2748,7 @@ typedef EFI_MISC_SYSTEM_LANGUAGE_STRING_DATA EFI_MISC_SYSTEM_LANGUA
typedef EFI_MISC_SYSTEM_EVENT_LOG_DATA EFI_MISC_SYSTEM_EVENT_LOG; 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_BIS_ENTRY_POINT_DATA EFI_MISC_BIS_ENTRY_POINT;
typedef EFI_MISC_BOOT_INFORMATION_STATUS_DATA EFI_MISC_BOOT_INFORMATION_STATUS; typedef EFI_MISC_BOOT_INFORMATION_STATUS_DATA EFI_MISC_BOOT_INFORMATION_STATUS;
typedef EFI_MISC_POWER_SUPPLY_UNIT_GROUP_DATA EFI_MISC_SYSTEM_POWER_SUPPLY; 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 EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION_DATA EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION;
typedef EFI_MISC_SCHEDULED_POWER_ON_MONTH_DATA EFI_MISC_SCHEDULED_POWER_ON_MONTH; typedef EFI_MISC_SCHEDULED_POWER_ON_MONTH_DATA EFI_MISC_SCHEDULED_POWER_ON_MONTH;
typedef EFI_MISC_VOLTAGE_PROBE_DESCRIPTION_DATA EFI_MISC_VOLTAGE_PROBE_DESCRIPTION; typedef EFI_MISC_VOLTAGE_PROBE_DESCRIPTION_DATA EFI_MISC_VOLTAGE_PROBE_DESCRIPTION;
@ -2678,18 +2796,21 @@ typedef union {
EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION_DATA EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION_DATA
MiscmangementDeviceComponentDescriptionData; MiscmangementDeviceComponentDescriptionData;
EFI_MISC_IPMI_INTERFACE_TYPE_DATA MiscIpmiInterfaceTypeData; EFI_MISC_IPMI_INTERFACE_TYPE_DATA MiscIpmiInterfaceTypeData;
EFI_MISC_POWER_SUPPLY_UNIT_GROUP_DATA MiscPowerSupplyInfo; EFI_MISC_SYSTEM_POWER_SUPPLY_DATA MiscPowerSupplyInfo;
EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION_DATA MiscSmbiosStructEncapsulation; EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION_DATA MiscSmbiosStructEncapsulation;
EFI_MISC_MANAGEMENT_DEVICE_THRESHOLD MiscManagementDeviceThreshold; EFI_MISC_MANAGEMENT_DEVICE_THRESHOLD MiscManagementDeviceThreshold;
} EFI_MISC_SUBCLASS_RECORDS; } EFI_MISC_SUBCLASS_RECORDS;
/// ///
/// Sub Class Header type1 /// Inconsistent with specification here:
/// In MemSubclass spec 0.9, the following data structures are NOT defined.
/// It is implementation-specific to simplify the code logic.
/// ///
typedef struct { typedef struct {
EFI_SUBCLASS_TYPE1_HEADER Header; EFI_SUBCLASS_TYPE1_HEADER Header;
EFI_MISC_SUBCLASS_RECORDS Record; EFI_MISC_SUBCLASS_RECORDS Record;
} EFI_MISC_SUBCLASS_DRIVER_DATA; } EFI_MISC_SUBCLASS_DRIVER_DATA;
#pragma pack()
/// ///
/// Inconsistent with specification here: /// Inconsistent with specification here: