1 /*++
2 
3 Copyright (c) 2004, 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   GUIDs used to locate the SMBIOS tables in the EFI 1.0 system table.
19 
20   This GUID in the system table is the only legal way to search for and
21   locate the SMBIOS tables. Do not search the 0xF0000 segment to find SMBIOS
22   tables.
23 
24 --*/
25 
26 #ifndef _SMBIOS_GUID_H_
27 #define _SMBIOS_GUID_H_
28 
29 #define EFI_SMBIOS_TABLE_GUID \
30   { \
31     0xeb9d2d31, 0x2d88, 0x11d3, {0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} \
32   }
33 
34 extern EFI_GUID gEfiSmbiosTableGuid;
35 
36 //
37 // Smbios Table Entry Point Structure
38 //
39 #pragma pack(1)
40 typedef struct {
41   UINT8   AnchorString[4];
42   UINT8   EntryPointStructureChecksum;
43   UINT8   EntryPointLength;
44   UINT8   MajorVersion;
45   UINT8   MinorVersion;
46   UINT16  MaxStructureSize;
47   UINT8   EntryPointRevision;
48   UINT8   FormattedArea[5];
49   UINT8   IntermediateAnchorString[5];
50   UINT8   IntermediateChecksum;
51   UINT16  TableLength;
52   UINT32  TableAddress;
53   UINT16  NumberOfSmbiosStructures;
54   UINT8   SmbiosBcdRevision;
55 } SMBIOS_TABLE_ENTRY_POINT;
56 #pragma pack()
57 //
58 // The Smbios structure header
59 //
60 #pragma pack(1)
61 typedef struct {
62 
63   UINT8   Type;
64   UINT8   Length;
65   UINT16  Handle;
66 
67 } SMBIOS_STRUCTURE;
68 #pragma pack()
69 
70 #endif
71