• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*++
2 
3 Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
4 This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution.  The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
8 
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11 
12 Module Name:
13 
14   Smbios.h
15 
16 Abstract:
17 
18 --*/
19 
20 #ifndef _SMBIOS_TABLE_H_
21 #define _SMBIOS_TABLE_H_
22 
23 #include "Tiano.h"
24 
25 //
26 // Reference SMBIOS 2.6, chapter 3.1.2.
27 // For v2.1 and later, handle values in the range 0FF00h to 0FFFFh are reserved for
28 // use by this specification.
29 //
30 #define SMBIOS_HANDLE_RESERVED_BEGIN 0xFF00
31 
32 //
33 // Reference SMBIOS 2.6, chapter 3.1.3
34 // Each text string is limited to 64 significant characters due to system MIF limitations
35 //
36 #define SMBIOS_STRING_MAX_LENGTH     64
37 
38 //
39 // Inactive type is added from SMBIOS 2.2. Reference SMBIOS 2.6, chapter 3.3.43.
40 // Upper-level software that interprets the SMBIOS structure-table should bypass an
41 // Inactive structure just like a structure type that the software does not recognize.
42 //
43 #define SMBIOS_TYPE_INACTIVE         0x007E
44 
45 //
46 // End-of-table type is added from SMBIOS 2.2. Reference SMBIOS 2.6, chapter 3.3.44.
47 // The end-of-table indicator is used in the last physical structure in a table
48 //
49 #define SMBIOS_TYPE_END_OF_TABLE     0x007F
50 
51 #pragma pack(1)
52 
53 typedef UINT8 SMBIOS_TABLE_STRING;
54 
55 typedef struct {
56   UINT8                 AnchorString[4];
57   UINT8                 EntryPointStructureChecksum;
58   UINT8                 EntryPointLength;
59   UINT8                 MajorVersion;
60   UINT8                 MinorVersion;
61   UINT16                MaxStructureSize;
62   UINT8                 EntryPointRevision;
63   UINT8                 FormattedArea[5];
64   UINT8                 IntermediateAnchorString[5];
65   UINT8                 IntermediateChecksum;
66   UINT16                TableLength;
67   UINT32                TableAddress;
68   UINT16                NumberOfSmbiosStructures;
69   UINT8                 SmbiosBcdRevision;
70 } SMBIOS_TABLE_STRUCTURE;
71 
72 typedef struct {
73   UINT8                 Type;
74   UINT8                 Length;
75   UINT16                Handle;
76 } SMBIOS_TABLE_HEADER;
77 
78 typedef struct {
79   SMBIOS_TABLE_HEADER   Hdr;
80   SMBIOS_TABLE_STRING   Vendor;
81   SMBIOS_TABLE_STRING   BiosVersion;
82   UINT16                BiosSegment;
83   SMBIOS_TABLE_STRING   BiosReleaseDate;
84   UINT8                 BiosSize;
85   UINT64                BiosCharacteristics;
86   UINT8                 BIOSCharacteristicsExtensionBytes[2];
87   UINT8                 SystemBiosMajorRelease;
88   UINT8                 SystemBiosMinorRelease;
89   UINT8                 EmbeddedControllerFirmwareMajorRelease;
90   UINT8                 EmbeddedControllerFirmwareMinorRelease;
91 } SMBIOS_TABLE_TYPE0;
92 
93 typedef struct {
94   SMBIOS_TABLE_HEADER   Hdr;
95   SMBIOS_TABLE_STRING   Manufacturer;
96   SMBIOS_TABLE_STRING   ProductName;
97   SMBIOS_TABLE_STRING   Version;
98   SMBIOS_TABLE_STRING   SerialNumber;
99   EFI_GUID              Uuid;
100   UINT8                 WakeUpType;
101   SMBIOS_TABLE_STRING   SKUNumber;
102   SMBIOS_TABLE_STRING   Family;
103 } SMBIOS_TABLE_TYPE1;
104 
105 typedef struct {
106   SMBIOS_TABLE_HEADER   Hdr;
107   SMBIOS_TABLE_STRING   Manufacturer;
108   SMBIOS_TABLE_STRING   ProductName;
109   SMBIOS_TABLE_STRING   Version;
110   SMBIOS_TABLE_STRING   SerialNumber;
111   SMBIOS_TABLE_STRING   AssetTag;
112   UINT8                 FeatureFlag;
113   SMBIOS_TABLE_STRING   LocationInChassis;
114   UINT16                ChassisHandle;
115   UINT8                 BoardType;
116   UINT8                 NumberOfContainedObjectHandles;
117   UINT16                ContainedObjectHandles[1];
118 } SMBIOS_TABLE_TYPE2;
119 
120 typedef struct {
121   UINT8                 ContainedElementType;
122   UINT8                 ContainedElementMinimum;
123   UINT8                 ContainedElementMaximum;
124 } CONTAINED_ELEMENT;
125 
126 typedef struct {
127   SMBIOS_TABLE_HEADER   Hdr;
128   SMBIOS_TABLE_STRING   Manufacturer;
129   UINT8                 Type;
130   SMBIOS_TABLE_STRING   Version;
131   SMBIOS_TABLE_STRING   SerialNumber;
132   SMBIOS_TABLE_STRING   AssetTag;
133   UINT8                 BootupState;
134   UINT8                 PowerSupplyState;
135   UINT8                 ThermalState;
136   UINT8                 SecurityStatus;
137   UINT8                 OemDefined[4];
138   UINT8                 Height;
139   UINT8                 NumberofPowerCords;
140   UINT8                 ContainedElementCount;
141   UINT8                 ContainedElementRecordLength;
142   CONTAINED_ELEMENT     ContainedElements[1];
143 } SMBIOS_TABLE_TYPE3;
144 
145 typedef struct {
146   SMBIOS_TABLE_HEADER   Hdr;
147   UINT8                 Socket;
148   UINT8                 ProcessorType;
149   UINT8                 ProcessorFamily;
150   SMBIOS_TABLE_STRING   ProcessorManufacture;
151   UINT8                 ProcessorId[8];
152   SMBIOS_TABLE_STRING   ProcessorVersion;
153   UINT8                 Voltage;
154   UINT16                ExternalClock;
155   UINT16                MaxSpeed;
156   UINT16                CurrentSpeed;
157   UINT8                 Status;
158   UINT8                 ProcessorUpgrade;
159   UINT16                L1CacheHandle;
160   UINT16                L2CacheHandle;
161   UINT16                L3CacheHandle;
162   SMBIOS_TABLE_STRING   SerialNumber;
163   SMBIOS_TABLE_STRING   AssetTag;
164   SMBIOS_TABLE_STRING   PartNumber;
165   //
166   // Add for smbios 2.5
167   //
168   UINT8                 CoreCount;
169   UINT8                 EnabledCoreCount;
170   UINT8                 ThreadCount;
171   UINT16                ProcessorCharacteristics;
172   //
173   // Add for smbios 2.6
174   //
175   UINT16                ProcessorFamily2;
176 } SMBIOS_TABLE_TYPE4;
177 
178 typedef struct {
179   SMBIOS_TABLE_HEADER   Hdr;
180   UINT8                 ErrDetectMethod;
181   UINT8                 ErrCorrectCapability;
182   UINT8                 SupportInterleave;
183   UINT8                 CurrentInterleave;
184   UINT8                 MaxMemoryModuleSize;
185   UINT16                SupportSpeed;
186   UINT16                SupportMemoryType;
187   UINT8                 MemoryModuleVoltage;
188   UINT8                 AssociatedMemorySlotNum;
189   UINT16                MemoryModuleConfigHandles[1];
190 //  UINT8                 EnableErrCorrectCapabilities;
191 } SMBIOS_TABLE_TYPE5;
192 
193 typedef struct {
194   SMBIOS_TABLE_HEADER   Hdr;
195   SMBIOS_TABLE_STRING   SocketDesignation;
196   UINT8                 BankConnections;
197   UINT8                 CurrentSpeed;
198   UINT16                CurrentMemoryType;
199   UINT8                 InstalledSize;
200   UINT8                 EnabledSize;
201   UINT8                 ErrorStatus;
202 } SMBIOS_TABLE_TYPE6;
203 
204 typedef struct {
205   SMBIOS_TABLE_HEADER   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 typedef struct {
219   SMBIOS_TABLE_HEADER   Hdr;
220   SMBIOS_TABLE_STRING   InternalReferenceDesignator;
221   UINT8                 InternalConnectorType;
222   SMBIOS_TABLE_STRING   ExternalReferenceDesignator;
223   UINT8                 ExternalConnectorType;
224   UINT8                 PortType;
225 } SMBIOS_TABLE_TYPE8;
226 
227 typedef struct {
228   SMBIOS_TABLE_HEADER   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 typedef struct {
251   SMBIOS_TABLE_HEADER   Hdr;
252   DEVICE_STRUCT         Device[1];
253 } SMBIOS_TABLE_TYPE10;
254 
255 typedef struct {
256   SMBIOS_TABLE_HEADER   Hdr;
257   UINT8                 StringCount;
258 } SMBIOS_TABLE_TYPE11;
259 
260 typedef struct {
261   SMBIOS_TABLE_HEADER   Hdr;
262   UINT8                 StringCount;
263 } SMBIOS_TABLE_TYPE12;
264 
265 typedef struct {
266   SMBIOS_TABLE_HEADER   Hdr;
267   UINT8                 InstallableLanguages;
268   UINT8                 Flags;
269   UINT8                 reserved[15];
270   SMBIOS_TABLE_STRING   CurrentLanguages;
271 } SMBIOS_TABLE_TYPE13;
272 
273 typedef struct {
274   UINT8                 ItemType;
275   UINT16                ItemHandle;
276 } GROUP_STRUCT;
277 
278 typedef struct {
279   SMBIOS_TABLE_HEADER   Hdr;
280   SMBIOS_TABLE_STRING   GroupName;
281   GROUP_STRUCT          Group[1];
282 } SMBIOS_TABLE_TYPE14;
283 
284 typedef struct {
285   UINT8                 LogType;
286   UINT8                 DataFormatType;
287 } EVENT_LOG_TYPE;
288 
289 typedef struct {
290   SMBIOS_TABLE_HEADER   Hdr;
291   UINT16                LogAreaLength;
292   UINT16                LogHeaderStartOffset;
293   UINT16                LogDataStartOffset;
294   UINT8                 AccessMethod;
295   UINT8                 LogStatus;
296   UINT32                LogChangeToken;
297   UINT32                AccessMethodAddress;
298   UINT8                 LogHeaderFormat;
299   UINT8                 NumberOfSupportedLogTypeDescriptors;
300   UINT8                 LengthOfLogTypeDescriptor;
301   EVENT_LOG_TYPE        EventLogTypeDescriptors[1];
302 } SMBIOS_TABLE_TYPE15;
303 
304 typedef struct {
305   SMBIOS_TABLE_HEADER   Hdr;
306   UINT8                 Location;
307   UINT8                 Use;
308   UINT8                 MemoryErrorCorrection;
309   UINT32                MaximumCapacity;
310   UINT16                MemoryErrorInformationHandle;
311   UINT16                NumberOfMemoryDevices;
312 } SMBIOS_TABLE_TYPE16;
313 
314 typedef struct {
315   SMBIOS_TABLE_HEADER   Hdr;
316   UINT16                MemoryArrayHandle;
317   UINT16                MemoryErrorInformationHandle;
318   UINT16                TotalWidth;
319   UINT16                DataWidth;
320   UINT16                Size;
321   UINT8                 FormFactor;
322   UINT8                 DeviceSet;
323   SMBIOS_TABLE_STRING   DeviceLocator;
324   SMBIOS_TABLE_STRING   BankLocator;
325   UINT8                 MemoryType;
326   UINT16                TypeDetail;
327   UINT16                Speed;
328   SMBIOS_TABLE_STRING   Manufacturer;
329   SMBIOS_TABLE_STRING   SerialNumber;
330   SMBIOS_TABLE_STRING   AssetTag;
331   SMBIOS_TABLE_STRING   PartNumber;
332   //
333   // Add for smbios 2.6
334   //
335   UINT8                 Attributes;
336 } SMBIOS_TABLE_TYPE17;
337 
338 typedef struct {
339   SMBIOS_TABLE_HEADER   Hdr;
340   UINT8                 ErrorType;
341   UINT8                 ErrorGranularity;
342   UINT8                 ErrorOperation;
343   UINT32                VendorSyndrome;
344   UINT32                MemoryArrayErrorAddress;
345   UINT32                DeviceErrorAddress;
346   UINT32                ErrorResolution;
347 } SMBIOS_TABLE_TYPE18;
348 
349 typedef struct {
350   SMBIOS_TABLE_HEADER   Hdr;
351   UINT32                StartingAddress;
352   UINT32                EndingAddress;
353   UINT16                MemoryArrayHandle;
354   UINT8                 PartitionWidth;
355 } SMBIOS_TABLE_TYPE19;
356 
357 typedef struct {
358   SMBIOS_TABLE_HEADER   Hdr;
359   UINT32                StartingAddress;
360   UINT32                EndingAddress;
361   UINT16                MemoryDeviceHandle;
362   UINT16                MemoryArrayMappedAddressHandle;
363   UINT8                 PartitionRowPosition;
364   UINT8                 InterleavePosition;
365   UINT8                 InterleavedDataDepth;
366 } SMBIOS_TABLE_TYPE20;
367 
368 typedef struct {
369   SMBIOS_TABLE_HEADER   Hdr;
370   UINT8                 Type;
371   UINT8                 Interface;
372   UINT8                 NumberOfButtons;
373 } SMBIOS_TABLE_TYPE21;
374 
375 typedef struct {
376   SMBIOS_TABLE_HEADER   Hdr;
377   SMBIOS_TABLE_STRING   Location;
378   SMBIOS_TABLE_STRING   Manufacturer;
379   SMBIOS_TABLE_STRING   ManufactureDate;
380   SMBIOS_TABLE_STRING   SerialNumber;
381   SMBIOS_TABLE_STRING   DeviceName;
382   UINT8                 DeviceChemistry;
383   UINT16                DeviceCapacity;
384   UINT16                DesignVoltage;
385   SMBIOS_TABLE_STRING   SBDSVersionNumber;
386   UINT8                 MaximumErrorInBatteryData;
387   UINT16                SBDSSerialNumber;
388   UINT16                SBDSManufactureDate;
389   SMBIOS_TABLE_STRING   SBDSDeviceChemistry;
390   UINT8                 DesignCapacityMultiplier;
391   UINT32                OEMSpecific;
392 } SMBIOS_TABLE_TYPE22;
393 
394 typedef struct {
395   SMBIOS_TABLE_HEADER   Hdr;
396   UINT8                 Capabilities;
397   UINT16                ResetCount;
398   UINT16                ResetLimit;
399   UINT16                TimerInterval;
400   UINT16                Timeout;
401 } SMBIOS_TABLE_TYPE23;
402 
403 typedef struct {
404   SMBIOS_TABLE_HEADER   Hdr;
405   UINT8                 HardwareSecuritySettings;
406 } SMBIOS_TABLE_TYPE24;
407 
408 typedef struct {
409   SMBIOS_TABLE_HEADER   Hdr;
410   UINT8                 NextScheduledPowerOnMonth;
411   UINT8                 NextScheduledPowerOnDayOfMonth;
412   UINT8                 NextScheduledPowerOnHour;
413   UINT8                 NextScheduledPowerOnMinute;
414   UINT8                 NextScheduledPowerOnSecond;
415 } SMBIOS_TABLE_TYPE25;
416 
417 typedef struct {
418   SMBIOS_TABLE_HEADER   Hdr;
419   SMBIOS_TABLE_STRING   Description;
420   UINT8                 LocationAndStatus;
421   UINT16                MaximumValue;
422   UINT16                MinimumValue;
423   UINT16                Resolution;
424   UINT16                Tolerance;
425   UINT16                Accuracy;
426   UINT32                OEMDefined;
427   UINT16                NominalValue;
428 } SMBIOS_TABLE_TYPE26;
429 
430 typedef struct {
431   SMBIOS_TABLE_HEADER   Hdr;
432   UINT16                TemperatureProbeHandle;
433   UINT8                 DeviceTypeAndStatus;
434   UINT8                 CoolingUnitGroup;
435   UINT32                OEMDefined;
436   UINT16                NominalSpeed;
437 } SMBIOS_TABLE_TYPE27;
438 
439 typedef struct {
440   SMBIOS_TABLE_HEADER   Hdr;
441   SMBIOS_TABLE_STRING   Description;
442   UINT8                 LocationAndStatus;
443   UINT16                MaximumValue;
444   UINT16                MinimumValue;
445   UINT16                Resolution;
446   UINT16                Tolerance;
447   UINT16                Accuracy;
448   UINT32                OEMDefined;
449   UINT16                NominalValue;
450 } SMBIOS_TABLE_TYPE28;
451 
452 typedef struct {
453   SMBIOS_TABLE_HEADER   Hdr;
454   SMBIOS_TABLE_STRING   Description;
455   UINT8                 LocationAndStatus;
456   UINT16                MaximumValue;
457   UINT16                MinimumValue;
458   UINT16                Resolution;
459   UINT16                Tolerance;
460   UINT16                Accuracy;
461   UINT32                OEMDefined;
462   UINT16                NominalValue;
463 } SMBIOS_TABLE_TYPE29;
464 
465 typedef struct {
466   SMBIOS_TABLE_HEADER   Hdr;
467   SMBIOS_TABLE_STRING   ManufacturerName;
468   UINT8                 Connections;
469 } SMBIOS_TABLE_TYPE30;
470 
471 typedef struct {
472   SMBIOS_TABLE_HEADER   Hdr;
473   UINT8                 Checksum;
474   UINT8                 Reserved1;
475   UINT16                Reserved2;
476   UINT32                BisEntry16;
477   UINT32                BisEntry32;
478   UINT64                Reserved3;
479   UINT32                Reserved4;
480 } SMBIOS_TABLE_TYPE31;
481 
482 typedef struct {
483   SMBIOS_TABLE_HEADER   Hdr;
484   UINT8                 Reserved[6];
485   UINT8                 BootStatus[1];
486 } SMBIOS_TABLE_TYPE32;
487 
488 typedef struct {
489   SMBIOS_TABLE_HEADER   Hdr;
490   UINT8                 ErrorType;
491   UINT8                 ErrorGranularity;
492   UINT8                 ErrorOperation;
493   UINT32                VendorSyndrome;
494   UINT64                MemoryArrayErrorAddress;
495   UINT64                DeviceErrorAddress;
496   UINT32                ErrorResolution;
497 } SMBIOS_TABLE_TYPE33;
498 
499 typedef struct {
500   SMBIOS_TABLE_HEADER   Hdr;
501   SMBIOS_TABLE_STRING   Description;
502   UINT8                 Type;
503   UINT32                Address;
504   UINT8                 AddressType;
505 } SMBIOS_TABLE_TYPE34;
506 
507 typedef struct {
508   SMBIOS_TABLE_HEADER   Hdr;
509   SMBIOS_TABLE_STRING   Description;
510   UINT16                ManagementDeviceHandle;
511   UINT16                ComponentHandle;
512   UINT16                ThresholdHandle;
513 } SMBIOS_TABLE_TYPE35;
514 
515 typedef struct {
516   SMBIOS_TABLE_HEADER   Hdr;
517   UINT16                LowerThresholdNonCritical;
518   UINT16                UpperThresholdNonCritical;
519   UINT16                LowerThresholdCritical;
520   UINT16                UpperThresholdCritical;
521   UINT16                LowerThresholdNonRecoverable;
522   UINT16                UpperThresholdNonRecoverable;
523 } SMBIOS_TABLE_TYPE36;
524 
525 typedef struct {
526   UINT8                 DeviceLoad;
527   UINT16                DeviceHandle;
528 } MEMORY_DEVICE;
529 
530 typedef struct {
531   SMBIOS_TABLE_HEADER   Hdr;
532   UINT8                 ChannelType;
533   UINT8                 MaximumChannelLoad;
534   UINT8                 MemoryDeviceCount;
535   MEMORY_DEVICE         MemoryDevice[1];
536 } SMBIOS_TABLE_TYPE37;
537 
538 typedef struct {
539   SMBIOS_TABLE_HEADER   Hdr;
540   UINT8                 InterfaceType;
541   UINT8                 IPMISpecificationRevision;
542   UINT8                 I2CSlaveAddress;
543   UINT8                 NVStorageDeviceAddress;
544   UINT64                BaseAddress;
545   UINT8                 BaseAddressModifier_InterruptInfo;
546   UINT8                 InterruptNumber;
547 } SMBIOS_TABLE_TYPE38;
548 
549 typedef struct {
550   SMBIOS_TABLE_HEADER   Hdr;
551   UINT8                 PowerUnitGroup;
552   SMBIOS_TABLE_STRING   Location;
553   SMBIOS_TABLE_STRING   DeviceName;
554   SMBIOS_TABLE_STRING   Manufacturer;
555   SMBIOS_TABLE_STRING   SerialNumber;
556   SMBIOS_TABLE_STRING   AssetTagNumber;
557   SMBIOS_TABLE_STRING   ModelPartNumber;
558   SMBIOS_TABLE_STRING   RevisionLevel;
559   UINT16                MaxPowerCapacity;
560   UINT16                PowerSupplyCharacteristics;
561   UINT16                InputVoltageProbeHandle;
562   UINT16                CoolingDeviceHandle;
563   UINT16                InputCurrentProbeHandle;
564 } SMBIOS_TABLE_TYPE39;
565 
566 //
567 // Add type 40 and type 41 for smbios 2.6
568 //
569 typedef struct {
570   UINT8                   EntryLength;
571   UINT16                  ReferencedHandle;
572   UINT8                   ReferencedOffset;
573   SMBIOS_TABLE_STRING     EntryString;
574   UINT8                   Value[1];
575 }ADDITIONAL_INFORMATION_ENTRY;
576 
577 typedef struct {
578   SMBIOS_TABLE_HEADER                   Hdr;
579   UINT8                                 NumberOfAdditionalInformationEntries;
580   ADDITIONAL_INFORMATION_ENTRY          AdditionalInfoEntries[1];
581 } SMBIOS_TABLE_TYPE40;
582 
583 typedef struct {
584   SMBIOS_TABLE_HEADER     Hdr;
585   SMBIOS_TABLE_STRING     ReferenceDesignation;
586   UINT8                   DeviceType;
587   UINT8                   DeviceTypeInstance;
588   UINT16                  SegmentGroupNum;
589   UINT8                   BusNum;
590   UINT8                   DevFuncNum;
591 } SMBIOS_TABLE_TYPE41;
592 
593 typedef struct {
594   SMBIOS_TABLE_HEADER   Hdr;
595 } SMBIOS_TABLE_TYPE126;
596 
597 typedef struct {
598   SMBIOS_TABLE_HEADER   Hdr;
599 } SMBIOS_TABLE_TYPE127;
600 
601 typedef union {
602   SMBIOS_TABLE_HEADER   *Hdr;
603   SMBIOS_TABLE_TYPE0    *Type0;
604   SMBIOS_TABLE_TYPE1    *Type1;
605   SMBIOS_TABLE_TYPE2    *Type2;
606   SMBIOS_TABLE_TYPE3    *Type3;
607   SMBIOS_TABLE_TYPE4    *Type4;
608   SMBIOS_TABLE_TYPE5    *Type5;
609   SMBIOS_TABLE_TYPE6    *Type6;
610   SMBIOS_TABLE_TYPE7    *Type7;
611   SMBIOS_TABLE_TYPE8    *Type8;
612   SMBIOS_TABLE_TYPE9    *Type9;
613   SMBIOS_TABLE_TYPE10   *Type10;
614   SMBIOS_TABLE_TYPE11   *Type11;
615   SMBIOS_TABLE_TYPE12   *Type12;
616   SMBIOS_TABLE_TYPE13   *Type13;
617   SMBIOS_TABLE_TYPE14   *Type14;
618   SMBIOS_TABLE_TYPE15   *Type15;
619   SMBIOS_TABLE_TYPE16   *Type16;
620   SMBIOS_TABLE_TYPE17   *Type17;
621   SMBIOS_TABLE_TYPE18   *Type18;
622   SMBIOS_TABLE_TYPE19   *Type19;
623   SMBIOS_TABLE_TYPE20   *Type20;
624   SMBIOS_TABLE_TYPE21   *Type21;
625   SMBIOS_TABLE_TYPE22   *Type22;
626   SMBIOS_TABLE_TYPE23   *Type23;
627   SMBIOS_TABLE_TYPE24   *Type24;
628   SMBIOS_TABLE_TYPE25   *Type25;
629   SMBIOS_TABLE_TYPE26   *Type26;
630   SMBIOS_TABLE_TYPE27   *Type27;
631   SMBIOS_TABLE_TYPE28   *Type28;
632   SMBIOS_TABLE_TYPE29   *Type29;
633   SMBIOS_TABLE_TYPE30   *Type30;
634   SMBIOS_TABLE_TYPE31   *Type31;
635   SMBIOS_TABLE_TYPE32   *Type32;
636   SMBIOS_TABLE_TYPE33   *Type33;
637   SMBIOS_TABLE_TYPE34   *Type34;
638   SMBIOS_TABLE_TYPE35   *Type35;
639   SMBIOS_TABLE_TYPE36   *Type36;
640   SMBIOS_TABLE_TYPE37   *Type37;
641   SMBIOS_TABLE_TYPE38   *Type38;
642   SMBIOS_TABLE_TYPE39   *Type39;
643   SMBIOS_TABLE_TYPE40   *Type40;
644   SMBIOS_TABLE_TYPE41   *Type41;
645   SMBIOS_TABLE_TYPE126  *Type126;
646   SMBIOS_TABLE_TYPE127  *Type127;
647   UINT8                 *Raw;
648 } SMBIOS_STRUCTURE_POINTER;
649 
650 #pragma pack()
651 
652 #endif
653