]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkCompatibilityPkg/Compatibility/PiSmbiosRecordOnDataHubSmbiosRecordThunk/ConvTable.c
Rename DataHubSmBiosRecordsOnPiSmBiosThunk to PiSmbiosRecordOnDataHubSmbiosRecordThun...
[mirror_edk2.git] / EdkCompatibilityPkg / Compatibility / PiSmbiosRecordOnDataHubSmbiosRecordThunk / ConvTable.c
diff --git a/EdkCompatibilityPkg/Compatibility/PiSmbiosRecordOnDataHubSmbiosRecordThunk/ConvTable.c b/EdkCompatibilityPkg/Compatibility/PiSmbiosRecordOnDataHubSmbiosRecordThunk/ConvTable.c
new file mode 100644 (file)
index 0000000..2809748
--- /dev/null
@@ -0,0 +1,1235 @@
+/** @file\r
+  The conversion table that guides the generation of the Smbios struture list.\r
+  \r
+Copyright (c) 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
+\r
+**/\r
+\r
+#include "Thunk.h"\r
+\r
+///\r
+/// The minimal length includes last two zero bytes.\r
+///\r
+SMBIOS_TYPE_INFO_TABLE_ENTRY  mTypeInfoTable[] = {\r
+  //\r
+  // Type 0: Bios Information\r
+  //\r
+  {\r
+    0,\r
+    0x1a,\r
+    TRUE,\r
+    FALSE\r
+  },  // size includes wo extension bytes\r
+  //\r
+  // Type 1: System Information\r
+  //\r
+  {\r
+    1,\r
+    0x1d,\r
+    TRUE,\r
+    FALSE\r
+  },\r
+  //\r
+  // Type 2: Base Board Information\r
+  //\r
+  {\r
+    2,\r
+    0x12,\r
+    FALSE,\r
+    FALSE\r
+  },\r
+  //\r
+  // Type 3: System Enclosure or Chassis\r
+  //\r
+  {\r
+    3,\r
+    0x17, // 0x13 covers till OEM-defined, not right\r
+    TRUE,\r
+    FALSE\r
+  },\r
+  //\r
+  // Type 4: Processor\r
+  //\r
+  {\r
+    4,\r
+    0x25,\r
+    TRUE,\r
+    FALSE\r
+  },\r
+  //\r
+  // Type 5: Memory Controller\r
+  //\r
+  {\r
+    5,\r
+    0x12,\r
+    FALSE,\r
+    FALSE\r
+  },  \r
+  //\r
+  // Type 6: Memory\r
+  //\r
+  {\r
+    6,\r
+    0x0E,\r
+    FALSE,\r
+    FALSE\r
+  },\r
+  //\r
+  // Type 7: Cache\r
+  //\r
+  {\r
+    7,\r
+    0x15,\r
+    TRUE,\r
+    FALSE\r
+  },\r
+  //\r
+  // Type 8: Port Connector Information\r
+  //\r
+  {\r
+    8,\r
+    0x0B,\r
+    FALSE,\r
+    FALSE\r
+  },\r
+  //\r
+  // Type 9: System Slots\r
+  //\r
+  {\r
+    9,\r
+    0x0f,\r
+    TRUE,\r
+    FALSE\r
+  },\r
+  //\r
+  // Type 10: On Board Device Information\r
+  //\r
+  {\r
+    10,\r
+    0x8,\r
+    FALSE,\r
+    FALSE\r
+  },\r
+  //\r
+  // Type 11: OEM Strings\r
+  //\r
+  {\r
+    11, \r
+    0x7, \r
+    FALSE, \r
+    FALSE\r
+  },\r
+  //\r
+  // Type 12: System Configuration Options\r
+  //\r
+  {\r
+    12,\r
+    0x7,\r
+    FALSE,\r
+    FALSE\r
+  },\r
+  //\r
+  // Type 13: BIOS Language Information\r
+  //\r
+  {\r
+    13,\r
+    0x18,\r
+    FALSE,\r
+    FALSE\r
+  },\r
+  //\r
+  // Type 15: System Event Log\r
+  //\r
+  {\r
+    15,\r
+    0x19,\r
+    FALSE,\r
+    FALSE\r
+  },  \r
+  //\r
+  // Type 16: Physical Memory Array\r
+  //\r
+  {\r
+    16,\r
+    0x11,\r
+    TRUE,\r
+    FALSE\r
+  },\r
+  //\r
+  // Type 17: Memory Device\r
+  //\r
+  {\r
+    17,\r
+    0x1d,\r
+    TRUE,\r
+    FALSE\r
+  },\r
+  //\r
+  // Type 18: 32 bit Memory Error Information\r
+  //\r
+  {\r
+    18,\r
+    0x19,\r
+    FALSE,\r
+    FALSE\r
+  },  \r
+  //\r
+  // Type 19: Memory Array Mapped Address\r
+  //\r
+  {\r
+    19,\r
+    0x11,\r
+    TRUE,\r
+    FALSE\r
+  },\r
+  //\r
+  // Type 20: Memory Device Mapped Address\r
+  //\r
+  {\r
+    20,\r
+    0x15,\r
+    TRUE,\r
+    FALSE\r
+  },\r
+  //\r
+  // Type 21: Pointing Device\r
+  //\r
+  {\r
+    21,\r
+    0x9,\r
+    FALSE,\r
+    FALSE\r
+  },\r
+  //\r
+  // Type 22: Portable Battery\r
+  //\r
+  {\r
+    22,\r
+    0x1c,\r
+    FALSE,\r
+    FALSE\r
+  },  \r
+  //\r
+  // Type 23: System Reset\r
+  //\r
+  {\r
+    23,\r
+    0x0f,\r
+    FALSE,\r
+    FALSE\r
+  },\r
+  //\r
+  // Type 24: Hardware Security\r
+  //\r
+  {\r
+    24,\r
+    0x07,\r
+    FALSE,\r
+    FALSE\r
+  },\r
+  //\r
+  // Type 25: System Power Controls\r
+  //\r
+  {\r
+    25,\r
+    0x0b,\r
+    FALSE,\r
+    FALSE\r
+  },\r
+  //\r
+  // Type 26: Voltage Probe\r
+  //\r
+  {\r
+    26,\r
+    0x18,\r
+    FALSE,\r
+    FALSE\r
+  },\r
+  //\r
+  // Type 27: Cooling Device\r
+  //\r
+  {\r
+    27,\r
+    0x10,\r
+    FALSE,\r
+    FALSE\r
+  },\r
+  //\r
+  // Type 28: Temperature Probe\r
+  //\r
+  {\r
+    28,\r
+    0x18,\r
+    FALSE,\r
+    FALSE\r
+  },\r
+  //\r
+  // Type 29: Electrical Current Probe\r
+  //\r
+  {\r
+    29,\r
+    0x18,\r
+    FALSE,\r
+    FALSE\r
+  },\r
+  //\r
+  // Type 30: Out-of-Band Remote Access\r
+  //\r
+  {\r
+    30,\r
+    0x08,\r
+    FALSE,\r
+    FALSE\r
+  },         \r
+  //\r
+  // Type 31: BIS Entry Point\r
+  //\r
+  {\r
+    31,\r
+    0x1c,\r
+    FALSE,\r
+    FALSE\r
+  },   \r
+  //\r
+  // Type 32: System Boot Information\r
+  //\r
+  {\r
+    32,\r
+    0x16,\r
+    TRUE,\r
+    FALSE\r
+  },\r
+  //\r
+  // Type 33: 64 bit Memory Error Information\r
+  //\r
+  {\r
+    33,\r
+    0x21,\r
+    FALSE,\r
+    FALSE\r
+  },  \r
+  //\r
+  // Type 34: Management Device\r
+  //\r
+  {\r
+    34,\r
+    0x0d,\r
+    FALSE,\r
+    FALSE\r
+  },\r
+  //\r
+  // Type 36: Management Device Threshold\r
+  //\r
+  {\r
+    36,\r
+    0x12,\r
+    FALSE,\r
+    FALSE\r
+  },        \r
+  //\r
+  // Type 37: Memory Channel\r
+  //\r
+  {\r
+    37,\r
+    0x0c,\r
+    FALSE,\r
+    FALSE\r
+  },\r
+  //\r
+  // Type 38: IPMI device info\r
+  //\r
+  {\r
+    38,\r
+    0x12,\r
+    TRUE,\r
+    FALSE\r
+  },\r
+  //\r
+  // Type 39: Power supply\r
+  //\r
+  {\r
+    39,\r
+    0x18,\r
+    FALSE,\r
+    FALSE\r
+  },  \r
+  //\r
+  // Type 0x80-0xFF: OEM type\r
+  //\r
+  {\r
+    0x80,\r
+    0x6,\r
+    FALSE,\r
+    FALSE\r
+  },\r
+  //\r
+  // Type 127: End of Table\r
+  //\r
+  {\r
+    127,\r
+    0x6,\r
+    FALSE,\r
+    FALSE\r
+  },\r
+  //\r
+  // Terminator\r
+  //\r
+  {\r
+    0,\r
+    0\r
+  }\r
+};\r
+\r
+SMBIOS_CONVERSION_TABLE_ENTRY mConversionTable[] = {\r
+\r
+  {\r
+    //\r
+    // Processor Sub Class -- Record Type 1: Frequency\r
+    //\r
+    EFI_PROCESSOR_SUBCLASS_GUID,\r
+    ProcessorCoreFrequencyRecordType,\r
+    4,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION_WITH_OFFSET_SPECIFIED,\r
+    0x16,\r
+    SmbiosFldBase10ToWordWithMega\r
+  },\r
+\r
+  {\r
+    //\r
+    // Processor SubClass -- Record Type 2: Bus Frequency\r
+    //\r
+    EFI_PROCESSOR_SUBCLASS_GUID,\r
+    ProcessorFsbFrequencyRecordType,\r
+    4,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION_WITH_OFFSET_SPECIFIED,\r
+    0x12,\r
+    SmbiosFldBase10ToWordWithMega\r
+  },\r
+\r
+  {\r
+    //\r
+    // Processor SubClass -- Record Type 3: Version\r
+    //\r
+    EFI_PROCESSOR_SUBCLASS_GUID,\r
+    ProcessorVersionRecordType,\r
+    4,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION_WITH_OFFSET_SPECIFIED,\r
+    0x10,\r
+    SmbiosFldString\r
+  },\r
+\r
+  {\r
+    //\r
+    // Processor SubClass -- Record Type 4: Manufacturor\r
+    //\r
+    EFI_PROCESSOR_SUBCLASS_GUID,\r
+    ProcessorManufacturerRecordType,\r
+    4,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION_WITH_OFFSET_SPECIFIED,\r
+    0x7,\r
+    SmbiosFldString\r
+  },\r
+\r
+  {\r
+    //\r
+    // Processor SubClass -- Record Type 5: Serial Number\r
+    //\r
+    EFI_PROCESSOR_SUBCLASS_GUID,\r
+    ProcessorSerialNumberRecordType,\r
+    4,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION_WITH_OFFSET_SPECIFIED,\r
+    0x20,\r
+    SmbiosFldString\r
+  },\r
+\r
+  {\r
+    //\r
+    // Processor SubClass -- Record Type 6: ID\r
+    //\r
+    EFI_PROCESSOR_SUBCLASS_GUID,\r
+    ProcessorIdRecordType,\r
+    4,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION_WITH_OFFSET_SPECIFIED,\r
+    0x08,\r
+    SmbiosFldProcessorType6\r
+  },\r
+\r
+  {\r
+    //\r
+    // Processor SubClass -- Record Type 7: Type\r
+    //\r
+    EFI_PROCESSOR_SUBCLASS_GUID,\r
+    ProcessorTypeRecordType,\r
+    4,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION_WITH_OFFSET_SPECIFIED,\r
+    0x05,\r
+    SmbiosFldTruncateToByte\r
+  },\r
+\r
+  {\r
+    //\r
+    // Processor SubClass -- Record Type 8: Family\r
+    //\r
+    EFI_PROCESSOR_SUBCLASS_GUID,\r
+    ProcessorFamilyRecordType,\r
+    4,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION_WITH_OFFSET_SPECIFIED,\r
+    0x06,\r
+    SmbiosFldTruncateToByte\r
+  },\r
+\r
+  {\r
+    //\r
+    // Processor SubClass -- Record Type 9: Voltage\r
+    //\r
+    EFI_PROCESSOR_SUBCLASS_GUID,\r
+    ProcessorVoltageRecordType,\r
+    4,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION_WITH_OFFSET_SPECIFIED,\r
+    0x11,\r
+    SmbiosFldProcessorType9\r
+  },\r
+\r
+  {\r
+    //\r
+    // Processor SubClass -- Record Type 14: Status\r
+    //\r
+    EFI_PROCESSOR_SUBCLASS_GUID,\r
+    ProcessorStatusRecordType,\r
+    4,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION_WITH_OFFSET_SPECIFIED,\r
+    0x18,\r
+    SmbiosFldTruncateToByte\r
+  },\r
+\r
+  {\r
+    //\r
+    // Processor SubClass -- Record Type 15: Socket Type\r
+    //\r
+    EFI_PROCESSOR_SUBCLASS_GUID,\r
+    ProcessorSocketTypeRecordType,\r
+    4,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION_WITH_OFFSET_SPECIFIED,\r
+    0x19,\r
+    SmbiosFldTruncateToByte\r
+  },\r
+\r
+  {\r
+    //\r
+    // Processor SubClass -- Record Type 16: Socket Name\r
+    //\r
+    EFI_PROCESSOR_SUBCLASS_GUID,\r
+    ProcessorSocketNameRecordType,\r
+    4,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION_WITH_OFFSET_SPECIFIED,\r
+    0x04,\r
+    SmbiosFldString\r
+  },\r
+\r
+  {\r
+    //\r
+    // Processor SubClass -- Record Type 17: Cache Associtation\r
+    //\r
+    EFI_PROCESSOR_SUBCLASS_GUID,\r
+    CacheAssociationRecordType,\r
+    4,\r
+    BY_SUBCLASS_INSTANCE_PRODUCER,\r
+    BY_FUNCTION_WITH_WHOLE_DATA_RECORD,\r
+    0,\r
+    SmbiosFldProcessorType17\r
+  },\r
+\r
+  {\r
+    //\r
+    // Processor Sub Class -- Record Type 18: MaxFrequency\r
+    //\r
+    EFI_PROCESSOR_SUBCLASS_GUID,\r
+    ProcessorMaxCoreFrequencyRecordType,\r
+    4,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION_WITH_OFFSET_SPECIFIED,\r
+    0x14,\r
+    SmbiosFldBase10ToWordWithMega\r
+  },\r
+\r
+  {\r
+    //\r
+    // Processor SubClass -- Record Type 19: Asset Tag\r
+    //\r
+    EFI_PROCESSOR_SUBCLASS_GUID,\r
+    ProcessorAssetTagRecordType,\r
+    4,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION_WITH_OFFSET_SPECIFIED,\r
+    0x21,\r
+    SmbiosFldString\r
+  },\r
+\r
+  {\r
+    //\r
+    // Cache SubClass -- Record Type 1: Size\r
+    //\r
+    EFI_CACHE_SUBCLASS_GUID,\r
+    CacheSizeRecordType,\r
+    7,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION_WITH_OFFSET_SPECIFIED,\r
+    0x09,\r
+    SmbiosFldBase2ToWordWithKilo\r
+  },\r
+\r
+  {\r
+    //\r
+    // Cache SubClass -- Record Type 2: Max Size\r
+    //\r
+    EFI_CACHE_SUBCLASS_GUID,\r
+    MaximumSizeCacheRecordType,\r
+    7,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION_WITH_OFFSET_SPECIFIED,\r
+    0x07,\r
+    SmbiosFldBase2ToWordWithKilo\r
+  },\r
+\r
+  {\r
+    //\r
+    // Cache SubClass -- Record Type 3: Speed\r
+    //\r
+    EFI_CACHE_SUBCLASS_GUID,\r
+    CacheSpeedRecordType,\r
+    7,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION_WITH_OFFSET_SPECIFIED,\r
+    0x0f,\r
+    SmbiosFldBase10ToByteWithNano\r
+  },\r
+\r
+  {\r
+    //\r
+    // Cache SubClass -- Record Type 4: Socket\r
+    //\r
+    EFI_CACHE_SUBCLASS_GUID,\r
+    CacheSocketRecordType,\r
+    7,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION_WITH_OFFSET_SPECIFIED,\r
+    0x04,\r
+    SmbiosFldString\r
+  },\r
+\r
+  {\r
+    //\r
+    // Cache SubClass -- Record Type 5: Supported SRAM type\r
+    //\r
+    EFI_CACHE_SUBCLASS_GUID,\r
+    CacheSramTypeRecordType,\r
+    7,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION_WITH_OFFSET_SPECIFIED,\r
+    0x0b,\r
+    SmbiosFldCacheType5  // Asynchronous and Synchronous are reversed\r
+  },\r
+\r
+  {\r
+    //\r
+    // Cache SubClass -- Record Type 6: Installed SRAM type\r
+    //\r
+    EFI_CACHE_SUBCLASS_GUID,\r
+    CacheInstalledSramTypeRecordType,\r
+    7,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION_WITH_OFFSET_SPECIFIED,\r
+    0x0d,\r
+    SmbiosFldCacheType5\r
+  },\r
+\r
+  {\r
+    //\r
+    // Cache SubClass -- Record Type 7: error correction type\r
+    //\r
+    EFI_CACHE_SUBCLASS_GUID,\r
+    CacheErrorTypeRecordType,\r
+    7,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION_WITH_OFFSET_SPECIFIED,\r
+    0x10,\r
+    SmbiosFldTruncateToByte\r
+  },\r
+\r
+  {\r
+    //\r
+    // Cache SubClass -- Record Type 8: cache type\r
+    //\r
+    EFI_CACHE_SUBCLASS_GUID,\r
+    CacheTypeRecordType,\r
+    7,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION_WITH_OFFSET_SPECIFIED,\r
+    0x11,\r
+    SmbiosFldTruncateToByte\r
+  },\r
+\r
+  {\r
+    //\r
+    // Cache SubClass -- Record Type 9: Associativity\r
+    //\r
+    EFI_CACHE_SUBCLASS_GUID,\r
+    CacheAssociativityRecordType,\r
+    7,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION_WITH_OFFSET_SPECIFIED,\r
+    0x12,\r
+    SmbiosFldTruncateToByte\r
+  },\r
+\r
+  {\r
+    //\r
+    // Cache SubClass -- Record Type 10: Cache configuration\r
+    //\r
+    EFI_CACHE_SUBCLASS_GUID,\r
+    CacheConfigRecordType,\r
+    7,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION_WITH_OFFSET_SPECIFIED,\r
+    0x05,\r
+    SmbiosFldCacheType10\r
+  },\r
+\r
+  {\r
+    //\r
+    // Memory SubClass -- Record Type 2: Physical Memory Array\r
+    //\r
+    EFI_MEMORY_SUBCLASS_GUID,\r
+    EFI_MEMORY_ARRAY_LOCATION_RECORD_NUMBER,\r
+    16,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION,\r
+    0,\r
+    SmbiosFldMemoryType2\r
+  },\r
+\r
+  {\r
+    //\r
+    // Memory SubClass -- Record Type 3: Memory Device to SMBIOS type 6\r
+    //\r
+    EFI_MEMORY_SUBCLASS_GUID,\r
+    EFI_MEMORY_ARRAY_LINK_RECORD_NUMBER,\r
+    6,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION,\r
+    0,\r
+    SmbiosFldSMBIOSType6\r
+  },\r
+\r
+  {\r
+    //\r
+    // Memory SubClass -- Record Type 3: Memory Device to SMBIOS type 17\r
+    //\r
+    EFI_MEMORY_SUBCLASS_GUID,\r
+    EFI_MEMORY_ARRAY_LINK_RECORD_NUMBER,\r
+    17,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION,\r
+    0,\r
+    SmbiosFldMemoryType3\r
+  },\r
+\r
+  {\r
+    //\r
+    // Memory SubClass -- Record Type 4: Memory Array Mapped Address\r
+    //\r
+    EFI_MEMORY_SUBCLASS_GUID,\r
+    EFI_MEMORY_ARRAY_START_ADDRESS_RECORD_NUMBER,\r
+    19,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION,\r
+    0,\r
+    SmbiosFldMemoryType4\r
+  },\r
+\r
+  {\r
+    //\r
+    // Memory SubClass -- Record Type 5: Memory Device Mapped Address\r
+    //\r
+    EFI_MEMORY_SUBCLASS_GUID,\r
+    EFI_MEMORY_DEVICE_START_ADDRESS_RECORD_NUMBER,\r
+    20,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION,\r
+    0,\r
+    SmbiosFldMemoryType5\r
+  },\r
+\r
+  {\r
+    //\r
+    // Memory SubClass -- Record Type 6: Memory Channel Type\r
+    //\r
+    EFI_MEMORY_SUBCLASS_GUID,\r
+    EFI_MEMORY_CHANNEL_TYPE_RECORD_NUMBER,\r
+    37,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION,\r
+    0,\r
+    SmbiosFldMemoryType6\r
+  },\r
+\r
+  {\r
+    //\r
+    // Memory SubClass -- Record Type 7: Memory Channel Device\r
+    //\r
+    EFI_MEMORY_SUBCLASS_GUID,\r
+    EFI_MEMORY_CHANNEL_DEVICE_RECORD_NUMBER,\r
+    37,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION,\r
+    0,\r
+    SmbiosFldMemoryType7\r
+  },\r
+\r
+  {\r
+    //\r
+    // Memory SubClass -- Record Type 8: Memory Controller information\r
+    //\r
+    EFI_MEMORY_SUBCLASS_GUID,\r
+    EFI_MEMORY_CONTROLLER_INFORMATION_RECORD_NUMBER,\r
+    5,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION,\r
+    0,\r
+    SmbiosFldMemoryType8\r
+  },\r
+\r
+  {\r
+    //\r
+    // Memory SubClass -- Record Type 9: Memory 32 Bit Error Information\r
+    //\r
+    EFI_MEMORY_SUBCLASS_GUID,\r
+    EFI_MEMORY_32BIT_ERROR_INFORMATION_RECORD_NUMBER,\r
+    18,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION,\r
+    0,\r
+    SmbiosFldMemoryType9\r
+  },\r
+\r
+  {\r
+    //\r
+    // Memory SubClass -- Record Type 10: Memory 64 Bit Error Information\r
+    //\r
+    EFI_MEMORY_SUBCLASS_GUID,\r
+    EFI_MEMORY_64BIT_ERROR_INFORMATION_RECORD_NUMBER,\r
+    33,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION,\r
+    0,\r
+    SmbiosFldMemoryType10\r
+  },\r
+\r
+  {\r
+    //\r
+    // Misc SubClass -- Record Type 2: Bios Information (SMBIOS Type 0)\r
+    //\r
+    EFI_MISC_SUBCLASS_GUID,\r
+    EFI_MISC_BIOS_VENDOR_RECORD_NUMBER, // 0,\r
+    0,                                  // smbios Type 0\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION,\r
+    0,\r
+    SmbiosFldMiscType0\r
+  },\r
+\r
+  {\r
+    //\r
+    // Misc SubClass -- Record Type 3: System Information (SMBIOS Type 1)\r
+    //\r
+    EFI_MISC_SUBCLASS_GUID,\r
+    EFI_MISC_SYSTEM_MANUFACTURER_RECORD_NUMBER, // 1,\r
+    1,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION,\r
+    0,\r
+    SmbiosFldMiscType1\r
+  },\r
+\r
+  {\r
+    //\r
+    // Misc SubClass -- Record Type 4: Base Board Manufacturer (SMBIOS Type 2)\r
+    //\r
+    EFI_MISC_SUBCLASS_GUID,\r
+    EFI_MISC_BASE_BOARD_MANUFACTURER_RECORD_NUMBER, // 2,\r
+    2,  // SMBIOS Type 2\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION,\r
+    0,\r
+    SmbiosFldMiscType2\r
+  },\r
+\r
+  {\r
+    //\r
+    // Misc SubClass -- Record Type 5: System Enclosure or Chassis (SMBIOS Type 3)\r
+    //\r
+    EFI_MISC_SUBCLASS_GUID,\r
+    EFI_MISC_CHASSIS_MANUFACTURER_RECORD_NUMBER,  // 3,\r
+    3,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION,\r
+    0,\r
+    SmbiosFldMiscType3\r
+  },\r
+\r
+  {\r
+    //\r
+    // Misc SubClass -- Record Type 6: Port Connector (SMBIOS Type 8)\r
+    //\r
+    EFI_MISC_SUBCLASS_GUID,\r
+    EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_RECORD_NUMBER,  // 8,\r
+    8,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION,\r
+    0,\r
+    SmbiosFldMiscType8\r
+  },\r
+\r
+  {\r
+    //\r
+    // Misc SubClass -- Record Type 7: System Slots (SMBIOS Type 9)\r
+    //\r
+    EFI_MISC_SUBCLASS_GUID,\r
+    EFI_MISC_SYSTEM_SLOT_DESIGNATION_RECORD_NUMBER, // 9,\r
+    9,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION,\r
+    0,\r
+    SmbiosFldMiscType9\r
+  },\r
+\r
+  {\r
+    //\r
+    // Misc SubClass -- Record Type 8: Onboard Device (SMBIOS Type 10)\r
+    //\r
+    EFI_MISC_SUBCLASS_GUID,\r
+    EFI_MISC_ONBOARD_DEVICE_RECORD_NUMBER,  // 10,\r
+    10,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION,\r
+    0,\r
+    SmbiosFldMiscType10\r
+  },\r
+\r
+  {\r
+    //\r
+    // Misc Subclass -- Record Type 9: OEM strings (SMBIOS Type 11)\r
+    //\r
+    EFI_MISC_SUBCLASS_GUID,\r
+    EFI_MISC_OEM_STRING_RECORD_NUMBER,  // 11,\r
+    11,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION,\r
+    0,\r
+    SmbiosFldMiscType11\r
+  },\r
+\r
+  {\r
+    //\r
+    // Misc SubClass -- Record Type 0A: System Options (SMBIOS Type 12)\r
+    //\r
+    EFI_MISC_SUBCLASS_GUID,\r
+    EFI_MISC_SYSTEM_OPTION_STRING_RECORD_NUMBER,  // 12,\r
+    12,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION,\r
+    0,\r
+    SmbiosFldMiscType12\r
+  },\r
+\r
+  {\r
+    //\r
+    // Misc SubClass -- Record Type 0B: Number of Installable Languages (SMBIOS Type 13)\r
+    //\r
+    EFI_MISC_SUBCLASS_GUID,\r
+    EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES_RECORD_NUMBER, // 13,\r
+    13,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION,\r
+    0,\r
+    SmbiosFldMiscType13\r
+  },\r
+\r
+  {\r
+    //\r
+    // Misc SubClass -- Record Type 0C: Installable Languages (SMBIOS Type 13)\r
+    //\r
+    EFI_MISC_SUBCLASS_GUID,\r
+    EFI_MISC_SYSTEM_LANGUAGE_STRING_RECORD_NUMBER, // 13,\r
+    13,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION,\r
+    0,\r
+    SmbiosFldMiscType14\r
+  },\r
+\r
+  {\r
+    //\r
+    // Misc SubClass -- Record Type 20: System Event Log (SMBIOS Type 15)\r
+    //\r
+    EFI_MISC_SUBCLASS_GUID,\r
+    EFI_MISC_SYSTEM_EVENT_LOG_RECORD_NUMBER, // 15,\r
+    15,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION,\r
+    0,\r
+    SmbiosFldMiscType15\r
+  },  \r
+  \r
+  {\r
+    //\r
+    // Misc SubClass -- Record Type 0F: Pointing Device (SMBIOS Type 21)\r
+    //\r
+    EFI_MISC_SUBCLASS_GUID,\r
+    EFI_MISC_POINTING_DEVICE_TYPE_RECORD_NUMBER,  // 21,\r
+    21,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION,\r
+    0,\r
+    SmbiosFldMiscType21\r
+  },\r
+\r
+  {\r
+    //\r
+    // Misc SubClass -- Record Type 10: Portable Battery (SMBIOS Type 22)\r
+    //\r
+    EFI_MISC_SUBCLASS_GUID,\r
+    EFI_MISC_PORTABLE_BATTERY_RECORD_NUMBER, // 22,\r
+    22,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION,\r
+    0,\r
+    SmbiosFldMiscType22\r
+  },  \r
+\r
+  {\r
+    //\r
+    // Misc SubClass -- Record Type 0x11: Reset Capabilities (SMBIOS Type 23)\r
+    //\r
+    EFI_MISC_SUBCLASS_GUID,\r
+    EFI_MISC_RESET_CAPABILITIES_RECORD_NUMBER,  // 23,\r
+    23,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION,\r
+    0,\r
+    SmbiosFldMiscType23\r
+  },\r
+\r
+  {\r
+    //\r
+    // Misc SubClass -- Record Type 0x12: Hardware Security (SMBIOS Type 24)\r
+    //\r
+    EFI_MISC_SUBCLASS_GUID,\r
+    EFI_MISC_HARDWARE_SECURITY_SETTINGS_DATA_RECORD_NUMBER,  // 24,\r
+    24,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION,\r
+    0,\r
+    SmbiosFldMiscType24\r
+  },\r
+\r
+  {\r
+    //\r
+    // Misc SubClass -- Record Type 0x13: System Power Controls (SMBIOS Type 25)\r
+    //\r
+    EFI_MISC_SUBCLASS_GUID,\r
+    EFI_MISC_SCHEDULED_POWER_ON_MONTH_RECORD_NUMBER,  // 25,\r
+    25,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION,\r
+    0,\r
+    SmbiosFldMiscType25\r
+  },\r
+\r
+  {\r
+    //\r
+    // Misc SubClass -- Record Type 0x14: System Power Controls (SMBIOS Type 26)\r
+    //\r
+    EFI_MISC_SUBCLASS_GUID,\r
+    EFI_MISC_VOLTAGE_PROBE_DESCRIPTION_RECORD_NUMBER,  // 26,\r
+    26,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION,\r
+    0,\r
+    SmbiosFldMiscType26\r
+  },\r
+\r
+  {\r
+    //\r
+    // Misc SubClass -- Record Type 0x15: Cooling Device (SMBIOS Type 27)\r
+    //\r
+    EFI_MISC_SUBCLASS_GUID,\r
+    EFI_MISC_COOLING_DEVICE_TEMP_LINK_RECORD_NUMBER,  // 27,\r
+    27,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION,\r
+    0,\r
+    SmbiosFldMiscType27\r
+  },\r
+\r
+  {\r
+    //\r
+    // Misc SubClass -- Record Type 0x16: Temperature Probe (SMBIOS Type 28)\r
+    //\r
+    EFI_MISC_SUBCLASS_GUID,\r
+    EFI_MISC_TEMPERATURE_PROBE_DESCRIPTION_RECORD_NUMBER,  // 28,\r
+    28,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION,\r
+    0,\r
+    SmbiosFldMiscType28\r
+  },\r
+\r
+  {\r
+    //\r
+    // Misc SubClass -- Record Type 0x17: Electrical Current Probe (SMBIOS Type 29)\r
+    //\r
+    EFI_MISC_SUBCLASS_GUID,\r
+    EFI_MISC_ELECTRICAL_CURRENT_PROBE_DESCRIPTION_RECORD_NUMBER,  // 29,\r
+    29,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION,\r
+    0,\r
+    SmbiosFldMiscType29\r
+  },\r
+\r
+  {\r
+    //\r
+    // Misc SubClass -- Record Type 0x18: Temperature Probe (SMBIOS Type 30)\r
+    //\r
+    EFI_MISC_SUBCLASS_GUID,\r
+    EFI_MISC_REMOTE_ACCESS_MANUFACTURER_DESCRIPTION_RECORD_NUMBER,  // 30,\r
+    30,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION,\r
+    0,\r
+    SmbiosFldMiscType30\r
+  },\r
+\r
+  {\r
+    //\r
+    // Misc SubClass -- Record Type 0x1A: Boot Information (SMBIOS Type 32)\r
+    //\r
+    EFI_MISC_SUBCLASS_GUID,\r
+    EFI_MISC_BOOT_INFORMATION_STATUS_RECORD_NUMBER, // 32,\r
+    32,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION,\r
+    0,\r
+    SmbiosFldMiscType32\r
+  },\r
+\r
+  {\r
+    //\r
+    // Misc SubClass -- Record Type 0x1B: Management Device (SMBIOS Type 34)\r
+    //\r
+    EFI_MISC_SUBCLASS_GUID,\r
+    EFI_MISC_MANAGEMENT_DEVICE_DESCRIPTION_RECORD_NUMBER, // 34,\r
+    34,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION,\r
+    0,\r
+    SmbiosFldMiscType34\r
+  },\r
+\r
+  {\r
+    //\r
+    // Misc SubClass -- Record Type 0x21: Management Device Threshold (SMBIOS Type 36)\r
+    //\r
+    EFI_MISC_SUBCLASS_GUID,\r
+    EFI_MISC_MANAGEMENT_DEVICE_THRESHOLD_RECORD_NUMBER, // 36,\r
+    36,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION,\r
+    0,\r
+    SmbiosFldMiscType36\r
+  },\r
+\r
+  {\r
+    //\r
+    // Misc SubClass -- Record Type 0x1D: Boot Information (SMBIOS Type 38)\r
+    //\r
+    EFI_MISC_SUBCLASS_GUID,\r
+    EFI_MISC_IPMI_INTERFACE_TYPE_RECORD_NUMBER, // 38,\r
+    38,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION,\r
+    0,\r
+    SmbiosFldMiscType38\r
+  },\r
+\r
+  {\r
+    //\r
+    // Misc SubClass -- Record Type 0x1E: Power supply (SMBIOS Type 39)\r
+    //\r
+    EFI_MISC_SUBCLASS_GUID,\r
+    EFI_MISC_SYSTEM_POWER_SUPPLY_RECORD_NUMBER, // 39,\r
+    39,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION,\r
+    0,\r
+    SmbiosFldMiscType39\r
+  },\r
+\r
+  {\r
+    //\r
+    // Misc SubClass -- Record Type 0x80-0xFF: OEM type\r
+    //\r
+    EFI_MISC_SUBCLASS_GUID,\r
+    EFI_MISC_SMBIOS_STRUCT_ENCAP_RECORD_NUMBER, // 0x80,\r
+    0x80,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION,\r
+    0,\r
+    SmbiosFldMiscTypeOEM\r
+  },\r
+\r
+  {\r
+    //\r
+    // End-of-Table -- Record Type 127\r
+    //\r
+    EFI_MISC_SUBCLASS_GUID,\r
+    127,\r
+    127,\r
+    BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
+    BY_FUNCTION,\r
+    0,\r
+    SmbiosFldMiscType127\r
+  },\r
+  //\r
+  // Table Terminator\r
+  //\r
+  {\r
+    {0, 0, 0, {0, 0, 0, 0, 0, 0, 0, 0}},\r
+    0,\r
+    0,\r
+    (SMBIOS_STRUCTURE_LOCATING_METHOD) 0,\r
+    (SMBIOS_FIELD_FILLING_METHOD) 0,\r
+    0,\r
+    0\r
+  }\r
+};\r