X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=IntelFrameworkPkg%2FInclude%2FGuid%2FDataHubRecords.h;h=d898953ea444f7882df0cbdf4a69514ebf377d3a;hb=639a76d1912f8eb07e26b1a8f2393b682be65f2c;hp=cda861a4fbc73e694c501bf825d19abfd4616953;hpb=ccd1862c8bff40b9260993197dae040d204866f7;p=mirror_edk2.git
diff --git a/IntelFrameworkPkg/Include/Guid/DataHubRecords.h b/IntelFrameworkPkg/Include/Guid/DataHubRecords.h
index cda861a4fb..d898953ea4 100644
--- a/IntelFrameworkPkg/Include/Guid/DataHubRecords.h
+++ b/IntelFrameworkPkg/Include/Guid/DataHubRecords.h
@@ -1,23 +1,28 @@
/** @file
- DataHubRecord.h includes all data hub sub class GUID definitions.
+ DataHubRecord.h includes all data hub subclass GUID definitions.
This file includes all data hub sub class defitions from
- Cache subclass spec 0.9, DataHub SubClass spec 0.9, Memory SubClass Spec 0.9,
- Processor Subclass spec 0.9, and Misc SubClass spec 0.9.
+ Cache subclass specification 0.9, DataHub SubClass specification 0.9, Memory SubClass Spec 0.9,
+ Processor Subclass specification 0.9, and Misc SubClass specification 0.9.
- Copyright (c) 2007 - 2009, Intel Corporation
- All rights reserved. This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php
-
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+Copyright (c) 2007 - 2011, Intel Corporation. All rights reserved.
+This program and the accompanying materials are licensed and made available under
+the terms and conditions of the BSD License that accompanies this distribution.
+The full text of the license may be found at
+http://opensource.org/licenses/bsd-license.php.
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
#ifndef _DATAHUB_RECORDS_GUID_H_
#define _DATAHUB_RECORDS_GUID_H_
+//
+// The include is required to retrieve type EFI_EXP_BASE10_DATA
+//
+#include
+
#define EFI_PROCESSOR_SUBCLASS_GUID \
{ 0x26fdeb7e, 0xb8af, 0x4ccf, {0xaa, 0x97, 0x02, 0x63, 0x3c, 0xe4, 0x8c, 0xa7 } }
@@ -46,7 +51,7 @@ extern EFI_GUID gEfiMiscSubClassGuid;
///
/// Inconsistent with specification here:
-/// In MiscSubclass spec 0.9, the value is 0x0100.
+/// In ProcSubclass specification 0.9, the value is 0x0100.
/// Keep it unchanged from the perspective of binary consistency.
///
#define EFI_PROCESSOR_SUBCLASS_VERSION 0x00010000
@@ -141,7 +146,7 @@ typedef struct _FLOOPY_CONN_DEVICE_PATH {
///
/// Inconsistent with specification here:
-/// In MiscSubclass spec 0.9, this data structure and corrsponding fields are NOT defined.
+/// In MiscSubclass specification 0.9, this data structure and corrsponding fields are NOT defined.
/// It's implementation-specific to simplify the code logic.
///
typedef union _EFI_MISC_PORT_DEVICE_PATH {
@@ -162,7 +167,7 @@ typedef union _EFI_MISC_PORT_DEVICE_PATH {
/// String Token Definition
///
/// Inconsistent with specification here:
-/// The macro isn't defined by any spec.
+/// The macro isn't defined by any specification.
/// Keep it unchanged for backward compatibility.
///
#define EFI_STRING_TOKEN UINT16
@@ -251,21 +256,6 @@ typedef struct {
UINT16 Exponent;
} EFI_EXP_BASE2_DATA;
-///
-/// This macro provides a calculation for base-2 representations. Value and Exponent are each
-/// INT16. It is 16 bits wide and is unsigned to mean nonnegative values.
-///
-typedef struct {
- ///
- /// The INT16 number by which to multiply the base-2 representation.
- ///
- INT16 Value;
- ///
- /// The INT16 number by which to raise the base-2 calculation.
- ///
- INT16 Exponent;
-} EFI_EXP_BASE10_DATA;
-
typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_MAX_CORE_FREQUENCY_DATA;
typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_MAX_FSB_FREQUENCY_DATA;
typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_CORE_FREQUENCY_DATA;
@@ -279,7 +269,7 @@ typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_CORE_FREQUENCY_DATA;
/// that the processor/driver supports automatic frequency selection.
///
/// Inconsistent with specification here:
-/// According to MiscSubclass 0.9 spec, it should be a pointer since it refers to a list of frequencies.
+/// According to MiscSubclass 0.9 specification, it should be a pointer since it refers to a list of frequencies.
///
typedef EFI_EXP_BASE10_DATA *EFI_PROCESSOR_CORE_FREQUENCY_LIST_DATA;
@@ -297,6 +287,7 @@ typedef STRING_REF EFI_PROCESSOR_VERSION_DATA;
typedef STRING_REF EFI_PROCESSOR_MANUFACTURER_DATA;
typedef STRING_REF EFI_PROCESSOR_SERIAL_NUMBER_DATA;
typedef STRING_REF EFI_PROCESSOR_ASSET_TAG_DATA;
+typedef STRING_REF EFI_PROCESSOR_PART_NUMBER_DATA;
typedef struct {
UINT32 ProcessorSteppingId:4;
@@ -312,7 +303,7 @@ typedef struct {
///
/// Inconsistent with specification here:
-/// The name of third field in ProcSubClass spec0.9 is LogicalProcessorCount.
+/// The name of third field in ProcSubClass specification 0.9 is LogicalProcessorCount.
/// Keep it unchanged for backward compatibility.
///
typedef struct {
@@ -462,7 +453,7 @@ typedef enum {
EfiProcessorFamilyUltraSparcIII = 0x57,
///
/// Inconsistent with specification here:
- /// This field in ProcSubClass spec 0.9 is defined as EfiProcessorFamilyUltraSparcIIi.
+ /// This field in ProcSubClass specification 0.9 is defined as EfiProcessorFamilyUltraSparcIIi.
/// Change it to EfiProcessorFamilyUltraSparcIIIi to avoid build break.
///
EfiProcessorFamilyUltraSparcIIIi = 0x58,
@@ -504,37 +495,37 @@ typedef enum {
EfiProcessorFamilyIntelItanium2 = 0xB8,
///
/// Inconsistent with specification here:
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.
///
EfiProcessorFamilyIntelPentiumM = 0xB9,
///
/// Inconsistent with specification here:
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.
///
EfiProcessorFamilyIntelCeleronD = 0xBA,
///
/// Inconsistent with specification here:
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.
///
EfiProcessorFamilyIntelPentiumD = 0xBB,
///
/// Inconsistent with specification here:
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.
///
EfiProcessorFamilyIntelPentiumEx = 0xBC,
///
/// Inconsistent with specification here:
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.
///
EfiProcessorFamilyIntelCoreSolo = 0xBD,
///
/// Inconsistent with specification here:
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.
///
EfiProcessorFamilyReserved = 0xBE,
///
/// Inconsistent with specification here:
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.
///
EfiProcessorFamilyIntelCore2 = 0xBF,
EfiProcessorFamilyIBM390 = 0xC8,
@@ -542,48 +533,61 @@ typedef enum {
EfiProcessorFamilyG5 = 0xCA,
///
/// Inconsistent with specification here:
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.
///
EfiProcessorFamilyG6 = 0xCB,
///
/// Inconsistent with specification here:
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.
///
EfiProcessorFamilyzArchitectur = 0xCC,
///
/// Inconsistent with specification here:
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.
///
EfiProcessorFamilyViaC7M = 0xD2,
///
/// Inconsistent with specification here:
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.
///
EfiProcessorFamilyViaC7D = 0xD3,
///
/// Inconsistent with specification here:
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.
///
EfiProcessorFamilyViaC7 = 0xD4,
///
/// Inconsistent with specification here:
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.
///
EfiProcessorFamilyViaEden = 0xD5,
EfiProcessorFamilyi860 = 0xFA,
EfiProcessorFamilyi960 = 0xFB,
///
/// Inconsistent with specification here:
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.
///
EfiProcessorFamilyIndicatorFamily2 = 0xFE,
///
/// Inconsistent with specification here:
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.
///
EfiProcessorFamilyReserved1 = 0xFF
} EFI_PROCESSOR_FAMILY_DATA;
+typedef enum {
+ EfiProcessorFamilySh3 = 0x104,
+ EfiProcessorFamilySh4 = 0x105,
+ EfiProcessorFamilyArm = 0x118,
+ EfiProcessorFamilyStrongArm = 0x119,
+ EfiProcessorFamily6x86 = 0x12C,
+ EfiProcessorFamilyMediaGx = 0x12D,
+ EfiProcessorFamilyMii = 0x12E,
+ EfiProcessorFamilyWinChip = 0x140,
+ EfiProcessorFamilyDsp = 0x15E,
+ EfiProcessorFamilyVideo = 0x1F4
+} EFI_PROCESSOR_FAMILY2_DATA;
+
///
/// This data record refers to the core voltage of the processor being defined. The unit of measurement
/// of this data record is in volts.
@@ -671,22 +675,22 @@ typedef enum {
EfiProcessorSocket940 = 0x11,
///
/// Inconsistent with specification here:
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.
///
EfiProcessorSocket939 = 0x12,
///
/// Inconsistent with specification here:
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.
///
EfiProcessorSocketmPGA604 = 0x13,
///
/// Inconsistent with specification here:
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.
///
EfiProcessorSocketLGA771 = 0x14,
///
/// Inconsistent with specification here:
- /// This field is NOT defined in ProcSubClass spec0.9. It's introduced for SMBIOS2.6 spec.
+ /// This field is NOT defined in ProcSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.
///
EfiProcessorSocketLGA775 = 0x15
@@ -696,7 +700,7 @@ typedef STRING_REF EFI_PROCESSOR_SOCKET_NAME_DATA;
///
/// Inconsistent with specification here:
-/// In MiscSubclass spec 0.9, the naming is EFI_PROCESSOR_CACHE_ASSOCIATION_DATA.
+/// In ProcSubclass specification 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;
@@ -705,7 +709,7 @@ typedef EFI_INTER_LINK_DATA EFI_CACHE_ASSOCIATION_DATA;
/// 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.
+/// In ProcSubclass specification 0.9, the naming is EFI_PROCESSOR_HEALTH_STATUS_DATA.
/// Keep it unchanged for backward compatibilty.
///
typedef enum {
@@ -721,10 +725,21 @@ typedef enum {
///
typedef UINTN EFI_PROCESSOR_PACKAGE_NUMBER_DATA;
+typedef UINT8 EFI_PROCESSOR_CORE_COUNT_DATA;
+typedef UINT8 EFI_PROCESSOR_ENABLED_CORE_COUNT_DATA;
+typedef UINT8 EFI_PROCESSOR_THREAD_COUNT_DATA;
+
+typedef struct {
+ UINT16 Reserved :1;
+ UINT16 Unknown :1;
+ UINT16 Capable64Bit :1;
+ UINT16 Reserved2 :13;
+} EFI_PROCESSOR_CHARACTERISTICS_DATA;
+
///
/// Inconsistent with specification here:
-/// In ProcSubclass spec 0.9, the enumeration type data structure is NOT defined.
-/// The equivalent in spec is
+/// In ProcSubclass specification 0.9, the enumeration type data structure is NOT defined.
+/// The equivalent in specification is
/// #define EFI_PROCESSOR_FREQUENCY_RECORD_NUMBER 0x00000001
/// #define EFI_PROCESSOR_BUS_FREQUENCY_RECORD_NUMBER 0x00000002
/// #define EFI_PROCESSOR_VERSION_RECORD_NUMBER 0x00000003
@@ -775,12 +790,18 @@ typedef enum {
ProcessorPackageNumberRecordType = 21,
ProcessorCoreFrequencyListRecordType = 22,
ProcessorFsbFrequencyListRecordType = 23,
- ProcessorHealthStatusRecordType = 24
+ ProcessorHealthStatusRecordType = 24,
+ ProcessorCoreCountRecordType = 25,
+ ProcessorEnabledCoreCountRecordType = 26,
+ ProcessorThreadCountRecordType = 27,
+ ProcessorCharacteristicsRecordType = 28,
+ ProcessorFamily2RecordType = 29,
+ ProcessorPartNumberRecordType = 30,
} EFI_CPU_VARIABLE_RECORD_TYPE;
///
/// Inconsistent with specification here:
-/// In ProcSubclass spec 0.9, the union type data structure is NOT defined.
+/// In ProcSubclass specification 0.9, the union type data structure is NOT defined.
/// It's implementation-specific to simplify the code logic.
///
typedef union {
@@ -805,8 +826,14 @@ typedef union {
EFI_PROCESSOR_SOCKET_TYPE_DATA ProcessorSocketType;
EFI_PROCESSOR_SOCKET_NAME_DATA ProcessorSocketName;
EFI_PROCESSOR_ASSET_TAG_DATA ProcessorAssetTag;
+ EFI_PROCESSOR_PART_NUMBER_DATA ProcessorPartNumber;
EFI_PROCESSOR_HEALTH_STATUS ProcessorHealthStatus;
EFI_PROCESSOR_PACKAGE_NUMBER_DATA ProcessorPackageNumber;
+ EFI_PROCESSOR_CORE_COUNT_DATA ProcessorCoreCount;
+ EFI_PROCESSOR_ENABLED_CORE_COUNT_DATA ProcessorEnabledCoreCount;
+ EFI_PROCESSOR_THREAD_COUNT_DATA ProcessorThreadCount;
+ EFI_PROCESSOR_CHARACTERISTICS_DATA ProcessorCharacteristics;
+ EFI_PROCESSOR_FAMILY2_DATA ProcessorFamily2;
} EFI_CPU_VARIABLE_RECORD;
typedef struct {
@@ -819,7 +846,7 @@ typedef struct {
typedef EFI_EXP_BASE2_DATA EFI_CACHE_SIZE_DATA;
///
/// Inconsistent with specification here:
-/// In MiscSubclass spec 0.9, the naming is EFI_CACHE_MAXIMUM_SIZE_DATA.
+/// In CacheSubclass specification 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;
@@ -869,8 +896,8 @@ typedef enum {
///
/// Inconsistent with specification here:
-/// 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.
+/// In CacheSubclass 0.9 specification. It defines the field type as UINT16.
+/// In fact, it should be UINT32 type because it refers to a 32bit width data.
///
typedef struct {
UINT32 Level :3;
@@ -909,7 +936,22 @@ typedef enum {
} EFI_CACHE_OPERATIONAL_MODE;
-
+///
+/// Inconsistent with specification here:
+/// In CacheSubclass specification 0.9, the enumeration type data structure is NOT defined.
+/// The equivalent in specification is
+/// #define EFI_CACHE_SIZE_RECORD_NUMBER 0x00000001
+/// #define EFI_CACHE_MAXIMUM_SIZE_RECORD_NUMBER 0x00000002
+/// #define EFI_CACHE_SPEED_RECORD_NUMBER 0x00000003
+/// #define EFI_CACHE_SOCKET_RECORD_NUMBER 0x00000004
+/// #define EFI_CACHE_SRAM_SUPPORT_RECORD_NUMBER 0x00000005
+/// #define EFI_CACHE_SRAM_INSTALL_RECORD_NUMBER 0x00000006
+/// #define EFI_CACHE_ERROR_SUPPORT_RECORD_NUMBER 0x00000007
+/// #define EFI_CACHE_TYPE_RECORD_NUMBER 0x00000008
+/// #define EFI_CACHE_ASSOCIATIVITY_RECORD_NUMBER 0x00000009
+/// #define EFI_CACHE_CONFIGURATION_RECORD_NUMBER 0x0000000A
+/// Keep the definition unchanged for backward compatibility.
+///
typedef enum {
CacheSizeRecordType = 1,
MaximumSizeCacheRecordType = 2,
@@ -925,7 +967,7 @@ typedef enum {
///
/// Inconsistent with specification here:
-/// In CacheSubclass spec0.9, the union type data structure is NOT defined.
+/// In CacheSubclass specification 0.9, the union type data structure is NOT defined.
/// It's implementation-specific to simplify the code logic.
///
typedef union {
@@ -1092,7 +1134,7 @@ typedef enum _EFI_MEMORY_FORM_FACTOR {
EfiMemoryFormFactorSrimm = 0x0E,
///
/// Inconsistent with specification here:
- /// This field is NOT defined in MemSubClass spec0.9. It's introduced for SMBIOS2.6 spec.
+ /// This field is NOT defined in MemSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.
///
EfiMemoryFormFactorFbDimm = 0x0F
} EFI_MEMORY_FORM_FACTOR;
@@ -1118,12 +1160,12 @@ typedef enum _EFI_MEMORY_ARRAY_TYPE {
EfiMemoryTypeDdr = 0x12,
///
/// Inconsistent with specification here:
- /// This field is NOT defined in MemSubClass spec0.9. It's introduced for SMBIOS2.6 spec.
+ /// This field is NOT defined in MemSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.
///
EfiMemoryTypeDdr2 = 0x13,
///
/// Inconsistent with specification here:
- /// This field is NOT defined in MemSubClass spec0.9. It's introduced for SMBIOS2.6 spec.
+ /// This field is NOT defined in MemSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.
///
EfiMemoryTypeDdr2FbDimm = 0x14
} EFI_MEMORY_ARRAY_TYPE;
@@ -1154,7 +1196,7 @@ typedef enum {
EfiMemoryStateDisabled = 5,
///
/// Inconsistent with specification here:
- /// This field is NOT defined in MemSubClass spec0.9. It's introduced for SMBIOS2.6 spec.
+ /// This field is NOT defined in MemSubClass specification 0.9. It's introduced for SMBIOS2.6 specification.
///
EfiMemoryStatePartial = 6
} EFI_MEMORY_STATE;
@@ -1235,7 +1277,7 @@ typedef struct {
/// The memory speed in megahertz (MHz). A value of 0x00 denotes that
/// the speed is unknown.
/// Inconsistent with specification here:
- /// In MemSubclass spec 0.9, the naming is MemoryTypeSpeed.
+ /// In MemSubclass specification 0.9, the naming is MemoryTypeSpeed.
/// Keep it unchanged for backward compatibilty.
///
EFI_EXP_BASE10_DATA MemorySpeed;
@@ -1384,14 +1426,14 @@ typedef struct {
//
///
/// Inconsistent with specification here:
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.
/// It's introduced for SmBios 2.6 type 5.
///
#define EFI_MEMORY_CONTROLLER_INFORMATION_RECORD_NUMBER 0x00000008
///
/// Inconsistent with specification here:
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.
/// It's introduced for SmBios 2.6 type 5.
///
typedef enum {
@@ -1407,7 +1449,7 @@ typedef enum {
///
/// Inconsistent with specification here:
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.
/// It's introduced for SmBios 2.6 type 5.
///
typedef struct {
@@ -1422,7 +1464,7 @@ typedef struct {
///
/// Inconsistent with specification here:
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.
/// It's introduced for SmBios 2.6 type 5.
///
typedef enum {
@@ -1437,7 +1479,7 @@ typedef enum {
///
/// Inconsistent with specification here:
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.
/// It's introduced for SmBios 2.6 type 5.
///
typedef struct {
@@ -1451,7 +1493,7 @@ typedef struct {
///
/// Inconsistent with specification here:
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.
/// It's introduced for SmBios 2.6 type 5.
///
typedef struct {
@@ -1471,7 +1513,7 @@ typedef struct {
///
/// Inconsistent with specification here:
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.
/// It's introduced for SmBios 2.6 type 5.
///
typedef struct {
@@ -1486,7 +1528,7 @@ typedef struct {
/// Use EFI_MEMORY_CONTROLLER_INFORMATION_DATA instead
///
/// Inconsistent with specification here:
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.
/// It's introduced for SmBios 2.6 type 5.
///
typedef struct {
@@ -1505,7 +1547,7 @@ typedef struct {
///
/// Inconsistent with specification here:
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.
/// It's introduced for SmBios 2.6 type 5.
///
typedef struct {
@@ -1526,13 +1568,13 @@ typedef struct {
/// Memory. Error Information - SMBIOS Type 18
///
/// Inconsistent with specification here:
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.
/// It's introduced for SmBios 2.6 type 18.
///
#define EFI_MEMORY_32BIT_ERROR_INFORMATION_RECORD_NUMBER 0x00000009
///
/// Inconsistent with specification here:
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.
/// It's introduced for SmBios 2.6 type 18.
///
typedef enum {
@@ -1553,7 +1595,7 @@ typedef enum {
} EFI_MEMORY_ERROR_TYPE;
///
/// Inconsistent with specification here:
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.
/// It's introduced for SmBios 2.6 type 18.
///
typedef enum {
@@ -1564,7 +1606,7 @@ typedef enum {
} EFI_MEMORY_ERROR_GRANULARITY_TYPE;
///
/// Inconsistent with specification here:
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.
/// It's introduced for SmBios 2.6 type 18.
///
typedef enum {
@@ -1576,7 +1618,7 @@ typedef enum {
} EFI_MEMORY_ERROR_OPERATION_TYPE;
///
/// Inconsistent with specification here:
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.
/// It's introduced for SmBios 2.6 type 18.
///
typedef struct {
@@ -1590,17 +1632,17 @@ typedef struct {
} EFI_MEMORY_32BIT_ERROR_INFORMATION;
///
-/// Memory. Error Information - SMBIOS Type 33
+/// Memory. Error Information - SMBIOS Type 33.
///
/// Inconsistent with specification here:
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.
/// It's introduced for SmBios 2.6 type 33.
///
#define EFI_MEMORY_64BIT_ERROR_INFORMATION_RECORD_NUMBER 0x0000000A
///
/// Inconsistent with specification here:
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.
/// It's introduced for SmBios 2.6 type 33.
///
typedef struct {
@@ -1615,7 +1657,7 @@ typedef struct {
///
/// Inconsistent with specification here:
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.
/// It is implementation-specific to simplify the code logic.
///
typedef union _EFI_MEMORY_SUBCLASS_RECORDS {
@@ -1716,26 +1758,26 @@ typedef struct {
BiosCharacteristics2;
///
/// Inconsistent with specification here:
- /// In MiscSubclass spec 0.9, this data structure and corrsponding fields are NOT defined.
- /// It's introduced for SmBios 2.6 spec type 0.
+ /// In MiscSubclass specification 0.9, this data structure and corrsponding fields are NOT defined.
+ /// It's introduced for SmBios 2.6 specification type 0.
///
UINT8 BiosMajorRelease;
///
/// Inconsistent with specification here:
- /// In MiscSubclass spec 0.9, this data structure and corrsponding fields are NOT defined.
- /// It's introduced for SmBios 2.6 spec type 0.
+ /// In MiscSubclass specification 0.9, this data structure and corrsponding fields are NOT defined.
+ /// It's introduced for SmBios 2.6 specification type 0.
///
UINT8 BiosMinorRelease;
///
/// Inconsistent with specification here:
- /// In MiscSubclass spec 0.9, this data structure and corrsponding fields are NOT defined.
- /// It's introduced for SmBios 2.6 spec type 0.
+ /// In MiscSubclass specification 0.9, this data structure and corrsponding fields are NOT defined.
+ /// It's introduced for SmBios 2.6 specification type 0.
///
UINT8 BiosEmbeddedFirmwareMajorRelease;
///
/// Inconsistent with specification here:
- /// In MiscSubclass spec 0.9, this data structure and corrsponding fields are NOT defined.
- /// It's introduced for SmBios 2.6 spec type 0.
+ /// In MiscSubclass specification 0.9, this data structure and corrsponding fields are NOT defined.
+ /// It's introduced for SmBios 2.6 specification type 0.
///
UINT8 BiosEmbeddedFirmwareMinorRelease;
} EFI_MISC_BIOS_VENDOR_DATA;
@@ -1766,14 +1808,14 @@ typedef struct {
EFI_MISC_SYSTEM_WAKEUP_TYPE SystemWakeupType;
///
/// Inconsistent with specification here:
- /// In MiscSubclass spec 0.9, this data structure and corrsponding fields are NOT defined.
- /// It's introduced for SmBios 2.6 spec type 1.
+ /// In MiscSubclass specification 0.9, this data structure and corrsponding fields are NOT defined.
+ /// It's introduced for SmBios 2.6 specification type 1.
///
STRING_REF SystemSKUNumber;
///
/// Inconsistent with specification here:
- /// In MiscSubclass spec 0.9, this data structure and corrsponding fields are NOT defined.
- /// It's introduced for SmBios 2.6 spec type 1.
+ /// In MiscSubclass specification 0.9, this data structure and corrsponding fields are NOT defined.
+ /// It's introduced for SmBios 2.6 specification type 1.
///
STRING_REF SystemFamily;
} EFI_MISC_SYSTEM_MANUFACTURER_DATA;
@@ -1858,7 +1900,7 @@ typedef enum {
typedef struct {
///
/// Inconsistent with specification here:
- /// In MiscSubclass 0.9 spec. It have a wrong field name "EFI_MISC_CHASSIS_TYPE".
+ /// In MiscSubclass 0.9 specification, it has the incorrect field name "EFI_MISC_CHASSIS_TYPE".
/// Change it to "ChassisType" to pass build.
///
UINT32 ChassisType :16;
@@ -2007,6 +2049,12 @@ typedef struct {
EFI_MISC_PORT_CONNECTOR_TYPE PortInternalConnectorType;
EFI_MISC_PORT_CONNECTOR_TYPE PortExternalConnectorType;
EFI_MISC_PORT_TYPE PortType;
+ ///
+ /// Inconsistent with specification here:
+ /// In MiscSubclass specification 0.9, this type of field is defined as EFI_DEVICE_PATH_PROTOCOL,
+ /// which causes the implementation some complexity. Keep it unchanged for backward
+ /// compatibility.
+ ///
EFI_MISC_PORT_DEVICE_PATH PortPath;
} EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA;
@@ -2033,7 +2081,7 @@ typedef enum {
EfiSlotTypeAgp = 0x0F,
///
/// Inconsistent with specification here:
- /// In MiscSubclass spec 0.9, its naming should be EfiSlotTypeAgp2X
+ /// In MiscSubclass specification 0.9, its naming should be EfiSlotTypeAgp2X
/// rather than EfiSlotTypeApg2X.
///
EfiSlotTypeAgp2X = 0x10,
@@ -2047,10 +2095,15 @@ typedef enum {
EfiSlotTypePC98Card = 0xA4,
///
/// Inconsistent with specification here:
- /// In MiscSubclass spec 0.9, this field isn't defined.
- /// It's introduced for SmBios 2.6 spec type 9.
- ///
- EfiSlotTypePciExpress = 0xA5
+ /// In MiscSubclass specification 0.9, these fields aren't defined.
+ /// They're introduced for SmBios 2.6 specification type 9.
+ ///
+ EfiSlotTypePciExpress = 0xA5,
+ EfiSlotTypePciExpressX1 = 0xA6,
+ EfiSlotTypePciExpressX2 = 0xA7,
+ EfiSlotTypePciExpressX4 = 0xA8,
+ EfiSlotTypePciExpressX8 = 0xA9,
+ EfiSlotTypePciExpressX16 = 0xAA
} EFI_MISC_SLOT_TYPE;
typedef enum {
@@ -2060,7 +2113,19 @@ typedef enum {
EfiSlotDataBusWidth16Bit = 0x04,
EfiSlotDataBusWidth32Bit = 0x05,
EfiSlotDataBusWidth64Bit = 0x06,
- EfiSlotDataBusWidth128Bit = 0x07
+ EfiSlotDataBusWidth128Bit = 0x07,
+ ///
+ /// Inconsistent with specification here:
+ /// In MiscSubclass specification 0.9, these fields aren't defined.
+ /// They're introduced for SmBios 2.6 specification type 9.
+ ///
+ EfiSlotDataBusWidth1xOrx1 = 0x8,
+ EfiSlotDataBusWidth2xOrx2 = 0x9,
+ EfiSlotDataBusWidth4xOrx4 = 0xA,
+ EfiSlotDataBusWidth8xOrx8 = 0xB,
+ EfiSlotDataBusWidth12xOrx12 = 0xC,
+ EfiSlotDataBusWidth16xOrx16 = 0xD,
+ EfiSlotDataBusWidth32xOrx32 = 0xE
} EFI_MISC_SLOT_DATA_BUS_WIDTH;
typedef enum {
@@ -2128,7 +2193,7 @@ typedef struct {
STRING_REF OnBoardDeviceDescription;
///
/// Inconsistent with specification here:
- /// In MiscSubclass spec 0.9, the naming is OnBoardDeviceType.
+ /// In MiscSubclass specification 0.9, the name is OnBoardDeviceType.
/// Keep it unchanged for backward compatibilty.
///
EFI_MISC_ONBOARD_DEVICE_STATUS OnBoardDeviceStatus;
@@ -2245,15 +2310,15 @@ typedef struct {
//
///
/// Inconsistent with specification here:
-/// In MiscSubclass spec 0.9, the naming is EFI_MISC_BATTERY_LOCATION_RECORD_NUMBER.
+/// In MiscSubclass specification 0.9, the name 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.
+/// In MiscSubclass specification 0.9, the structure name is EFI_MISC_BATTERY_DEVICE_CHEMISTRY.
+/// And all field namings are also different with specification.
/// Keep it unchanged for backward compatibilty.
///
typedef enum {
@@ -2269,8 +2334,8 @@ typedef enum {
///
/// 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.
+/// In MiscSubclass specification 0.9, the structure name is EFI_MISC_BATTERY_LOCATION_DATA.
+/// Also, the name and the order of the fields vary with specifications.
/// Keep it unchanged for backward compatibilty.
///
typedef struct {
@@ -2331,9 +2396,9 @@ typedef struct {
///
/// Inconsistent with specification here:
-/// In MiscSubclass spec 0.9, it only mention the possible value of each field in
+/// The MiscSubclass specification 0.9 only mentions the possible value of each field in
/// EFI_MISC_HARDWARE_SECURITY_SETTINGS.
-/// It's implementation-specific to simplify the code logic.
+/// It's implementation-specific in order to to simplify the code logic.
///
typedef enum {
EfiHardwareSecurityStatusDisabled = 0,
@@ -2410,8 +2475,8 @@ typedef struct {
typedef struct {
EFI_MISC_COOLING_DEVICE_TYPE CoolingDeviceType;
EFI_INTER_LINK_DATA CoolingDeviceTemperatureLink;
- UINT16 CoolingDeviceUnitGroup;
- EFI_EXP_BASE10_DATA CoolingDeviceNominalSpeed;
+ UINT8 CoolingDeviceUnitGroup;
+ UINT16 CoolingDeviceNominalSpeed;
UINT32 CoolingDeviceOemDefined;
} EFI_MISC_COOLING_DEVICE_TEMP_LINK_DATA;
@@ -2430,18 +2495,24 @@ typedef struct {
STRING_REF TemperatureProbeDescription;
EFI_MISC_TEMPERATURE_PROBE_LOCATION
TemperatureProbeLocation;
- EFI_EXP_BASE10_DATA TemperatureProbeMaximumValue;
- EFI_EXP_BASE10_DATA TemperatureProbeMinimumValue;
- EFI_EXP_BASE10_DATA TemperatureProbeResolution;
- EFI_EXP_BASE10_DATA TemperatureProbeTolerance;
- EFI_EXP_BASE10_DATA TemperatureProbeAccuracy;
- EFI_EXP_BASE10_DATA TemperatureProbeNominalValue;
- EFI_EXP_BASE10_DATA MDLowerNoncriticalThreshold;
- EFI_EXP_BASE10_DATA MDUpperNoncriticalThreshold;
- EFI_EXP_BASE10_DATA MDLowerCriticalThreshold;
- EFI_EXP_BASE10_DATA MDUpperCriticalThreshold;
- EFI_EXP_BASE10_DATA MDLowerNonrecoverableThreshold;
- EFI_EXP_BASE10_DATA MDUpperNonrecoverableThreshold;
+ ///
+ /// Inconsistent with specification here:
+ /// MiscSubclass 0.9 specification defines the fields type as EFI_EXP_BASE10_DATA.
+ /// In fact, they should be UINT16 type because they refer to 16bit width data.
+ /// Keeping this inconsistency for backward compatibility.
+ ///
+ UINT16 TemperatureProbeMaximumValue;
+ UINT16 TemperatureProbeMinimumValue;
+ UINT16 TemperatureProbeResolution;
+ UINT16 TemperatureProbeTolerance;
+ UINT16 TemperatureProbeAccuracy;
+ UINT16 TemperatureProbeNominalValue;
+ UINT16 MDLowerNoncriticalThreshold;
+ UINT16 MDUpperNoncriticalThreshold;
+ UINT16 MDLowerCriticalThreshold;
+ UINT16 MDUpperCriticalThreshold;
+ UINT16 MDLowerNonrecoverableThreshold;
+ UINT16 MDUpperNonrecoverableThreshold;
UINT32 TemperatureProbeOemDefined;
} EFI_MISC_TEMPERATURE_PROBE_DESCRIPTION_DATA;
@@ -2509,7 +2580,7 @@ typedef struct {
///
/// Inconsistent with specification here:
-/// In MiscSubclass spec 0.9, the structure name is EFI_MISC_BOOT_INFORMATION_STATUS_TYPE.
+/// In MiscSubclass specification 0.9, the structure name is EFI_MISC_BOOT_INFORMATION_STATUS_TYPE.
/// Keep it unchanged for backward compatibilty.
///
typedef enum {
@@ -2530,7 +2601,7 @@ typedef enum {
typedef struct {
///
/// Inconsistent with specification here:
- /// In MiscSubclass spec 0.9, the field name is EFI_MISC_BOOT_INFORMATION_STATUS_TYPE.
+ /// In MiscSubclass specification 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;
@@ -2586,10 +2657,16 @@ typedef struct {
EFI_INTER_LINK_DATA ManagementDeviceComponentLink;
///
/// Inconsistent with specification here:
- /// In MiscSubclass spec 0.9, this field is NOT defined.
- /// It's introduced for SmBios 2.6 spec type 35.
+ /// In MiscSubclass specification 0.9, this field is NOT defined.
+ /// It's introduced for SmBios 2.6 specification type 35.
///
EFI_INTER_LINK_DATA ManagementDeviceThresholdLink;
+ ///
+ /// Inconsistent with specification here:
+ /// In MiscSubclass specification 0.9, this field is NOT defined.
+ /// It's implementation-specific to simplify the code logic.
+ ///
+ UINT8 ComponentType;
} EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION_DATA;
//
@@ -2619,12 +2696,17 @@ typedef struct {
} EFI_MISC_IPMI_INTERFACE_TYPE_DATA;
#define EFI_MISC_IPMI_INTERFACE_TYPE_RECORD_NUMBER 0x0000001D
+///
+/// The definition above is *NOT* defined in MiscSubclass specifications 0.9.
+/// It's defined for backward compatibility.
+///
+#define EFI_MISC_IPMI_INTERFACE_TYPE_DATA_RECORD_NUMBER EFI_MISC_IPMI_INTERFACE_TYPE_RECORD_NUMBER
///
/// System Power supply Record - SMBIOS Type 39
///
/// Inconsistent with specification here:
-/// In MiscSubclass spec 0.9, the type of all fields are UINT32.
+/// In MiscSubclass specification 0.9, the type of all fields are UINT32.
/// Keep it unchanged for backward compatibilty.
///
typedef struct {
@@ -2639,7 +2721,7 @@ typedef struct {
///
/// Inconsistent with specification here:
-/// In MiscSubclass spec 0.9, the field name is EFI_MISC_POWER_SUPPLY_UNIT_GROUP_DATA.
+/// In MiscSubclass specification 0.9, the structure name is EFI_MISC_POWER_SUPPLY_UNIT_GROUP_DATA.
/// Keep it unchanged for backward compatibilty.
///
typedef struct {
@@ -2664,8 +2746,8 @@ typedef struct {
/// 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,
+/// In MiscSubclass specification 0.9, the structure name is EFI_SMBIOS_STRUCTURE_HDR.
+/// Due to this, the structure is commonly used by vendors to construct SmBios type 0x80~0xFF table,
/// Keep it unchanged for backward compatibilty.
///
typedef struct {
@@ -2677,7 +2759,7 @@ typedef struct {
typedef struct {
///
/// Inconsistent with specification here:
- /// In MiscSubclass spec 0.9, the field name is EFI_SMBIOS_STRUCTURE_HDR.
+ /// In MiscSubclass specification 0.9, the field name is EFI_SMBIOS_STRUCTURE_HDR.
/// Keep it unchanged for backward compatibilty.
///
SMBIOS_STRUCTURE_HDR Header;
@@ -2690,15 +2772,15 @@ typedef struct {
/// Misc. System Event Log - SMBIOS Type 15
///
/// Inconsistent with specification here:
-/// In MiscSubclass spec 0.9, the following data structures are NOT defined.
-/// It's introduced for SmBios 2.6 spec type 15.
+/// In MiscSubclass specification 0.9, the following data structures are NOT defined.
+/// It's introduced for SmBios 2.6 specification type 15.
///
#define EFI_MISC_SYSTEM_EVENT_LOG_RECORD_NUMBER 0x00000020
///
/// Inconsistent with specification here:
-/// In MiscSubclass spec 0.9, the following data structures are NOT defined.
-/// It's introduced for SmBios 2.6 spec type 15.
+/// In MiscSubclass specification 0.9, the following data structures are NOT defined.
+/// It's introduced for SmBios 2.6 specification type 15.
///
typedef struct {
UINT16 LogAreaLength;
@@ -2729,14 +2811,14 @@ typedef struct {
/// Management Device Threshold Data Record - SMBIOS Type 36
///
/// Inconsistent with specification here:
-/// In MiscSubclass spec 0.9, the following data structures are NOT defined.
-/// It's introduced for SmBios 2.6 spec type 36.
+/// In MiscSubclass specification 0.9, the following data structures are NOT defined.
+/// It's introduced for SmBios 2.6 specification type 36.
///
#define EFI_MISC_MANAGEMENT_DEVICE_THRESHOLD_RECORD_NUMBER 0x00000021
///
/// Inconsistent with specification here:
-/// In MiscSubclass spec 0.9, the following data structures are NOT defined.
-/// It's introduced for SmBios 2.6 spec type 36.
+/// In MiscSubclass specification 0.9, the following data structures are NOT defined.
+/// It's introduced for SmBios 2.6 specification type 36.
///
typedef struct {
UINT16 LowerThresNonCritical;
@@ -2776,10 +2858,12 @@ typedef EFI_MISC_REMOTE_ACCESS_MANUFACTURER_DESCRIPTION_DATA
EFI_MISC_REMOTE_ACCESS_MANUFACTURER_DESCRIPTION;
typedef EFI_MISC_MANAGEMENT_DEVICE_DESCRIPTION_DATA EFI_MISC_MANAGEMENT_DEVICE_DESCRIPTION;
typedef EFI_MISC_ELECTRICAL_CURRENT_PROBE_DESCRIPTION_DATA EFI_MISC_ELECTRICAL_CURRENT_PROBE_DESCRIPTION;
+typedef EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION_DATA
+ EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION;
///
/// Inconsistent with specification here:
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.
/// It is implementation-specific to simplify the code logic.
///
typedef union {
@@ -2821,7 +2905,7 @@ typedef union {
///
/// Inconsistent with specification here:
-/// In MemSubclass spec 0.9, the following data structures are NOT defined.
+/// In MemSubclass specification 0.9, the following data structures are NOT defined.
/// It is implementation-specific to simplify the code logic.
///
typedef struct {
@@ -2832,13 +2916,13 @@ typedef struct {
///
/// Inconsistent with specification here:
-/// In DataHubSubclass spec 0.9 page 16, the following symbol is NOT defined.
+/// In DataHubSubclass specification 0.9 page 16, the following symbol is NOT defined.
/// But value is meaningful, 0 means Reserved.
///
#define EFI_SUBCLASS_INSTANCE_RESERVED 0
///
/// Inconsistent with specification here:
-/// In DataHubSubclass spec 0.9 page 16, the following symbol is NOT defined.
+/// In DataHubSubclass specification 0.9 page 16, the following symbol is NOT defined.
/// But value is meaningful, -1 means Not Applicable.
///
#define EFI_SUBCLASS_INSTANCE_NON_APPLICABLE 0xFFFF