Rev 2726 | Details | Compare with Previous | Last modification | View Log | RSS feed
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 2726 | vana | 1 | #ifndef _LIB_SMBIOS_H |
| 2 | #define _LIB_SMBIOS_H |
||
| 3 | /*++ |
||
| 4 | |||
| 5 | Copyright (c) 2000 Intel Corporation |
||
| 6 | |||
| 7 | Module Name: |
||
| 8 | |||
| 9 | LibSmbios.h |
||
| 10 | |||
| 11 | Abstract: |
||
| 12 | |||
| 13 | Lib include for SMBIOS services. Used to get system serial number and GUID |
||
| 14 | |||
| 15 | Revision History |
||
| 16 | |||
| 17 | --*/ |
||
| 18 | |||
| 19 | // |
||
| 20 | // Define SMBIOS tables. |
||
| 21 | // |
||
| 22 | #pragma pack(1) |
||
| 23 | typedef struct { |
||
| 24 | UINT8 AnchorString[4]; |
||
| 25 | UINT8 EntryPointStructureChecksum; |
||
| 26 | UINT8 EntryPointLength; |
||
| 27 | UINT8 MajorVersion; |
||
| 28 | UINT8 MinorVersion; |
||
| 29 | UINT16 MaxStructureSize; |
||
| 30 | UINT8 EntryPointRevision; |
||
| 31 | UINT8 FormattedArea[5]; |
||
| 32 | UINT8 IntermediateAnchorString[5]; |
||
| 33 | UINT8 IntermediateChecksum; |
||
| 34 | UINT16 TableLength; |
||
| 35 | UINT32 TableAddress; |
||
| 36 | UINT16 NumberOfSmbiosStructures; |
||
| 37 | UINT8 SmbiosBcdRevision; |
||
| 38 | } SMBIOS_STRUCTURE_TABLE; |
||
| 39 | |||
| 40 | // |
||
| 41 | // Please note that SMBIOS structures can be odd byte aligned since the |
||
| 42 | // unformated section of each record is a set of arbitrary size strings. |
||
| 43 | // |
||
| 44 | |||
| 45 | typedef struct { |
||
| 46 | UINT8 Type; |
||
| 47 | UINT8 Length; |
||
| 48 | UINT8 Handle[2]; |
||
| 49 | } SMBIOS_HEADER; |
||
| 50 | |||
| 51 | typedef UINT8 SMBIOS_STRING; |
||
| 52 | |||
| 53 | typedef struct { |
||
| 54 | SMBIOS_HEADER Hdr; |
||
| 55 | SMBIOS_STRING Vendor; |
||
| 56 | SMBIOS_STRING BiosVersion; |
||
| 57 | UINT8 BiosSegment[2]; |
||
| 58 | SMBIOS_STRING BiosReleaseDate; |
||
| 59 | UINT8 BiosSize; |
||
| 60 | UINT8 BiosCharacteristics[8]; |
||
| 61 | } SMBIOS_TYPE0; |
||
| 62 | |||
| 63 | typedef struct { |
||
| 64 | SMBIOS_HEADER Hdr; |
||
| 65 | SMBIOS_STRING Manufacturer; |
||
| 66 | SMBIOS_STRING ProductName; |
||
| 67 | SMBIOS_STRING Version; |
||
| 68 | SMBIOS_STRING SerialNumber; |
||
| 69 | |||
| 70 | // |
||
| 71 | // always byte copy this data to prevent alignment faults! |
||
| 72 | // |
||
| 73 | EFI_GUID Uuid; |
||
| 74 | |||
| 75 | UINT8 WakeUpType; |
||
| 76 | } SMBIOS_TYPE1; |
||
| 77 | |||
| 78 | typedef struct { |
||
| 79 | SMBIOS_HEADER Hdr; |
||
| 80 | SMBIOS_STRING Manufacturer; |
||
| 81 | SMBIOS_STRING ProductName; |
||
| 82 | SMBIOS_STRING Version; |
||
| 83 | SMBIOS_STRING SerialNumber; |
||
| 84 | } SMBIOS_TYPE2; |
||
| 85 | |||
| 86 | typedef struct { |
||
| 87 | SMBIOS_HEADER Hdr; |
||
| 88 | SMBIOS_STRING Manufacturer; |
||
| 89 | UINT8 Type; |
||
| 90 | SMBIOS_STRING Version; |
||
| 91 | SMBIOS_STRING SerialNumber; |
||
| 92 | SMBIOS_STRING AssetTag; |
||
| 93 | UINT8 BootupState; |
||
| 94 | UINT8 PowerSupplyState; |
||
| 95 | UINT8 ThermalState; |
||
| 96 | UINT8 SecurityStatus; |
||
| 97 | UINT8 OemDefined[4]; |
||
| 98 | } SMBIOS_TYPE3; |
||
| 99 | |||
| 100 | typedef struct { |
||
| 101 | SMBIOS_HEADER Hdr; |
||
| 102 | UINT8 Socket; |
||
| 103 | UINT8 ProcessorType; |
||
| 104 | UINT8 ProcessorFamily; |
||
| 105 | SMBIOS_STRING ProcessorManufacture; |
||
| 106 | UINT8 ProcessorId[8]; |
||
| 107 | SMBIOS_STRING ProcessorVersion; |
||
| 108 | UINT8 Voltage; |
||
| 109 | UINT8 ExternalClock[2]; |
||
| 110 | UINT8 MaxSpeed[2]; |
||
| 111 | UINT8 CurrentSpeed[2]; |
||
| 112 | UINT8 Status; |
||
| 113 | UINT8 ProcessorUpgrade; |
||
| 114 | UINT8 L1CacheHandle[2]; |
||
| 115 | UINT8 L2CacheHandle[2]; |
||
| 116 | UINT8 L3CacheHandle[2]; |
||
| 117 | } SMBIOS_TYPE4; |
||
| 118 | |||
| 119 | typedef union { |
||
| 120 | SMBIOS_HEADER *Hdr; |
||
| 121 | SMBIOS_TYPE0 *Type0; |
||
| 122 | SMBIOS_TYPE1 *Type1; |
||
| 123 | SMBIOS_TYPE2 *Type2; |
||
| 124 | SMBIOS_TYPE3 *Type3; |
||
| 125 | SMBIOS_TYPE4 *Type4; |
||
| 126 | UINT8 *Raw; |
||
| 127 | } SMBIOS_STRUCTURE_POINTER; |
||
| 128 | #pragma pack() |
||
| 129 | |||
| 130 | |||
| 131 | #endif |
||
| 132 |