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