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