source: mainline/boot/arch/ia64/loader/gefi/inc/libsmbios.h@ 86018c1

lfn serial ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since 86018c1 was 7208b6c, checked in by Jakub Vana <jakub.vana@…>, 17 years ago

Basic IA64 boot and kernel suport for real machines

  • Property mode set to 100644
File size: 3.0 KB
Line 
1#ifndef _LIB_SMBIOS_H
2#define _LIB_SMBIOS_H
3/*++
4
5Copyright (c) 2000 Intel Corporation
6
7Module Name:
8
9 LibSmbios.h
10
11Abstract:
12
13 Lib include for SMBIOS services. Used to get system serial number and GUID
14
15Revision History
16
17--*/
18
19//
20// Define SMBIOS tables.
21//
22#pragma pack(1)
23typedef 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
45typedef struct {
46 UINT8 Type;
47 UINT8 Length;
48 UINT8 Handle[2];
49} SMBIOS_HEADER;
50
51typedef UINT8 SMBIOS_STRING;
52
53typedef 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
63typedef 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
78typedef 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
86typedef 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
100typedef 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
119typedef 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
Note: See TracBrowser for help on using the repository browser.