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