///\r
typedef UINTN EFI_PROCESSOR_PACKAGE_NUMBER_DATA;\r
\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
+#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
+///\r
+/// Inconsistent with specification here: \r
+/// In ProcSubclass spec 0.9, the union type data structure is NOT defined.\r
+/// It's implementation-specific to simplify the code logic.\r
+///\r
typedef union {\r
EFI_PROCESSOR_CORE_FREQUENCY_LIST_DATA ProcessorCoreFrequencyList;\r
EFI_PROCESSOR_FSB_FREQUENCY_LIST_DATA ProcessorFsbFrequencyList;\r
CacheConfigRecordType = 10\r
} EFI_CACHE_VARIABLE_RECORD_TYPE;\r
\r
-\r
+///\r
+/// Inconsistent with specification here: \r
+/// In CacheSubclass spec0.9, the union type data structure is NOT defined.\r
+/// It's implementation-specific to simplify the code logic.\r
+///\r
typedef union {\r
EFI_CACHE_SIZE_DATA CacheSize;\r
EFI_CACHE_MAXIMUM_SIZE_DATA MaximumCacheSize;\r
//\r
// Memory. Controller Information - SMBIOS Type 5\r
//\r
+///\r
+/// Inconsistent with specification here: \r
+/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// It's introduced for SmBios 2.6 type 5.\r
+///\r
#define EFI_MEMORY_CONTROLLER_INFORMATION_RECORD_NUMBER 0x00000008\r
\r
+///\r
+/// Inconsistent with specification here: \r
+/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// It's introduced for SmBios 2.6 type 5.\r
+///\r
typedef enum { \r
EfiErrorDetectingMethodOther = 1,\r
EfiErrorDetectingMethodUnknown = 2,\r
EfiErrorDetectingMethodCrc = 8\r
} EFI_MEMORY_ERROR_DETECT_METHOD_TYPE;\r
\r
+///\r
+/// Inconsistent with specification here: \r
+/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// It's introduced for SmBios 2.6 type 5.\r
+///\r
typedef struct {\r
UINT8 Other :1;\r
UINT8 Unknown :1;\r
UINT8 Reserved :2;\r
} EFI_MEMORY_ERROR_CORRECT_CAPABILITY;\r
\r
+///\r
+/// Inconsistent with specification here: \r
+/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// It's introduced for SmBios 2.6 type 5.\r
+///\r
typedef enum { \r
EfiMemoryInterleaveOther = 1,\r
EfiMemoryInterleaveUnknown = 2,\r
EfiMemoryInterleaveSixteenWay = 7\r
} EFI_MEMORY_SUPPORT_INTERLEAVE_TYPE;\r
\r
+///\r
+/// Inconsistent with specification here: \r
+/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// It's introduced for SmBios 2.6 type 5.\r
+///\r
typedef struct {\r
UINT16 Other :1;\r
UINT16 Unknown :1;\r
UINT16 Reserved :11;\r
} EFI_MEMORY_SPEED_TYPE;\r
\r
+///\r
+/// Inconsistent with specification here: \r
+/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// It's introduced for SmBios 2.6 type 5.\r
+///\r
typedef struct {\r
UINT16 Other :1;\r
UINT16 Unknown :1;\r
UINT16 Reserved :5;\r
} EFI_MEMORY_SUPPORTED_TYPE;\r
\r
+///\r
+/// Inconsistent with specification here: \r
+/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// It's introduced for SmBios 2.6 type 5.\r
+///\r
typedef struct {\r
UINT8 Five :1;\r
UINT8 Three :1;\r
UINT8 Reserved:5;\r
} EFI_MEMORY_MODULE_VOLTAGE_TYPE;\r
\r
-//\r
-// EFI_MEMORY_CONTROLLER_INFORMATION is obsolete\r
-// Use EFI_MEMORY_CONTROLLER_INFORMATION_DATA instead\r
-//\r
+///\r
+/// EFI_MEMORY_CONTROLLER_INFORMATION is obsolete\r
+/// Use EFI_MEMORY_CONTROLLER_INFORMATION_DATA instead\r
+///\r
+/// Inconsistent with specification here: \r
+/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// It's introduced for SmBios 2.6 type 5.\r
+///\r
typedef struct {\r
EFI_MEMORY_ERROR_DETECT_METHOD_TYPE ErrorDetectingMethod;\r
EFI_MEMORY_ERROR_CORRECT_CAPABILITY ErrorCorrectingCapability;\r
UINT16 *MemoryModuleConfigHandles;\r
} EFI_MEMORY_CONTROLLER_INFORMATION;\r
\r
+///\r
+/// Inconsistent with specification here: \r
+/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// It's introduced for SmBios 2.6 type 5.\r
+///\r
typedef struct {\r
EFI_MEMORY_ERROR_DETECT_METHOD_TYPE ErrorDetectingMethod;\r
EFI_MEMORY_ERROR_CORRECT_CAPABILITY ErrorCorrectingCapability;\r
EFI_INTER_LINK_DATA MemoryModuleConfig[1];\r
} EFI_MEMORY_CONTROLLER_INFORMATION_DATA;\r
\r
-//\r
-// Memory. Error Information - SMBIOS Type 18\r
-//\r
+///\r
+/// Memory. Error Information - SMBIOS Type 18\r
+///\r
+/// Inconsistent with specification here: \r
+/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// It's introduced for SmBios 2.6 type 18.\r
+///\r
#define EFI_MEMORY_32BIT_ERROR_INFORMATION_RECORD_NUMBER 0x00000009\r
-\r
+///\r
+/// Inconsistent with specification here: \r
+/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// It's introduced for SmBios 2.6 type 18.\r
+///\r
typedef enum { \r
EfiMemoryErrorOther = 1,\r
EfiMemoryErrorUnknown = 2,\r
EfiMemoryErrorCorrected = 13,\r
EfiMemoryErrorUnCorrectable = 14\r
} EFI_MEMORY_ERROR_TYPE;\r
-\r
+///\r
+/// Inconsistent with specification here: \r
+/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// It's introduced for SmBios 2.6 type 18.\r
+///\r
typedef enum { \r
EfiMemoryGranularityOther = 1,\r
EfiMemoryGranularityOtherUnknown = 2,\r
EfiMemoryGranularityDeviceLevel = 3,\r
EfiMemoryGranularityMemPartitionLevel = 4\r
} EFI_MEMORY_ERROR_GRANULARITY_TYPE;\r
-\r
+///\r
+/// Inconsistent with specification here: \r
+/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// It's introduced for SmBios 2.6 type 18.\r
+///\r
typedef enum { \r
EfiMemoryErrorOperationOther = 1,\r
EfiMemoryErrorOperationUnknown = 2,\r
EfiMemoryErrorOperationWrite = 4,\r
EfiMemoryErrorOperationPartialWrite = 5\r
} EFI_MEMORY_ERROR_OPERATION_TYPE;\r
-\r
+///\r
+/// Inconsistent with specification here: \r
+/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// It's introduced for SmBios 2.6 type 18.\r
+///\r
typedef struct {\r
EFI_MEMORY_ERROR_TYPE MemoryErrorType;\r
EFI_MEMORY_ERROR_GRANULARITY_TYPE MemoryErrorGranularity;\r
UINT32 DeviceErrorResolution;\r
} EFI_MEMORY_32BIT_ERROR_INFORMATION;\r
\r
-//\r
-// Memory. Error Information - SMBIOS Type 33\r
-//\r
+///\r
+/// Memory. Error Information - SMBIOS Type 33\r
+///\r
+/// Inconsistent with specification here: \r
+/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// It's introduced for SmBios 2.6 type 33.\r
+///\r
#define EFI_MEMORY_64BIT_ERROR_INFORMATION_RECORD_NUMBER 0x0000000A\r
\r
+///\r
+/// Inconsistent with specification here: \r
+/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// It's introduced for SmBios 2.6 type 33.\r
+///\r
typedef struct {\r
EFI_MEMORY_ERROR_TYPE MemoryErrorType;\r
EFI_MEMORY_ERROR_GRANULARITY_TYPE MemoryErrorGranularity;\r
UINT32 DeviceErrorResolution;\r
} EFI_MEMORY_64BIT_ERROR_INFORMATION;\r
\r
+///\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 union _EFI_MEMORY_SUBCLASS_RECORDS {\r
EFI_MEMORY_SIZE_DATA SizeData;\r
EFI_MEMORY_ARRAY_LOCATION_DATA ArrayLocationData;\r
EFI_MISC_BIOS_CHARACTERISTICS BiosCharacteristics1;\r
EFI_MISC_BIOS_CHARACTERISTICS_EXTENSION \r
BiosCharacteristics2;\r
+ ///\r
+ /// Inconsistent with specification here: \r
+ /// In MiscSubclass spec 0.9, this data structure and corrsponding fields are NOT defined.\r
+ /// It's introduced for SmBios 2.6 spec type 0.\r
+ ///\r
UINT8 BiosMajorRelease;\r
+ ///\r
+ /// Inconsistent with specification here: \r
+ /// In MiscSubclass spec 0.9, this data structure and corrsponding fields are NOT defined.\r
+ /// It's introduced for SmBios 2.6 spec type 0.\r
+ ///\r
UINT8 BiosMinorRelease;\r
+ ///\r
+ /// Inconsistent with specification here: \r
+ /// In MiscSubclass spec 0.9, this data structure and corrsponding fields are NOT defined.\r
+ /// It's introduced for SmBios 2.6 spec type 0.\r
+ ///\r
UINT8 BiosEmbeddedFirmwareMajorRelease;\r
+ ///\r
+ /// Inconsistent with specification here: \r
+ /// In MiscSubclass spec 0.9, this data structure and corrsponding fields are NOT defined.\r
+ /// It's introduced for SmBios 2.6 spec type 0.\r
+ ///\r
UINT8 BiosEmbeddedFirmwareMinorRelease;\r
} EFI_MISC_BIOS_VENDOR_DATA;\r
\r
STRING_REF SystemSerialNumber;\r
EFI_GUID SystemUuid;\r
EFI_MISC_SYSTEM_WAKEUP_TYPE SystemWakeupType;\r
+ ///\r
+ /// Inconsistent with specification here: \r
+ /// In MiscSubclass spec 0.9, this data structure and corrsponding fields are NOT defined.\r
+ /// It's introduced for SmBios 2.6 spec type 1.\r
+ ///\r
STRING_REF SystemSKUNumber;\r
+ ///\r
+ /// Inconsistent with specification here: \r
+ /// In MiscSubclass spec 0.9, this data structure and corrsponding fields are NOT defined.\r
+ /// It's introduced for SmBios 2.6 spec type 1.\r
+ ///\r
STRING_REF SystemFamily;\r
} EFI_MISC_SYSTEM_MANUFACTURER_DATA;\r
\r
EfiSlotTypeNuBus = 0x0D,\r
EfiSlotTypePci66MhzCapable = 0x0E,\r
EfiSlotTypeAgp = 0x0F,\r
- EfiSlotTypeApg2X = 0x10,\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
+ ///\r
+ EfiSlotTypeAgp2X = 0x10,\r
EfiSlotTypeAgp4X = 0x11,\r
EfiSlotTypePciX = 0x12,\r
- EfiSlotTypeAgp4x = 0x13,\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
EfiSlotTypePC98C20 = 0xA0,\r
EfiSlotTypePC98C24 = 0xA1,\r
EfiSlotTypePC98E = 0xA2,\r
EfiSlotTypePC98LocalBus = 0xA3,\r
EfiSlotTypePC98Card = 0xA4,\r
+ ///\r
+ /// Inconsistent with specification here: \r
+ /// In MiscSubclass spec 0.9, this field isn't defined.\r
+ /// It's introduced for SmBios 2.6 spec type 9.\r
+ ///\r
EfiSlotTypePciExpress = 0xA5\r
} EFI_MISC_SLOT_TYPE;\r
\r
\r
typedef struct {\r
STRING_REF OnBoardDeviceDescription;\r
- EFI_MISC_ONBOARD_DEVICE_STATUS OnBoardDeviceStatus;\r
+ EFI_MISC_ONBOARD_DEVICE_STATUS OnBoardDeviceType;\r
EFI_DEVICE_PATH_PROTOCOL OnBoardDevicePath;\r
} EFI_MISC_ONBOARD_DEVICE_DATA;\r
\r
EFI_MISC_POINTING_DEVICE_INTERFACE PointingDeviceInterface;\r
UINT16 NumberPointingDeviceButtons;\r
EFI_DEVICE_PATH_PROTOCOL PointingDevicePath;\r
-} EFI_MISC_PORTING_DEVICE_TYPE_DATA;\r
+} EFI_MISC_POINTING_DEVICE_TYPE_DATA;\r
\r
//\r
// Portable Battery - SMBIOS Type 22\r
//\r
-#define EFI_MISC_PORTABLE_BATTERY_RECORD_NUMBER 0x00000010\r
+#define EFI_MISC_BATTERY_LOCATION_RECORD_NUMBER 0x00000010\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
-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
+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
#define EFI_MISC_HARDWARE_SECURITY_SETTINGS_DATA_RECORD_NUMBER 0x00000012\r
\r
+///\r
+/// Inconsistent with specification here: \r
+/// In MiscSubclass spec0.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
typedef enum {\r
EfiHardwareSecurityStatusDisabled = 0,\r
EfiHardwareSecurityStatusEnabled = 1,\r
} EFI_MISC_HARDWARE_SECURITY_STATUS;\r
\r
typedef struct {\r
- EFI_MISC_HARDWARE_SECURITY_STATUS FrontPanelResetStatus :2;\r
- EFI_MISC_HARDWARE_SECURITY_STATUS AdministratorPasswordStatus :2;\r
- EFI_MISC_HARDWARE_SECURITY_STATUS KeyboardPasswordStatus :2;\r
- EFI_MISC_HARDWARE_SECURITY_STATUS PowerOnPasswordStatus :2;\r
- EFI_MISC_HARDWARE_SECURITY_STATUS Reserved :24;\r
+ UINT32 FrontPanelResetStatus :2;\r
+ UINT32 AdministratorPasswordStatus :2;\r
+ UINT32 KeyboardPasswordStatus :2;\r
+ UINT32 PowerOnPasswordStatus :2;\r
+ UINT32 Reserved :24;\r
} EFI_MISC_HARDWARE_SECURITY_SETTINGS;\r
\r
typedef struct {\r
EfiBootInformationStatusStartReserved = 0x09,\r
EfiBootInformationStatusStartOemSpecific = 0x80,\r
EfiBootInformationStatusStartProductSpecific = 0xC0\r
-} EFI_MISC_BOOT_INFORMATION_STATUS_DATA_TYPE;\r
+} EFI_MISC_BOOT_INFORMATION_STATUS_TYPE;\r
\r
typedef struct {\r
- EFI_MISC_BOOT_INFORMATION_STATUS_DATA_TYPE BootInformationStatus;\r
+ EFI_MISC_BOOT_INFORMATION_STATUS_TYPE BootInformationStatus;\r
UINT8 BootInformationData[9];\r
} EFI_MISC_BOOT_INFORMATION_STATUS_DATA;\r
\r
STRING_REF ManagementDeviceComponentDescription;\r
EFI_INTER_LINK_DATA ManagementDeviceLink;\r
EFI_INTER_LINK_DATA ManagementDeviceComponentLink;\r
+ ///\r
+ /// Inconsistent with specification here: \r
+ /// In MiscSubclass spec0.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
} EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION_DATA;\r
\r
//System Power supply Record - SMBIOS Type 39\r
//\r
typedef struct {\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
-} POWER_SUPPLY_CHARACTERISTICS;\r
-\r
-typedef struct {\r
- UINT16 PowerUnitGroup;\r
- STRING_REF PowerSupplyLocation;\r
- STRING_REF PowerSupplyDeviceName;\r
- STRING_REF PowerSupplyManufacturer;\r
- STRING_REF PowerSupplySerialNumber;\r
- STRING_REF PowerSupplyAssetTagNumber;\r
- STRING_REF PowerSupplyModelPartNumber;\r
- STRING_REF PowerSupplyRevisionLevel;\r
- UINT16 PowerSupplyMaxPowerCapacity;\r
- POWER_SUPPLY_CHARACTERISTICS PowerSupplyCharacteristics;\r
- EFI_INTER_LINK_DATA PowerSupplyInputVoltageProbeLink;\r
- EFI_INTER_LINK_DATA PowerSupplyCoolingDeviceLink;\r
- EFI_INTER_LINK_DATA PowerSupplyInputCurrentProbeLink;\r
-} EFI_MISC_SYSTEM_POWER_SUPPLY_DATA;\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
+} EFI_MISC_POWER_SUPPLY_CHARACTERISTICS;\r
+\r
+typedef struct {\r
+ UINT16 PowerUnitGroup;\r
+ STRING_REF PowerSupplyLocation;\r
+ STRING_REF PowerSupplyDeviceName;\r
+ STRING_REF PowerSupplyManufacturer;\r
+ STRING_REF PowerSupplySerialNumber;\r
+ STRING_REF PowerSupplyAssetTagNumber;\r
+ STRING_REF PowerSupplyModelPartNumber;\r
+ STRING_REF PowerSupplyRevisionLevel;\r
+ UINT16 PowerSupplyMaxPowerCapacity;\r
+ EFI_MISC_POWER_SUPPLY_CHARACTERISTICS PowerSupplyCharacteristics;\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
\r
#define EFI_MISC_SYSTEM_POWER_SUPPLY_RECORD_NUMBER 0x0000001E\r
\r
UINT8 Type;\r
UINT8 Length;\r
UINT16 Handle;\r
-} SMBIOS_STRUCTURE_HDR;\r
+} EFI_SMBIOS_STRUCTURE_HDR;\r
\r
typedef struct {\r
- SMBIOS_STRUCTURE_HDR Header;\r
+ EFI_SMBIOS_STRUCTURE_HDR Header;\r
UINT8 RawData[1];\r
} EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION_DATA;\r
\r
#define EFI_MISC_SMBIOS_STRUCT_ENCAP_RECORD_NUMBER 0x0000001F\r
\r
-//\r
-// Misc. System Event Log - SMBIOS Type 15\r
-//\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
+/// 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
+/// It's introduced for SmBios 2.6 spec type 15.\r
+///\r
typedef struct {\r
UINT16 LogAreaLength;\r
UINT16 LogHeaderStartOffset;\r
#define ACCESS_MEMORY_MAPPED 0x03\r
#define ACCESS_GPNV 0x04\r
\r
-//\r
-//Management Device Threshold Data Record - SMBIOS Type 36\r
-//\r
+///\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
+/// It's introduced for SmBios 2.6 spec type 36.\r
+///\r
#define EFI_MISC_MANAGEMENT_DEVICE_THRESHOLD_RECORD_NUMBER 0x00000021\r
-\r
+///\r
+/// Inconsistent with specification here: \r
+/// In MiscSubclass spec0.9, the following data structures are NOT defined.\r
+/// It's introduced for SmBios 2.6 spec type 36.\r
+///\r
typedef struct {\r
UINT16 LowerThresNonCritical;\r
UINT16 UpperThresNonCritical;\r
typedef EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR;\r
typedef EFI_MISC_SYSTEM_SLOT_DESIGNATION_DATA EFI_MISC_SYSTEM_SLOT_DESIGNATION;\r
typedef EFI_MISC_ONBOARD_DEVICE_DATA EFI_MISC_ONBOARD_DEVICE;\r
-typedef EFI_MISC_PORTING_DEVICE_TYPE_DATA EFI_MISC_ONBOARD_DEVICE_TYPE_DATA;\r
+typedef EFI_MISC_POINTING_DEVICE_TYPE_DATA EFI_MISC_ONBOARD_DEVICE_TYPE_DATA;\r
typedef EFI_MISC_OEM_STRING_DATA EFI_MISC_OEM_STRING;\r
typedef EFI_MISC_SYSTEM_OPTION_STRING_DATA EFI_MISC_SYSTEM_OPTION_STRING;\r
typedef EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES_DATA EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES;\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_SYSTEM_POWER_SUPPLY_DATA EFI_MISC_SYSTEM_POWER_SUPPLY;\r
+typedef EFI_MISC_POWER_SUPPLY_UNIT_GROUP_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
typedef EFI_MISC_MANAGEMENT_DEVICE_DESCRIPTION_DATA EFI_MISC_MANAGEMENT_DEVICE_DESCRIPTION;\r
typedef EFI_MISC_ELECTRICAL_CURRENT_PROBE_DESCRIPTION_DATA EFI_MISC_ELECTRICAL_CURRENT_PROBE_DESCRIPTION;\r
\r
+///\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 union {\r
EFI_MISC_LAST_PCI_BUS_DATA LastPciBus;\r
EFI_MISC_BIOS_VENDOR_DATA MiscBiosVendor;\r
EFI_MISC_SYSTEM_EVENT_LOG_DATA MiscSystemEventLog;\r
EFI_MISC_GROUP_NAME_DATA MiscGroupNameData;\r
EFI_MISC_GROUP_ITEM_SET_DATA MiscGroupItemSetData;\r
- EFI_MISC_PORTING_DEVICE_TYPE_DATA MiscPortingDeviceTypeData;\r
+ EFI_MISC_POINTING_DEVICE_TYPE_DATA MiscPointingDeviceTypeData;\r
EFI_MISC_RESET_CAPABILITIES_DATA MiscResetCapablilitiesData;\r
EFI_MISC_HARDWARE_SECURITY_SETTINGS_DATA MiscHardwareSecuritySettingsData;\r
EFI_MISC_SCHEDULED_POWER_ON_MONTH_DATA MiscScheduledPowerOnMonthData;\r
EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION_DATA\r
MiscmangementDeviceComponentDescriptionData;\r
EFI_MISC_IPMI_INTERFACE_TYPE_DATA MiscIpmiInterfaceTypeData;\r
- EFI_MISC_SYSTEM_POWER_SUPPLY_DATA MiscPowerSupplyInfo;\r
+ EFI_MISC_POWER_SUPPLY_UNIT_GROUP_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
-//\r
-//\r
+///\r
+/// Sub Class Header type1\r
+///\r
typedef struct {\r
EFI_SUBCLASS_TYPE1_HEADER Header;\r
EFI_MISC_SUBCLASS_RECORDS Record;\r
\r
#pragma pack()\r
\r
-//\r
-// Sub Class Header type1\r
-//\r
-\r
+///\r
+/// Inconsistent with specification here: \r
+/// In DataHubSubclass spec 0.9 page 16, the following symbol is NOT defined.\r
+/// But value is meaningful, 0 means Reserved.\r
+///\r
#define EFI_SUBCLASS_INSTANCE_RESERVED 0\r
-#define EFI_SUBCLASS_INSTANCE_NON_APPLICABLE 0xFFFF //16 bit\r
+///\r
+/// Inconsistent with specification here: \r
+/// In DataHubSubclass spec 0.9 page 16, the following symbol is NOT defined.\r
+/// But value is meaningful, -1 means Not Applicable.\r
+///\r
+#define EFI_SUBCLASS_INSTANCE_NON_APPLICABLE 0xFFFF\r
\r
#endif\r