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