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