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