/** @file\r
- DataHubRecord.h includes all data hub sub class GUID definitions.\r
+ DataHubRecord.h includes all data hub subclass GUID definitions.\r
\r
This file includes all data hub sub class defitions from \r
- Cache subclass spec 0.9, DataHub SubClass spec 0.9, Memory SubClass Spec 0.9,\r
- Processor Subclass spec 0.9, and Misc SubClass spec 0.9.\r
+ Cache subclass specification 0.9, DataHub SubClass specification 0.9, Memory SubClass Spec 0.9,\r
+ Processor Subclass specification 0.9, and Misc SubClass specification 0.9.\r
\r
- Copyright (c) 2007 - 2009, Intel Corporation\r
- All rights reserved. This program and the accompanying materials\r
- are licensed and made available under the terms and conditions of the BSD License\r
- which accompanies this distribution. The full text of the license may be found at\r
- http://opensource.org/licenses/bsd-license.php\r
-\r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+Copyright (c) 2007 - 2011, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials are licensed and made available under \r
+the terms and conditions of the BSD License that accompanies this distribution. \r
+The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php. \r
+ \r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
\r
**/\r
#ifndef _DATAHUB_RECORDS_GUID_H_\r
#define _DATAHUB_RECORDS_GUID_H_\r
\r
+//\r
+// The include is required to retrieve type EFI_EXP_BASE10_DATA\r
+//\r
+#include <Guid/StatusCodeDataTypeId.h>\r
+\r
#define EFI_PROCESSOR_SUBCLASS_GUID \\r
{ 0x26fdeb7e, 0xb8af, 0x4ccf, {0xaa, 0x97, 0x02, 0x63, 0x3c, 0xe4, 0x8c, 0xa7 } }\r
\r
\r
///\r
/// Inconsistent with specification here: \r
-/// In MiscSubclass spec 0.9, the value is 0x0100.\r
+/// In ProcSubclass specification 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
///\r
/// Inconsistent with specification here: \r
-/// In MiscSubclass spec 0.9, this data structure and corrsponding fields are NOT defined.\r
+/// In MiscSubclass specification 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
/// String Token Definition\r
///\r
/// Inconsistent with specification here: \r
-/// The macro isn't defined by any spec.\r
+/// The macro isn't defined by any specification.\r
/// Keep it unchanged for backward compatibility.\r
///\r
#define EFI_STRING_TOKEN UINT16\r
UINT16 Exponent;\r
} EFI_EXP_BASE2_DATA;\r
\r
-///\r
-/// This macro provides a calculation for base-2 representations. Value and Exponent are each \r
-/// INT16. It is 16 bits wide and is unsigned to mean nonnegative values. \r
-///\r
-typedef struct {\r
- ///\r
- /// The INT16 number by which to multiply the base-2 representation.\r
- ///\r
- INT16 Value;\r
- ///\r
- /// The INT16 number by which to raise the base-2 calculation. \r
- ///\r
- INT16 Exponent;\r
-} EFI_EXP_BASE10_DATA;\r
-\r
typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_MAX_CORE_FREQUENCY_DATA;\r
typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_MAX_FSB_FREQUENCY_DATA;\r
typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_CORE_FREQUENCY_DATA;\r
/// that the processor/driver supports automatic frequency selection. \r
///\r
/// Inconsistent with specification here: \r
-/// According to MiscSubclass 0.9 spec, it should be a pointer since it refers to a list of frequencies.\r
+/// According to MiscSubclass 0.9 specification, 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
typedef STRING_REF EFI_PROCESSOR_MANUFACTURER_DATA;\r
typedef STRING_REF EFI_PROCESSOR_SERIAL_NUMBER_DATA;\r
typedef STRING_REF EFI_PROCESSOR_ASSET_TAG_DATA;\r
+typedef STRING_REF EFI_PROCESSOR_PART_NUMBER_DATA;\r
\r
typedef struct {\r
UINT32 ProcessorSteppingId:4;\r
\r
///\r
/// Inconsistent with specification here: \r
-/// The name of third field in ProcSubClass spec0.9 is LogicalProcessorCount.\r
+/// The name of third field in ProcSubClass specification 0.9 is LogicalProcessorCount.\r
/// Keep it unchanged for backward compatibility.\r
///\r
typedef struct {\r
EfiProcessorFamilyUltraSparcIII = 0x57,\r
///\r
/// Inconsistent with specification here: \r
- /// This field in ProcSubClass spec 0.9 is defined as EfiProcessorFamilyUltraSparcIIi.\r
+ /// This field in ProcSubClass specification 0.9 is defined as EfiProcessorFamilyUltraSparcIIi.\r
/// Change it to EfiProcessorFamilyUltraSparcIIIi to avoid build break.\r
///\r
EfiProcessorFamilyUltraSparcIIIi = 0x58,\r
EfiProcessorFamilyIntelItanium2 = 0xB8,\r
///\r
/// Inconsistent with specification here: \r
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiProcessorFamilyIntelPentiumM = 0xB9,\r
///\r
/// Inconsistent with specification here: \r
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiProcessorFamilyIntelCeleronD = 0xBA,\r
///\r
/// Inconsistent with specification here: \r
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiProcessorFamilyIntelPentiumD = 0xBB,\r
///\r
/// Inconsistent with specification here: \r
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiProcessorFamilyIntelPentiumEx = 0xBC,\r
///\r
/// Inconsistent with specification here: \r
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiProcessorFamilyIntelCoreSolo = 0xBD, \r
///\r
/// Inconsistent with specification here: \r
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiProcessorFamilyReserved = 0xBE, \r
///\r
/// Inconsistent with specification here: \r
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiProcessorFamilyIntelCore2 = 0xBF,\r
EfiProcessorFamilyIBM390 = 0xC8,\r
EfiProcessorFamilyG5 = 0xCA,\r
///\r
/// Inconsistent with specification here: \r
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiProcessorFamilyG6 = 0xCB,\r
///\r
/// Inconsistent with specification here: \r
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiProcessorFamilyzArchitectur = 0xCC,\r
///\r
/// Inconsistent with specification here: \r
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiProcessorFamilyViaC7M = 0xD2,\r
///\r
/// Inconsistent with specification here: \r
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiProcessorFamilyViaC7D = 0xD3,\r
///\r
/// Inconsistent with specification here: \r
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiProcessorFamilyViaC7 = 0xD4,\r
///\r
/// Inconsistent with specification here: \r
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiProcessorFamilyViaEden = 0xD5,\r
EfiProcessorFamilyi860 = 0xFA,\r
EfiProcessorFamilyi960 = 0xFB,\r
///\r
/// Inconsistent with specification here: \r
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiProcessorFamilyIndicatorFamily2 = 0xFE,\r
///\r
/// Inconsistent with specification here: \r
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiProcessorFamilyReserved1 = 0xFF\r
} EFI_PROCESSOR_FAMILY_DATA;\r
\r
+typedef enum {\r
+ EfiProcessorFamilySh3 = 0x104,\r
+ EfiProcessorFamilySh4 = 0x105,\r
+ EfiProcessorFamilyArm = 0x118,\r
+ EfiProcessorFamilyStrongArm = 0x119,\r
+ EfiProcessorFamily6x86 = 0x12C,\r
+ EfiProcessorFamilyMediaGx = 0x12D,\r
+ EfiProcessorFamilyMii = 0x12E,\r
+ EfiProcessorFamilyWinChip = 0x140,\r
+ EfiProcessorFamilyDsp = 0x15E,\r
+ EfiProcessorFamilyVideo = 0x1F4\r
+} EFI_PROCESSOR_FAMILY2_DATA;\r
+\r
///\r
/// This data record refers to the core voltage of the processor being defined. The unit of measurement \r
/// of this data record is in volts. \r
/// This data record refers to the status of the processor.\r
///\r
typedef struct {\r
- UINT32 CpuStatus :3; ///> Indicates the status of the processor. \r
- UINT32 Reserved1 :3; ///> Reserved for future use. Should be set to zero. \r
- UINT32 SocketPopulated :1; ///> Indicates if the processor is socketed or not. \r
- UINT32 Reserved2 :1; ///> Reserved for future use. Should be set to zero. \r
- UINT32 ApicEnable :1; ///> Indicates if the APIC is enabled or not. \r
- UINT32 BootApplicationProcessor :1; ///> Indicates if this processor is the boot processor. \r
- UINT32 Reserved3 :22;///> Reserved for future use. Should be set to zero. \r
+ UINT32 CpuStatus :3; ///< Indicates the status of the processor. \r
+ UINT32 Reserved1 :3; ///< Reserved for future use. Should be set to zero. \r
+ UINT32 SocketPopulated :1; ///< Indicates if the processor is socketed or not. \r
+ UINT32 Reserved2 :1; ///< Reserved for future use. Should be set to zero. \r
+ UINT32 ApicEnable :1; ///< Indicates if the APIC is enabled or not. \r
+ UINT32 BootApplicationProcessor :1; ///< Indicates if this processor is the boot processor. \r
+ UINT32 Reserved3 :22;///< Reserved for future use. Should be set to zero. \r
} EFI_PROCESSOR_STATUS_DATA;\r
\r
typedef enum {\r
EfiProcessorSocket940 = 0x11,\r
///\r
/// Inconsistent with specification here: \r
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiProcessorSocket939 = 0x12,\r
///\r
/// Inconsistent with specification here: \r
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiProcessorSocketmPGA604 = 0x13,\r
///\r
/// Inconsistent with specification here: \r
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiProcessorSocketLGA771 = 0x14,\r
///\r
/// Inconsistent with specification here: \r
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiProcessorSocketLGA775 = 0x15\r
\r
\r
///\r
/// Inconsistent with specification here: \r
-/// In MiscSubclass spec 0.9, the naming is EFI_PROCESSOR_CACHE_ASSOCIATION_DATA.\r
+/// In ProcSubclass specification 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
/// 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
+/// In ProcSubclass specification 0.9, the naming is EFI_PROCESSOR_HEALTH_STATUS_DATA.\r
/// Keep it unchanged for backward compatibilty.\r
///\r
typedef enum {\r
///\r
typedef UINTN EFI_PROCESSOR_PACKAGE_NUMBER_DATA;\r
\r
+typedef UINT8 EFI_PROCESSOR_CORE_COUNT_DATA;\r
+typedef UINT8 EFI_PROCESSOR_ENABLED_CORE_COUNT_DATA;\r
+typedef UINT8 EFI_PROCESSOR_THREAD_COUNT_DATA;\r
+\r
+typedef struct {\r
+ UINT16 Reserved :1;\r
+ UINT16 Unknown :1;\r
+ UINT16 Capable64Bit :1;\r
+ UINT16 Reserved2 :13;\r
+} EFI_PROCESSOR_CHARACTERISTICS_DATA;\r
+\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
+/// In ProcSubclass specification 0.9, the enumeration type data structure is NOT defined.\r
+/// The equivalent in specification 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
ProcessorPackageNumberRecordType = 21,\r
ProcessorCoreFrequencyListRecordType = 22,\r
ProcessorFsbFrequencyListRecordType = 23,\r
- ProcessorHealthStatusRecordType = 24\r
+ ProcessorHealthStatusRecordType = 24,\r
+ ProcessorCoreCountRecordType = 25,\r
+ ProcessorEnabledCoreCountRecordType = 26,\r
+ ProcessorThreadCountRecordType = 27,\r
+ ProcessorCharacteristicsRecordType = 28,\r
+ ProcessorFamily2RecordType = 29,\r
+ ProcessorPartNumberRecordType = 30,\r
} EFI_CPU_VARIABLE_RECORD_TYPE;\r
\r
///\r
/// Inconsistent with specification here: \r
-/// In ProcSubclass spec 0.9, the union type data structure is NOT defined.\r
+/// In ProcSubclass specification 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_SOCKET_TYPE_DATA ProcessorSocketType;\r
EFI_PROCESSOR_SOCKET_NAME_DATA ProcessorSocketName;\r
EFI_PROCESSOR_ASSET_TAG_DATA ProcessorAssetTag;\r
+ EFI_PROCESSOR_PART_NUMBER_DATA ProcessorPartNumber;\r
EFI_PROCESSOR_HEALTH_STATUS ProcessorHealthStatus;\r
EFI_PROCESSOR_PACKAGE_NUMBER_DATA ProcessorPackageNumber;\r
+ EFI_PROCESSOR_CORE_COUNT_DATA ProcessorCoreCount;\r
+ EFI_PROCESSOR_ENABLED_CORE_COUNT_DATA ProcessorEnabledCoreCount;\r
+ EFI_PROCESSOR_THREAD_COUNT_DATA ProcessorThreadCount;\r
+ EFI_PROCESSOR_CHARACTERISTICS_DATA ProcessorCharacteristics;\r
+ EFI_PROCESSOR_FAMILY2_DATA ProcessorFamily2;\r
} EFI_CPU_VARIABLE_RECORD;\r
\r
typedef struct {\r
typedef EFI_EXP_BASE2_DATA EFI_CACHE_SIZE_DATA;\r
///\r
/// Inconsistent with specification here: \r
-/// In MiscSubclass spec 0.9, the naming is EFI_CACHE_MAXIMUM_SIZE_DATA.\r
+/// In CacheSubclass specification 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
\r
///\r
/// Inconsistent with specification here: \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
+/// In CacheSubclass 0.9 specification. It defines the field type as UINT16.\r
+/// In fact, it should be UINT32 type because it refers to a 32bit width data.\r
///\r
typedef struct {\r
UINT32 Level :3;\r
} EFI_CACHE_OPERATIONAL_MODE;\r
\r
\r
-\r
+///\r
+/// Inconsistent with specification here:\r
+/// In CacheSubclass specification 0.9, the enumeration type data structure is NOT defined.\r
+/// The equivalent in specification is \r
+/// #define EFI_CACHE_SIZE_RECORD_NUMBER 0x00000001\r
+/// #define EFI_CACHE_MAXIMUM_SIZE_RECORD_NUMBER 0x00000002\r
+/// #define EFI_CACHE_SPEED_RECORD_NUMBER 0x00000003\r
+/// #define EFI_CACHE_SOCKET_RECORD_NUMBER 0x00000004\r
+/// #define EFI_CACHE_SRAM_SUPPORT_RECORD_NUMBER 0x00000005 \r
+/// #define EFI_CACHE_SRAM_INSTALL_RECORD_NUMBER 0x00000006 \r
+/// #define EFI_CACHE_ERROR_SUPPORT_RECORD_NUMBER 0x00000007\r
+/// #define EFI_CACHE_TYPE_RECORD_NUMBER 0x00000008\r
+/// #define EFI_CACHE_ASSOCIATIVITY_RECORD_NUMBER 0x00000009\r
+/// #define EFI_CACHE_CONFIGURATION_RECORD_NUMBER 0x0000000A\r
+/// Keep the definition unchanged for backward compatibility.\r
+///\r
typedef enum {\r
CacheSizeRecordType = 1,\r
MaximumSizeCacheRecordType = 2,\r
\r
///\r
/// Inconsistent with specification here: \r
-/// In CacheSubclass spec0.9, the union type data structure is NOT defined.\r
+/// In CacheSubclass specification 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
EfiMemoryFormFactorSrimm = 0x0E,\r
///\r
/// Inconsistent with specification here: \r
- /// This field is NOT defined in MemSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// This field is NOT defined in MemSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiMemoryFormFactorFbDimm = 0x0F\r
} EFI_MEMORY_FORM_FACTOR;\r
EfiMemoryTypeDdr = 0x12,\r
///\r
/// Inconsistent with specification here: \r
- /// This field is NOT defined in MemSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// This field is NOT defined in MemSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiMemoryTypeDdr2 = 0x13,\r
///\r
/// Inconsistent with specification here: \r
- /// This field is NOT defined in MemSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// This field is NOT defined in MemSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiMemoryTypeDdr2FbDimm = 0x14\r
} EFI_MEMORY_ARRAY_TYPE;\r
EfiMemoryStateDisabled = 5,\r
///\r
/// Inconsistent with specification here: \r
- /// This field is NOT defined in MemSubClass spec0.9. It's introduced for SMBIOS2.6 spec.\r
+ /// This field is NOT defined in MemSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.\r
///\r
EfiMemoryStatePartial = 6\r
} EFI_MEMORY_STATE;\r
/// The memory speed in megahertz (MHz). A value of 0x00 denotes that \r
/// the speed is unknown.\r
/// Inconsistent with specification here: \r
- /// In MemSubclass spec 0.9, the naming is MemoryTypeSpeed.\r
+ /// In MemSubclass specification 0.9, the naming is MemoryTypeSpeed.\r
/// Keep it unchanged for backward compatibilty.\r
///\r
EFI_EXP_BASE10_DATA MemorySpeed;\r
//\r
///\r
/// Inconsistent with specification here: \r
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// In MemSubclass specification 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
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.\r
/// It's introduced for SmBios 2.6 type 5.\r
///\r
typedef enum { \r
\r
///\r
/// Inconsistent with specification here: \r
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.\r
/// It's introduced for SmBios 2.6 type 5.\r
///\r
typedef struct {\r
\r
///\r
/// Inconsistent with specification here: \r
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.\r
/// It's introduced for SmBios 2.6 type 5.\r
///\r
typedef enum { \r
\r
///\r
/// Inconsistent with specification here: \r
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.\r
/// It's introduced for SmBios 2.6 type 5.\r
///\r
typedef struct {\r
\r
///\r
/// Inconsistent with specification here: \r
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.\r
/// It's introduced for SmBios 2.6 type 5.\r
///\r
typedef struct {\r
\r
///\r
/// Inconsistent with specification here: \r
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.\r
/// It's introduced for SmBios 2.6 type 5.\r
///\r
typedef struct {\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
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.\r
/// It's introduced for SmBios 2.6 type 5.\r
///\r
typedef struct {\r
\r
///\r
/// Inconsistent with specification here: \r
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.\r
/// It's introduced for SmBios 2.6 type 5.\r
///\r
typedef struct {\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
+/// In MemSubclass specification 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
/// Inconsistent with specification here: \r
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.\r
/// It's introduced for SmBios 2.6 type 18.\r
///\r
typedef enum { \r
} EFI_MEMORY_ERROR_TYPE;\r
///\r
/// Inconsistent with specification here: \r
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.\r
/// It's introduced for SmBios 2.6 type 18.\r
///\r
typedef enum { \r
} EFI_MEMORY_ERROR_GRANULARITY_TYPE;\r
///\r
/// Inconsistent with specification here: \r
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.\r
/// It's introduced for SmBios 2.6 type 18.\r
///\r
typedef enum { \r
} EFI_MEMORY_ERROR_OPERATION_TYPE;\r
///\r
/// Inconsistent with specification here: \r
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// In MemSubclass specification 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_32BIT_ERROR_INFORMATION;\r
\r
///\r
-/// Memory. Error Information - SMBIOS Type 33\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
+/// In MemSubclass specification 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
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.\r
/// It's introduced for SmBios 2.6 type 33.\r
///\r
typedef struct {\r
\r
///\r
/// Inconsistent with specification here: \r
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// In MemSubclass specification 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
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
+ /// In MiscSubclass specification 0.9, this data structure and corrsponding fields are NOT defined.\r
+ /// It's introduced for SmBios 2.6 specification 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
+ /// In MiscSubclass specification 0.9, this data structure and corrsponding fields are NOT defined.\r
+ /// It's introduced for SmBios 2.6 specification 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
+ /// In MiscSubclass specification 0.9, this data structure and corrsponding fields are NOT defined.\r
+ /// It's introduced for SmBios 2.6 specification 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
+ /// In MiscSubclass specification 0.9, this data structure and corrsponding fields are NOT defined.\r
+ /// It's introduced for SmBios 2.6 specification type 0.\r
///\r
UINT8 BiosEmbeddedFirmwareMinorRelease;\r
} EFI_MISC_BIOS_VENDOR_DATA;\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
+ /// In MiscSubclass specification 0.9, this data structure and corrsponding fields are NOT defined.\r
+ /// It's introduced for SmBios 2.6 specification 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
+ /// In MiscSubclass specification 0.9, this data structure and corrsponding fields are NOT defined.\r
+ /// It's introduced for SmBios 2.6 specification type 1.\r
///\r
STRING_REF SystemFamily;\r
} EFI_MISC_SYSTEM_MANUFACTURER_DATA;\r
typedef struct {\r
///\r
/// Inconsistent with specification here: \r
- /// In MiscSubclass 0.9 spec. It have a wrong field name "EFI_MISC_CHASSIS_TYPE".\r
+ /// In MiscSubclass 0.9 specification, it has the incorrect field name "EFI_MISC_CHASSIS_TYPE".\r
/// Change it to "ChassisType" to pass build.\r
///\r
UINT32 ChassisType :16;\r
EFI_MISC_PORT_CONNECTOR_TYPE PortInternalConnectorType;\r
EFI_MISC_PORT_CONNECTOR_TYPE PortExternalConnectorType;\r
EFI_MISC_PORT_TYPE PortType;\r
+ ///\r
+ /// Inconsistent with specification here: \r
+ /// In MiscSubclass specification 0.9, this type of field is defined as EFI_DEVICE_PATH_PROTOCOL,\r
+ /// which causes the implementation some complexity. Keep it unchanged for backward \r
+ /// compatibility.\r
+ ///\r
EFI_MISC_PORT_DEVICE_PATH PortPath;\r
} EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA;\r
\r
EfiSlotTypeAgp = 0x0F,\r
///\r
/// Inconsistent with specification here: \r
- /// In MiscSubclass spec 0.9, its naming should be EfiSlotTypeAgp2X\r
+ /// In MiscSubclass specification 0.9, its naming should be EfiSlotTypeAgp2X\r
/// rather than EfiSlotTypeApg2X.\r
///\r
EfiSlotTypeAgp2X = 0x10,\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
+ /// In MiscSubclass specification 0.9, these fields aren't defined.\r
+ /// They're introduced for SmBios 2.6 specification type 9.\r
+ ///\r
+ EfiSlotTypePciExpress = 0xA5,\r
+ EfiSlotTypePciExpressX1 = 0xA6,\r
+ EfiSlotTypePciExpressX2 = 0xA7,\r
+ EfiSlotTypePciExpressX4 = 0xA8,\r
+ EfiSlotTypePciExpressX8 = 0xA9,\r
+ EfiSlotTypePciExpressX16 = 0xAA\r
} EFI_MISC_SLOT_TYPE;\r
\r
typedef enum {\r
EfiSlotDataBusWidth16Bit = 0x04,\r
EfiSlotDataBusWidth32Bit = 0x05,\r
EfiSlotDataBusWidth64Bit = 0x06,\r
- EfiSlotDataBusWidth128Bit = 0x07\r
+ EfiSlotDataBusWidth128Bit = 0x07,\r
+ ///\r
+ /// Inconsistent with specification here: \r
+ /// In MiscSubclass specification 0.9, these fields aren't defined.\r
+ /// They're introduced for SmBios 2.6 specification type 9.\r
+ ///\r
+ EfiSlotDataBusWidth1xOrx1 = 0x8,\r
+ EfiSlotDataBusWidth2xOrx2 = 0x9,\r
+ EfiSlotDataBusWidth4xOrx4 = 0xA,\r
+ EfiSlotDataBusWidth8xOrx8 = 0xB,\r
+ EfiSlotDataBusWidth12xOrx12 = 0xC,\r
+ EfiSlotDataBusWidth16xOrx16 = 0xD,\r
+ EfiSlotDataBusWidth32xOrx32 = 0xE\r
} EFI_MISC_SLOT_DATA_BUS_WIDTH;\r
\r
typedef enum {\r
STRING_REF OnBoardDeviceDescription;\r
///\r
/// Inconsistent with specification here: \r
- /// In MiscSubclass spec 0.9, the naming is OnBoardDeviceType.\r
+ /// In MiscSubclass specification 0.9, the name is OnBoardDeviceType.\r
/// Keep it unchanged for backward compatibilty.\r
///\r
EFI_MISC_ONBOARD_DEVICE_STATUS OnBoardDeviceStatus;\r
//\r
///\r
/// Inconsistent with specification here: \r
-/// In MiscSubclass spec 0.9, the naming is EFI_MISC_BATTERY_LOCATION_RECORD_NUMBER.\r
+/// In MiscSubclass specification 0.9, the name 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
+/// In MiscSubclass specification 0.9, the structure name is EFI_MISC_BATTERY_DEVICE_CHEMISTRY.\r
+/// And all field namings are also different with specification.\r
/// Keep it unchanged for backward compatibilty.\r
///\r
typedef enum { \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
+/// In MiscSubclass specification 0.9, the structure name is EFI_MISC_BATTERY_LOCATION_DATA.\r
+/// Also, the name and the order of the fields vary with specifications.\r
/// Keep it unchanged for backward compatibilty.\r
///\r
typedef struct {\r
\r
///\r
/// Inconsistent with specification here: \r
-/// In MiscSubclass spec 0.9, it only mention the possible value of each field in\r
+/// The MiscSubclass specification 0.9 only mentions the possible value of each field in\r
/// EFI_MISC_HARDWARE_SECURITY_SETTINGS. \r
-/// It's implementation-specific to simplify the code logic.\r
+/// It's implementation-specific in order to to simplify the code logic.\r
///\r
typedef enum {\r
EfiHardwareSecurityStatusDisabled = 0,\r
typedef struct {\r
EFI_MISC_COOLING_DEVICE_TYPE CoolingDeviceType;\r
EFI_INTER_LINK_DATA CoolingDeviceTemperatureLink;\r
- UINT16 CoolingDeviceUnitGroup;\r
- EFI_EXP_BASE10_DATA CoolingDeviceNominalSpeed;\r
+ UINT8 CoolingDeviceUnitGroup;\r
+ UINT16 CoolingDeviceNominalSpeed;\r
UINT32 CoolingDeviceOemDefined;\r
} EFI_MISC_COOLING_DEVICE_TEMP_LINK_DATA;\r
\r
STRING_REF TemperatureProbeDescription;\r
EFI_MISC_TEMPERATURE_PROBE_LOCATION\r
TemperatureProbeLocation;\r
- EFI_EXP_BASE10_DATA TemperatureProbeMaximumValue;\r
- EFI_EXP_BASE10_DATA TemperatureProbeMinimumValue;\r
- EFI_EXP_BASE10_DATA TemperatureProbeResolution;\r
- EFI_EXP_BASE10_DATA TemperatureProbeTolerance;\r
- EFI_EXP_BASE10_DATA TemperatureProbeAccuracy;\r
- EFI_EXP_BASE10_DATA TemperatureProbeNominalValue;\r
- EFI_EXP_BASE10_DATA MDLowerNoncriticalThreshold;\r
- EFI_EXP_BASE10_DATA MDUpperNoncriticalThreshold;\r
- EFI_EXP_BASE10_DATA MDLowerCriticalThreshold;\r
- EFI_EXP_BASE10_DATA MDUpperCriticalThreshold;\r
- EFI_EXP_BASE10_DATA MDLowerNonrecoverableThreshold;\r
- EFI_EXP_BASE10_DATA MDUpperNonrecoverableThreshold;\r
+ ///\r
+ /// Inconsistent with specification here: \r
+ /// MiscSubclass 0.9 specification defines the fields type as EFI_EXP_BASE10_DATA.\r
+ /// In fact, they should be UINT16 type because they refer to 16bit width data.\r
+ /// Keeping this inconsistency for backward compatibility.\r
+ ///\r
+ UINT16 TemperatureProbeMaximumValue;\r
+ UINT16 TemperatureProbeMinimumValue;\r
+ UINT16 TemperatureProbeResolution;\r
+ UINT16 TemperatureProbeTolerance;\r
+ UINT16 TemperatureProbeAccuracy;\r
+ UINT16 TemperatureProbeNominalValue;\r
+ UINT16 MDLowerNoncriticalThreshold;\r
+ UINT16 MDUpperNoncriticalThreshold;\r
+ UINT16 MDLowerCriticalThreshold;\r
+ UINT16 MDUpperCriticalThreshold;\r
+ UINT16 MDLowerNonrecoverableThreshold;\r
+ UINT16 MDUpperNonrecoverableThreshold;\r
UINT32 TemperatureProbeOemDefined;\r
} EFI_MISC_TEMPERATURE_PROBE_DESCRIPTION_DATA;\r
\r
\r
///\r
/// Inconsistent with specification here: \r
-/// In MiscSubclass spec 0.9, the structure name is EFI_MISC_BOOT_INFORMATION_STATUS_TYPE.\r
+/// In MiscSubclass specification 0.9, the structure name is EFI_MISC_BOOT_INFORMATION_STATUS_TYPE.\r
/// Keep it unchanged for backward compatibilty.\r
///\r
typedef enum {\r
typedef struct {\r
///\r
/// Inconsistent with specification here: \r
- /// In MiscSubclass spec 0.9, the field name is EFI_MISC_BOOT_INFORMATION_STATUS_TYPE.\r
+ /// In MiscSubclass specification 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
EFI_INTER_LINK_DATA ManagementDeviceComponentLink;\r
///\r
/// Inconsistent with specification here: \r
- /// In MiscSubclass spec 0.9, this field is NOT defined.\r
- /// It's introduced for SmBios 2.6 spec type 35.\r
+ /// In MiscSubclass specification 0.9, this field is NOT defined.\r
+ /// It's introduced for SmBios 2.6 specification type 35.\r
///\r
EFI_INTER_LINK_DATA ManagementDeviceThresholdLink;\r
+ ///\r
+ /// Inconsistent with specification here: \r
+ /// In MiscSubclass specification 0.9, this field is NOT defined.\r
+ /// It's implementation-specific to simplify the code logic.\r
+ ///\r
+ UINT8 ComponentType;\r
} EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION_DATA;\r
\r
//\r
} EFI_MISC_IPMI_INTERFACE_TYPE_DATA;\r
\r
#define EFI_MISC_IPMI_INTERFACE_TYPE_RECORD_NUMBER 0x0000001D\r
+///\r
+/// The definition above is *NOT* defined in MiscSubclass specifications 0.9.\r
+/// It's defined for backward compatibility.\r
+///\r
+#define EFI_MISC_IPMI_INTERFACE_TYPE_DATA_RECORD_NUMBER EFI_MISC_IPMI_INTERFACE_TYPE_RECORD_NUMBER\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
+/// In MiscSubclass specification 0.9, the type of all fields are UINT32.\r
/// Keep it unchanged for backward compatibilty.\r
///\r
typedef struct {\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
+/// In MiscSubclass specification 0.9, the structure name is EFI_MISC_POWER_SUPPLY_UNIT_GROUP_DATA.\r
/// Keep it unchanged for backward compatibilty.\r
///\r
typedef struct {\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
+/// In MiscSubclass specification 0.9, the structure name is EFI_SMBIOS_STRUCTURE_HDR.\r
+/// Due to this, the structure is commonly used by vendors to construct SmBios type 0x80~0xFF table,\r
/// Keep it unchanged for backward compatibilty.\r
///\r
typedef struct {\r
typedef struct {\r
///\r
/// Inconsistent with specification here: \r
- /// In MiscSubclass spec 0.9, the field name is EFI_SMBIOS_STRUCTURE_HDR.\r
+ /// In MiscSubclass specification 0.9, the field name is EFI_SMBIOS_STRUCTURE_HDR.\r
/// Keep it unchanged for backward compatibilty.\r
///\r
SMBIOS_STRUCTURE_HDR Header;\r
/// Misc. System Event Log - SMBIOS Type 15\r
///\r
/// Inconsistent with specification here: \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
+/// In MiscSubclass specification 0.9, the following data structures are NOT defined.\r
+/// It's introduced for SmBios 2.6 specification type 15.\r
///\r
#define EFI_MISC_SYSTEM_EVENT_LOG_RECORD_NUMBER 0x00000020\r
\r
///\r
/// Inconsistent with specification here: \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
+/// In MiscSubclass specification 0.9, the following data structures are NOT defined.\r
+/// It's introduced for SmBios 2.6 specification type 15.\r
///\r
typedef struct {\r
UINT16 LogAreaLength;\r
/// Management Device Threshold Data Record - SMBIOS Type 36\r
///\r
/// Inconsistent with specification here: \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
+/// In MiscSubclass specification 0.9, the following data structures are NOT defined.\r
+/// It's introduced for SmBios 2.6 specification type 36.\r
///\r
#define EFI_MISC_MANAGEMENT_DEVICE_THRESHOLD_RECORD_NUMBER 0x00000021\r
///\r
/// Inconsistent with specification here: \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
+/// In MiscSubclass specification 0.9, the following data structures are NOT defined.\r
+/// It's introduced for SmBios 2.6 specification type 36.\r
///\r
typedef struct {\r
UINT16 LowerThresNonCritical;\r
EFI_MISC_REMOTE_ACCESS_MANUFACTURER_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
+typedef EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION_DATA\r
+ EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION;\r
\r
///\r
/// Inconsistent with specification here: \r
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.\r
/// It is implementation-specific to simplify the code logic.\r
///\r
typedef union {\r
\r
///\r
/// Inconsistent with specification here: \r
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.\r
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.\r
/// It is implementation-specific to simplify the code logic.\r
///\r
typedef struct {\r
\r
///\r
/// Inconsistent with specification here: \r
-/// In DataHubSubclass spec 0.9 page 16, the following symbol is NOT defined.\r
+/// In DataHubSubclass specification 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
///\r
/// Inconsistent with specification here: \r
-/// In DataHubSubclass spec 0.9 page 16, the following symbol is NOT defined.\r
+/// In DataHubSubclass specification 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