]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Include/IndustryStandard/SmBios.h
Remove BaseMemoryTest PPI and related producers and consumers.
[mirror_edk2.git] / MdePkg / Include / IndustryStandard / SmBios.h
CommitLineData
a7ed1e2e 1/** @file\r
4135253b 2 Industry Standard Definitions of SMBIOS Table Specification v2.6\r
a7ed1e2e 3\r
4135253b 4 Copyright (c) 2006 - 2008, Intel Corporation All rights\r
a7ed1e2e 5 reserved. This program and the accompanying materials are\r
6 licensed and made available under the terms and conditions of the BSD License\r
7 which accompanies this distribution. The full text of the license may be found at \r
8 http://opensource.org/licenses/bsd-license.php \r
9\r
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
12\r
a7ed1e2e 13**/\r
14\r
15#ifndef __SMBIOS_STANDARD_H__\r
16#define __SMBIOS_STANDARD_H__\r
4135253b 17///\r
18/// Smbios Table Entry Point Structure\r
19///\r
766f4bc1 20#pragma pack(1)\r
a7ed1e2e 21typedef struct {\r
22 UINT8 AnchorString[4];\r
23 UINT8 EntryPointStructureChecksum;\r
24 UINT8 EntryPointLength;\r
25 UINT8 MajorVersion;\r
26 UINT8 MinorVersion;\r
27 UINT16 MaxStructureSize;\r
28 UINT8 EntryPointRevision;\r
29 UINT8 FormattedArea[5];\r
30 UINT8 IntermediateAnchorString[5];\r
31 UINT8 IntermediateChecksum;\r
32 UINT16 TableLength;\r
33 UINT32 TableAddress;\r
34 UINT16 NumberOfSmbiosStructures;\r
35 UINT8 SmbiosBcdRevision;\r
36} SMBIOS_TABLE_ENTRY_POINT;\r
37\r
ec8432e5 38///\r
39/// The Smbios structure header\r
40///\r
a7ed1e2e 41typedef struct {\r
42 UINT8 Type;\r
43 UINT8 Length;\r
44 UINT16 Handle;\r
45} SMBIOS_STRUCTURE;\r
46\r
bf7ea009 47///\r
48/// String Number for a Null terminated string, 00h stands for no string available.\r
49///\r
61ce5861 50typedef UINT8 SMBIOS_TABLE_STRING;\r
51\r
4135253b 52///\r
53/// BIOS Information (Type 0)\r
54///\r
61ce5861 55typedef struct {\r
56 SMBIOS_STRUCTURE Hdr;\r
57 SMBIOS_TABLE_STRING Vendor;\r
58 SMBIOS_TABLE_STRING BiosVersion;\r
59 UINT16 BiosSegment;\r
60 SMBIOS_TABLE_STRING BiosReleaseDate;\r
61 UINT8 BiosSize;\r
62 UINT64 BiosCharacteristics;\r
63 UINT8 BIOSCharacteristicsExtensionBytes[2];\r
64 UINT8 SystemBiosMajorRelease;\r
65 UINT8 SystemBiosMinorRelease;\r
66 UINT8 EmbeddedControllerFirmwareMajorRelease;\r
67 UINT8 EmbeddedControllerFirmwareMinorRelease;\r
68} SMBIOS_TABLE_TYPE0;\r
69\r
4135253b 70///\r
71/// System Information (Type 1)\r
72///\r
61ce5861 73typedef struct {\r
74 SMBIOS_STRUCTURE Hdr;\r
75 SMBIOS_TABLE_STRING Manufacturer;\r
76 SMBIOS_TABLE_STRING ProductName;\r
77 SMBIOS_TABLE_STRING Version;\r
78 SMBIOS_TABLE_STRING SerialNumber;\r
79 EFI_GUID Uuid;\r
80 UINT8 WakeUpType;\r
81 SMBIOS_TABLE_STRING SKUNumber;\r
82 SMBIOS_TABLE_STRING Family;\r
83} SMBIOS_TABLE_TYPE1;\r
84\r
4135253b 85///\r
86/// Base Board (or Module) Information (Type 2)\r
87///\r
61ce5861 88typedef struct {\r
89 SMBIOS_STRUCTURE Hdr;\r
90 SMBIOS_TABLE_STRING Manufacturer;\r
91 SMBIOS_TABLE_STRING ProductName;\r
92 SMBIOS_TABLE_STRING Version;\r
93 SMBIOS_TABLE_STRING SerialNumber;\r
94 SMBIOS_TABLE_STRING AssetTag;\r
95 UINT8 FeatureFlag;\r
96 SMBIOS_TABLE_STRING LocationInChassis;\r
97 UINT16 ChassisHandle;\r
98 UINT8 BoardType;\r
99 UINT8 NumberOfContainedObjectHandles;\r
100 UINT16 ContainedObjectHandles[1];\r
101} SMBIOS_TABLE_TYPE2;\r
102\r
bf7ea009 103///\r
104/// Contained Element record\r
105///\r
61ce5861 106typedef struct {\r
107 UINT8 ContainedElementType;\r
108 UINT8 ContainedElementMinimum;\r
109 UINT8 ContainedElementMaximum;\r
110} CONTAINED_ELEMENT;\r
111\r
4135253b 112///\r
113/// System Enclosure or Chassis (Type 3)\r
114///\r
61ce5861 115typedef struct {\r
116 SMBIOS_STRUCTURE Hdr;\r
117 SMBIOS_TABLE_STRING Manufacturer;\r
118 UINT8 Type;\r
119 SMBIOS_TABLE_STRING Version;\r
120 SMBIOS_TABLE_STRING SerialNumber;\r
121 SMBIOS_TABLE_STRING AssetTag;\r
122 UINT8 BootupState;\r
123 UINT8 PowerSupplyState;\r
124 UINT8 ThermalState;\r
125 UINT8 SecurityStatus;\r
126 UINT8 OemDefined[4];\r
127 UINT8 Height;\r
128 UINT8 NumberofPowerCords;\r
129 UINT8 ContainedElementCount;\r
130 UINT8 ContainedElementRecordLength;\r
131 CONTAINED_ELEMENT ContainedElements[1];\r
132} SMBIOS_TABLE_TYPE3;\r
133\r
4135253b 134///\r
135/// Processor Information (Type 4)\r
136///\r
61ce5861 137typedef struct { \r
138 SMBIOS_STRUCTURE Hdr;\r
139 UINT8 Socket;\r
140 UINT8 ProcessorType;\r
141 UINT8 ProcessorFamily;\r
142 SMBIOS_TABLE_STRING ProcessorManufacture;\r
143 UINT8 ProcessorId[8];\r
144 SMBIOS_TABLE_STRING ProcessorVersion;\r
145 UINT8 Voltage;\r
146 UINT16 ExternalClock;\r
147 UINT16 MaxSpeed;\r
148 UINT16 CurrentSpeed;\r
149 UINT8 Status;\r
150 UINT8 ProcessorUpgrade;\r
151 UINT16 L1CacheHandle;\r
152 UINT16 L2CacheHandle;\r
153 UINT16 L3CacheHandle;\r
154 SMBIOS_TABLE_STRING SerialNumber;\r
155 SMBIOS_TABLE_STRING AssetTag;\r
156 SMBIOS_TABLE_STRING PartNumber;\r
157 //\r
158 // Add for smbios 2.5\r
159 //\r
160 UINT8 CoreCount;\r
161 UINT8 EnabledCoreCount;\r
162 UINT8 ThreadCount;\r
163 UINT16 ProcessorCharacteristics;\r
164 //\r
165 // Add for smbios 2.6\r
166 //\r
167 UINT16 ProcessorFamily2;\r
168} SMBIOS_TABLE_TYPE4;\r
169\r
4135253b 170///\r
171/// Memory Controller Information (Type 5, Obsolete)\r
172///\r
61ce5861 173typedef struct {\r
174 SMBIOS_STRUCTURE Hdr;\r
175 UINT8 ErrDetectMethod;\r
176 UINT8 ErrCorrectCapability;\r
177 UINT8 SupportInterleave;\r
178 UINT8 CurrentInterleave;\r
179 UINT8 MaxMemoryModuleSize;\r
180 UINT16 SupportSpeed;\r
181 UINT16 SupportMemoryType;\r
182 UINT8 MemoryModuleVoltage;\r
183 UINT8 AssociatedMemorySlotNum;\r
184 UINT16 MemoryModuleConfigHandles[1];\r
61ce5861 185} SMBIOS_TABLE_TYPE5;\r
186\r
4135253b 187///\r
188/// Memory Module Information (Type 6, Obsolete)\r
189///\r
61ce5861 190typedef struct {\r
191 SMBIOS_STRUCTURE Hdr;\r
192 SMBIOS_TABLE_STRING SocketDesignation;\r
193 UINT8 BankConnections;\r
194 UINT8 CurrentSpeed;\r
195 UINT16 CurrentMemoryType;\r
196 UINT8 InstalledSize;\r
197 UINT8 EnabledSize;\r
198 UINT8 ErrorStatus;\r
199} SMBIOS_TABLE_TYPE6;\r
200\r
4135253b 201///\r
202/// Cache Information (Type 7)\r
203///\r
61ce5861 204typedef struct {\r
205 SMBIOS_STRUCTURE Hdr;\r
206 SMBIOS_TABLE_STRING SocketDesignation;\r
207 UINT16 CacheConfiguration;\r
208 UINT16 MaximumCacheSize;\r
209 UINT16 InstalledSize;\r
210 UINT16 SupportedSRAMType;\r
211 UINT16 CurrentSRAMType;\r
212 UINT8 CacheSpeed;\r
213 UINT8 ErrorCorrectionType;\r
214 UINT8 SystemCacheType;\r
215 UINT8 Associativity;\r
216} SMBIOS_TABLE_TYPE7;\r
217\r
4135253b 218///\r
219/// Port Connector Information (Type 8)\r
220///\r
61ce5861 221typedef struct {\r
222 SMBIOS_STRUCTURE Hdr;\r
223 SMBIOS_TABLE_STRING InternalReferenceDesignator;\r
224 UINT8 InternalConnectorType;\r
225 SMBIOS_TABLE_STRING ExternalReferenceDesignator;\r
226 UINT8 ExternalConnectorType;\r
227 UINT8 PortType;\r
228} SMBIOS_TABLE_TYPE8;\r
229\r
4135253b 230///\r
231/// System Slots (Type 9)\r
232///\r
61ce5861 233typedef struct {\r
234 SMBIOS_STRUCTURE Hdr;\r
235 SMBIOS_TABLE_STRING SlotDesignation;\r
236 UINT8 SlotType;\r
237 UINT8 SlotDataBusWidth;\r
238 UINT8 CurrentUsage;\r
239 UINT8 SlotLength;\r
240 UINT16 SlotID;\r
241 UINT8 SlotCharacteristics1;\r
242 UINT8 SlotCharacteristics2;\r
243 //\r
244 // Add for smbios 2.6\r
245 //\r
246 UINT16 SegmentGroupNum;\r
247 UINT8 BusNum;\r
248 UINT8 DevFuncNum;\r
249} SMBIOS_TABLE_TYPE9;\r
250\r
bf7ea009 251///\r
252/// Device Item Entry\r
253///\r
61ce5861 254typedef struct {\r
255 UINT8 DeviceType;\r
256 SMBIOS_TABLE_STRING DescriptionString;\r
257} DEVICE_STRUCT;\r
258\r
4135253b 259///\r
260/// On Board Devices Information (Type 10, obsolete)\r
261///\r
61ce5861 262typedef struct {\r
263 SMBIOS_STRUCTURE Hdr;\r
264 DEVICE_STRUCT Device[1];\r
265} SMBIOS_TABLE_TYPE10;\r
266\r
4135253b 267///\r
268/// OEM Strings (Type 11)\r
269///\r
61ce5861 270typedef struct {\r
271 SMBIOS_STRUCTURE Hdr;\r
272 UINT8 StringCount;\r
273} SMBIOS_TABLE_TYPE11;\r
274\r
4135253b 275///\r
276/// System Configuration Options (Type 12)\r
277///\r
61ce5861 278typedef struct {\r
279 SMBIOS_STRUCTURE Hdr;\r
280 UINT8 StringCount;\r
281} SMBIOS_TABLE_TYPE12;\r
282\r
4135253b 283///\r
284/// BIOS Language Information (Type 13)\r
285///\r
61ce5861 286typedef struct {\r
287 SMBIOS_STRUCTURE Hdr;\r
288 UINT8 InstallableLanguages;\r
289 UINT8 Flags;\r
290 UINT8 reserved[15];\r
291 SMBIOS_TABLE_STRING CurrentLanguages;\r
292} SMBIOS_TABLE_TYPE13;\r
293\r
bf7ea009 294///\r
295/// Group Item Entry\r
296///\r
61ce5861 297typedef struct {\r
298 UINT8 ItemType;\r
299 UINT16 ItemHandle;\r
300} GROUP_STRUCT;\r
301\r
4135253b 302///\r
303/// Group Associations (Type 14)\r
304///\r
61ce5861 305typedef struct {\r
306 SMBIOS_STRUCTURE Hdr;\r
307 SMBIOS_TABLE_STRING GroupName;\r
308 GROUP_STRUCT Group[1];\r
309} SMBIOS_TABLE_TYPE14;\r
310\r
bf7ea009 311///\r
312/// Event Log Type Descriptors\r
313///\r
61ce5861 314typedef struct {\r
315 UINT8 LogType;\r
316 UINT8 DataFormatType;\r
317} EVENT_LOG_TYPE;\r
318\r
4135253b 319///\r
320/// System Event Log (Type 15)\r
321///\r
61ce5861 322typedef struct {\r
323 SMBIOS_STRUCTURE Hdr;\r
324 UINT16 LogAreaLength;\r
325 UINT16 LogHeaderStartOffset;\r
326 UINT16 LogDataStartOffset;\r
327 UINT8 AccessMethod;\r
328 UINT8 LogStatus;\r
329 UINT32 LogChangeToken;\r
330 UINT32 AccessMethodAddress;\r
331 UINT8 LogHeaderFormat;\r
332 UINT8 NumberOfSupportedLogTypeDescriptors;\r
333 UINT8 LengthOfLogTypeDescriptor;\r
334 EVENT_LOG_TYPE EventLogTypeDescriptors[1];\r
335} SMBIOS_TABLE_TYPE15;\r
336\r
4135253b 337///\r
338/// Physical Memory Array (Type 16)\r
339///\r
61ce5861 340typedef struct {\r
341 SMBIOS_STRUCTURE Hdr;\r
342 UINT8 Location;\r
343 UINT8 Use;\r
344 UINT8 MemoryErrorCorrection;\r
345 UINT32 MaximumCapacity;\r
346 UINT16 MemoryErrorInformationHandle;\r
347 UINT16 NumberOfMemoryDevices;\r
348} SMBIOS_TABLE_TYPE16;\r
349\r
4135253b 350///\r
351/// Memory Device (Type 17)\r
352///\r
61ce5861 353typedef struct {\r
354 SMBIOS_STRUCTURE Hdr;\r
355 UINT16 MemoryArrayHandle;\r
356 UINT16 MemoryErrorInformationHandle;\r
357 UINT16 TotalWidth;\r
358 UINT16 DataWidth;\r
359 UINT16 Size;\r
360 UINT8 FormFactor;\r
361 UINT8 DeviceSet;\r
362 SMBIOS_TABLE_STRING DeviceLocator;\r
363 SMBIOS_TABLE_STRING BankLocator;\r
364 UINT8 MemoryType;\r
365 UINT16 TypeDetail;\r
366 UINT16 Speed;\r
367 SMBIOS_TABLE_STRING Manufacturer;\r
368 SMBIOS_TABLE_STRING SerialNumber;\r
369 SMBIOS_TABLE_STRING AssetTag;\r
370 SMBIOS_TABLE_STRING PartNumber;\r
371 //\r
372 // Add for smbios 2.6\r
373 // \r
374 UINT8 Attributes;\r
375} SMBIOS_TABLE_TYPE17;\r
376\r
4135253b 377///\r
378/// 32-bit Memory Error Information (Type 18)\r
379///\r
61ce5861 380typedef struct {\r
381 SMBIOS_STRUCTURE Hdr;\r
382 UINT8 ErrorType;\r
383 UINT8 ErrorGranularity;\r
384 UINT8 ErrorOperation;\r
385 UINT32 VendorSyndrome;\r
386 UINT32 MemoryArrayErrorAddress;\r
387 UINT32 DeviceErrorAddress;\r
388 UINT32 ErrorResolution;\r
389} SMBIOS_TABLE_TYPE18;\r
390\r
4135253b 391///\r
392/// Memory Array Mapped Address (Type 19)\r
393///\r
61ce5861 394typedef struct {\r
395 SMBIOS_STRUCTURE Hdr;\r
396 UINT32 StartingAddress;\r
397 UINT32 EndingAddress;\r
398 UINT16 MemoryArrayHandle;\r
399 UINT8 PartitionWidth;\r
400} SMBIOS_TABLE_TYPE19;\r
401\r
4135253b 402///\r
403/// Memory Device Mapped Address (Type 20)\r
404///\r
61ce5861 405typedef struct {\r
406 SMBIOS_STRUCTURE Hdr;\r
407 UINT32 StartingAddress;\r
408 UINT32 EndingAddress;\r
409 UINT16 MemoryDeviceHandle;\r
410 UINT16 MemoryArrayMappedAddressHandle;\r
411 UINT8 PartitionRowPosition;\r
412 UINT8 InterleavePosition;\r
413 UINT8 InterleavedDataDepth;\r
414} SMBIOS_TABLE_TYPE20;\r
415\r
4135253b 416///\r
417/// Built-in Pointing Device (Type 21)\r
418///\r
61ce5861 419typedef struct {\r
420 SMBIOS_STRUCTURE Hdr;\r
421 UINT8 Type;\r
422 UINT8 Interface;\r
423 UINT8 NumberOfButtons;\r
424} SMBIOS_TABLE_TYPE21;\r
425\r
4135253b 426///\r
427/// Portable Battery (Type 22)\r
428///\r
61ce5861 429typedef struct {\r
430 SMBIOS_STRUCTURE Hdr;\r
431 SMBIOS_TABLE_STRING Location;\r
432 SMBIOS_TABLE_STRING Manufacturer;\r
433 SMBIOS_TABLE_STRING ManufactureDate;\r
434 SMBIOS_TABLE_STRING SerialNumber;\r
435 SMBIOS_TABLE_STRING DeviceName;\r
436 UINT8 DeviceChemistry;\r
437 UINT16 DeviceCapacity;\r
438 UINT16 DesignVoltage;\r
439 SMBIOS_TABLE_STRING SBDSVersionNumber;\r
440 UINT8 MaximumErrorInBatteryData;\r
441 UINT16 SBDSSerialNumber;\r
442 UINT16 SBDSManufactureDate;\r
443 SMBIOS_TABLE_STRING SBDSDeviceChemistry;\r
444 UINT8 DesignCapacityMultiplier;\r
445 UINT32 OEMSpecific;\r
446} SMBIOS_TABLE_TYPE22;\r
447\r
4135253b 448///\r
449/// System Reset (Type 23)\r
450///\r
61ce5861 451typedef struct {\r
452 SMBIOS_STRUCTURE Hdr;\r
453 UINT8 Capabilities;\r
454 UINT16 ResetCount;\r
455 UINT16 ResetLimit;\r
456 UINT16 TimerInterval;\r
457 UINT16 Timeout;\r
458} SMBIOS_TABLE_TYPE23;\r
459\r
4135253b 460///\r
461/// Hardware Security (Type 24)\r
462///\r
61ce5861 463typedef struct {\r
464 SMBIOS_STRUCTURE Hdr;\r
465 UINT8 HardwareSecuritySettings;\r
466} SMBIOS_TABLE_TYPE24;\r
467\r
4135253b 468///\r
469/// System Power Controls (Type 25)\r
470///\r
61ce5861 471typedef struct {\r
472 SMBIOS_STRUCTURE Hdr;\r
473 UINT8 NextScheduledPowerOnMonth;\r
474 UINT8 NextScheduledPowerOnDayOfMonth;\r
475 UINT8 NextScheduledPowerOnHour;\r
476 UINT8 NextScheduledPowerOnMinute;\r
477 UINT8 NextScheduledPowerOnSecond;\r
478} SMBIOS_TABLE_TYPE25;\r
479\r
4135253b 480///\r
481/// Voltage Probe (Type 26)\r
482///\r
61ce5861 483typedef struct {\r
484 SMBIOS_STRUCTURE Hdr;\r
485 SMBIOS_TABLE_STRING Description;\r
486 UINT8 LocationAndStatus;\r
487 UINT16 MaximumValue;\r
488 UINT16 MinimumValue;\r
489 UINT16 Resolution;\r
490 UINT16 Tolerance;\r
491 UINT16 Accuracy;\r
492 UINT32 OEMDefined;\r
493 UINT16 NominalValue;\r
494} SMBIOS_TABLE_TYPE26;\r
495\r
4135253b 496///\r
497/// Cooling Device (Type 27)\r
498///\r
61ce5861 499typedef struct {\r
500 SMBIOS_STRUCTURE Hdr;\r
501 UINT16 TemperatureProbeHandle;\r
502 UINT8 DeviceTypeAndStatus;\r
503 UINT8 CoolingUnitGroup;\r
504 UINT32 OEMDefined;\r
505 UINT16 NominalSpeed;\r
506} SMBIOS_TABLE_TYPE27;\r
507\r
4135253b 508///\r
509/// Temperature Probe (Type 28)\r
510///\r
61ce5861 511typedef struct {\r
512 SMBIOS_STRUCTURE Hdr;\r
513 SMBIOS_TABLE_STRING Description;\r
514 UINT8 LocationAndStatus;\r
515 UINT16 MaximumValue;\r
516 UINT16 MinimumValue;\r
517 UINT16 Resolution;\r
518 UINT16 Tolerance;\r
519 UINT16 Accuracy;\r
520 UINT32 OEMDefined;\r
521 UINT16 NominalValue;\r
522} SMBIOS_TABLE_TYPE28;\r
523\r
4135253b 524///\r
525/// Electrical Current Probe (Type 29)\r
526///\r
61ce5861 527typedef struct {\r
528 SMBIOS_STRUCTURE Hdr;\r
529 SMBIOS_TABLE_STRING Description;\r
530 UINT8 LocationAndStatus;\r
531 UINT16 MaximumValue;\r
532 UINT16 MinimumValue;\r
533 UINT16 Resolution;\r
534 UINT16 Tolerance;\r
535 UINT16 Accuracy;\r
536 UINT32 OEMDefined;\r
537 UINT16 NominalValue;\r
538} SMBIOS_TABLE_TYPE29;\r
539\r
4135253b 540///\r
541/// Out-of-Band Remote Access (Type 30)\r
542///\r
61ce5861 543typedef struct {\r
544 SMBIOS_STRUCTURE Hdr;\r
545 SMBIOS_TABLE_STRING ManufacturerName;\r
546 UINT8 Connections;\r
547} SMBIOS_TABLE_TYPE30;\r
548\r
4135253b 549///\r
550/// Boot Integrity Services (BIS) Entry Point (Type 31)\r
551///\r
61ce5861 552typedef struct {\r
553 SMBIOS_STRUCTURE Hdr;\r
554 UINT8 Checksum;\r
555 UINT8 Reserved1;\r
556 UINT16 Reserved2;\r
557 UINT32 BisEntry16;\r
558 UINT32 BisEntry32;\r
559 UINT64 Reserved3;\r
560 UINT32 Reserved4;\r
561} SMBIOS_TABLE_TYPE31;\r
562\r
4135253b 563///\r
564/// System Boot Information (Type 32)\r
565///\r
61ce5861 566typedef struct {\r
567 SMBIOS_STRUCTURE Hdr;\r
568 UINT8 Reserved[6];\r
569 UINT8 BootStatus[1];\r
570} SMBIOS_TABLE_TYPE32;\r
571\r
4135253b 572///\r
573/// 64-bit Memory Error Information (Type 33)\r
574///\r
61ce5861 575typedef struct {\r
576 SMBIOS_STRUCTURE Hdr;\r
577 UINT8 ErrorType;\r
578 UINT8 ErrorGranularity;\r
579 UINT8 ErrorOperation;\r
580 UINT32 VendorSyndrome;\r
581 UINT64 MemoryArrayErrorAddress;\r
582 UINT64 DeviceErrorAddress;\r
583 UINT32 ErrorResolution;\r
584} SMBIOS_TABLE_TYPE33;\r
585\r
4135253b 586///\r
587/// Management Device (Type 34)\r
588///\r
61ce5861 589typedef struct {\r
590 SMBIOS_STRUCTURE Hdr;\r
591 SMBIOS_TABLE_STRING Description;\r
592 UINT8 Type;\r
593 UINT32 Address;\r
594 UINT8 AddressType;\r
595} SMBIOS_TABLE_TYPE34;\r
596\r
4135253b 597///\r
598/// Management Device Component (Type 35)\r
599///\r
61ce5861 600typedef struct {\r
601 SMBIOS_STRUCTURE Hdr;\r
602 SMBIOS_TABLE_STRING Description;\r
603 UINT16 ManagementDeviceHandle;\r
604 UINT16 ComponentHandle;\r
605 UINT16 ThresholdHandle;\r
606} SMBIOS_TABLE_TYPE35;\r
607\r
4135253b 608///\r
609/// Management Device Threshold Data (Type 36)\r
610///\r
61ce5861 611typedef struct {\r
612 SMBIOS_STRUCTURE Hdr;\r
613 UINT16 LowerThresholdNonCritical;\r
614 UINT16 UpperThresholdNonCritical;\r
615 UINT16 LowerThresholdCritical;\r
616 UINT16 UpperThresholdCritical;\r
617 UINT16 LowerThresholdNonRecoverable;\r
618 UINT16 UpperThresholdNonRecoverable;\r
619} SMBIOS_TABLE_TYPE36;\r
620\r
bf7ea009 621///\r
622/// Memory Channel Entry\r
623///\r
61ce5861 624typedef struct {\r
625 UINT8 DeviceLoad;\r
626 UINT16 DeviceHandle;\r
627} MEMORY_DEVICE;\r
628\r
4135253b 629///\r
630/// Memory Channel (Type 37)\r
631///\r
61ce5861 632typedef struct {\r
633 SMBIOS_STRUCTURE Hdr;\r
634 UINT8 ChannelType;\r
635 UINT8 MaximumChannelLoad;\r
636 UINT8 MemoryDeviceCount;\r
637 MEMORY_DEVICE MemoryDevice[1];\r
638} SMBIOS_TABLE_TYPE37;\r
639\r
4135253b 640///\r
641/// IPMI Device Information (Type 38)\r
642///\r
61ce5861 643typedef struct {\r
644 SMBIOS_STRUCTURE Hdr;\r
645 UINT8 InterfaceType;\r
646 UINT8 IPMISpecificationRevision;\r
647 UINT8 I2CSlaveAddress;\r
648 UINT8 NVStorageDeviceAddress;\r
649 UINT64 BaseAddress;\r
650 UINT8 BaseAddressModifier_InterruptInfo;\r
651 UINT8 InterruptNumber;\r
652} SMBIOS_TABLE_TYPE38;\r
653\r
4135253b 654///\r
655/// System Power Supply (Type 39)\r
656///\r
61ce5861 657typedef struct {\r
658 SMBIOS_STRUCTURE Hdr;\r
659 UINT8 PowerUnitGroup;\r
660 SMBIOS_TABLE_STRING Location;\r
661 SMBIOS_TABLE_STRING DeviceName;\r
662 SMBIOS_TABLE_STRING Manufacturer;\r
663 SMBIOS_TABLE_STRING SerialNumber;\r
664 SMBIOS_TABLE_STRING AssetTagNumber;\r
665 SMBIOS_TABLE_STRING ModelPartNumber;\r
666 SMBIOS_TABLE_STRING RevisionLevel;\r
667 UINT16 MaxPowerCapacity;\r
668 UINT16 PowerSupplyCharacteristics;\r
669 UINT16 InputVoltageProbeHandle;\r
670 UINT16 CoolingDeviceHandle;\r
671 UINT16 InputCurrentProbeHandle;\r
672} SMBIOS_TABLE_TYPE39;\r
673\r
bf7ea009 674///\r
675/// Additional Information Entry Format \r
676///\r
61ce5861 677typedef struct { \r
678 UINT8 EntryLength; \r
679 UINT16 ReferencedHandle;\r
680 UINT8 ReferencedOffset;\r
681 SMBIOS_TABLE_STRING EntryString;\r
682 UINT8 Value[1];\r
683}ADDITIONAL_INFORMATION_ENTRY;\r
684\r
4135253b 685///\r
686/// Additional Information (Type 40)\r
687///\r
61ce5861 688typedef struct {\r
689 SMBIOS_STRUCTURE Hdr;\r
690 UINT8 NumberOfAdditionalInformationEntries;\r
691 ADDITIONAL_INFORMATION_ENTRY AdditionalInfoEntries[1]; \r
692} SMBIOS_TABLE_TYPE40;\r
693\r
4135253b 694///\r
695/// Onboard Devices Extended Information (Type 41)\r
696///\r
61ce5861 697typedef struct {\r
698 SMBIOS_STRUCTURE Hdr;\r
699 SMBIOS_TABLE_STRING ReferenceDesignation;\r
700 UINT8 DeviceType;\r
701 UINT8 DeviceTypeInstance;\r
702 UINT16 SegmentGroupNum;\r
703 UINT8 BusNum;\r
704 UINT8 DevFuncNum; \r
705} SMBIOS_TABLE_TYPE41;\r
706\r
4135253b 707///\r
708/// Inactive (Type 126)\r
709///\r
61ce5861 710typedef struct {\r
711 SMBIOS_STRUCTURE Hdr;\r
712} SMBIOS_TABLE_TYPE126;\r
713\r
4135253b 714///\r
715/// End-of-Table (Type 127)\r
716///\r
61ce5861 717typedef struct {\r
718 SMBIOS_STRUCTURE Hdr;\r
719} SMBIOS_TABLE_TYPE127;\r
720\r
4135253b 721///\r
722/// Union of all the possible SMBIOS record types\r
723///\r
61ce5861 724typedef union {\r
725 SMBIOS_STRUCTURE *Hdr;\r
726 SMBIOS_TABLE_TYPE0 *Type0;\r
727 SMBIOS_TABLE_TYPE1 *Type1;\r
728 SMBIOS_TABLE_TYPE2 *Type2;\r
729 SMBIOS_TABLE_TYPE3 *Type3;\r
730 SMBIOS_TABLE_TYPE4 *Type4;\r
731 SMBIOS_TABLE_TYPE5 *Type5;\r
732 SMBIOS_TABLE_TYPE6 *Type6;\r
733 SMBIOS_TABLE_TYPE7 *Type7;\r
734 SMBIOS_TABLE_TYPE8 *Type8;\r
735 SMBIOS_TABLE_TYPE9 *Type9;\r
736 SMBIOS_TABLE_TYPE10 *Type10;\r
737 SMBIOS_TABLE_TYPE11 *Type11;\r
738 SMBIOS_TABLE_TYPE12 *Type12;\r
739 SMBIOS_TABLE_TYPE13 *Type13;\r
740 SMBIOS_TABLE_TYPE14 *Type14;\r
741 SMBIOS_TABLE_TYPE15 *Type15;\r
742 SMBIOS_TABLE_TYPE16 *Type16;\r
743 SMBIOS_TABLE_TYPE17 *Type17;\r
744 SMBIOS_TABLE_TYPE18 *Type18;\r
745 SMBIOS_TABLE_TYPE19 *Type19;\r
746 SMBIOS_TABLE_TYPE20 *Type20;\r
747 SMBIOS_TABLE_TYPE21 *Type21;\r
748 SMBIOS_TABLE_TYPE22 *Type22;\r
749 SMBIOS_TABLE_TYPE23 *Type23;\r
750 SMBIOS_TABLE_TYPE24 *Type24;\r
751 SMBIOS_TABLE_TYPE25 *Type25;\r
752 SMBIOS_TABLE_TYPE26 *Type26;\r
753 SMBIOS_TABLE_TYPE27 *Type27;\r
754 SMBIOS_TABLE_TYPE28 *Type28;\r
755 SMBIOS_TABLE_TYPE29 *Type29;\r
756 SMBIOS_TABLE_TYPE30 *Type30;\r
757 SMBIOS_TABLE_TYPE31 *Type31;\r
758 SMBIOS_TABLE_TYPE32 *Type32;\r
759 SMBIOS_TABLE_TYPE33 *Type33;\r
760 SMBIOS_TABLE_TYPE34 *Type34;\r
761 SMBIOS_TABLE_TYPE35 *Type35;\r
762 SMBIOS_TABLE_TYPE36 *Type36;\r
763 SMBIOS_TABLE_TYPE37 *Type37;\r
764 SMBIOS_TABLE_TYPE38 *Type38;\r
765 SMBIOS_TABLE_TYPE39 *Type39;\r
766 SMBIOS_TABLE_TYPE40 *Type40;\r
767 SMBIOS_TABLE_TYPE41 *Type41;\r
768 SMBIOS_TABLE_TYPE126 *Type126;\r
769 SMBIOS_TABLE_TYPE127 *Type127;\r
770 UINT8 *Raw;\r
771} SMBIOS_STRUCTURE_POINTER;\r
772\r
766f4bc1 773#pragma pack()\r
774\r
a7ed1e2e 775#endif\r