1 /** @file
2 
3 Copyright (c) 2009 - 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   DataHubGen.h
15 
16 Abstract:
17 
18 **/
19 
20 #ifndef _SMBIOS_GEN_H_
21 #define _SMBIOS_GEN_H_
22 
23 #include <FrameworkDxe.h>
24 #include <IndustryStandard/SmBios.h>
25 
26 #include <Guid/HobList.h>
27 #include <Guid/SmBios.h>
28 #include <Guid/DataHubRecords.h>
29 
30 #include <Protocol/Smbios.h>
31 #include <Protocol/FrameworkHii.h>
32 #include <Protocol/HiiDatabase.h>
33 
34 #include <Library/BaseLib.h>
35 #include <Library/UefiLib.h>
36 #include <Library/HobLib.h>
37 #include <Library/UefiBootServicesTableLib.h>
38 #include <Library/HiiLib.h>
39 #include <Library/DebugLib.h>
40 #include <Library/BaseMemoryLib.h>
41 #include <Library/MemoryAllocationLib.h>
42 #include <Library/UefiHiiServicesLib.h>
43 
44 #define   PRODUCT_NAME                  L"DUET"
45 #define   PRODUCT_VERSION               L"Beta"
46 
47 #define   FIRMWARE_PRODUCT_NAME         (PRODUCT_NAME L": ")
48 #ifdef EFI32
49 #define   FIRMWARE_BIOS_VERSIONE        (PRODUCT_NAME L"(IA32.UEFI)" PRODUCT_VERSION L": ")
50 #else  // EFIX64
51 #define   FIRMWARE_BIOS_VERSIONE        (PRODUCT_NAME L"(X64.UEFI)"  PRODUCT_VERSION L": ")
52 #endif
53 
54 SMBIOS_STRUCTURE_POINTER
55 GetSmbiosTableFromType (
56   IN SMBIOS_TABLE_ENTRY_POINT  *Smbios,
57   IN UINT8                 Type,
58   IN UINTN                 Index
59   );
60 
61 CHAR8 *
62 GetSmbiosString (
63   IN SMBIOS_STRUCTURE_POINTER  SmbiosTable,
64   IN SMBIOS_TABLE_STRING       String
65   );
66 
67 /**
68   Logs SMBIOS record.
69 
70   @param  Smbios   Pointer to SMBIOS protocol instance.
71   @param  Buffer   Pointer to the data buffer.
72 
73 **/
74 VOID
75 LogSmbiosData (
76   IN   EFI_SMBIOS_PROTOCOL        *Smbios,
77   IN   UINT8                      *Buffer
78   );
79 
80 #endif
81