]> git.proxmox.com Git - mirror_edk2.git/blame - EmulatorPkg/MiscSubClassPlatformDxe/MiscSubClassDriver.h
EmulatorPkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / EmulatorPkg / MiscSubClassPlatformDxe / MiscSubClassDriver.h
CommitLineData
949f388f 1/*++\r
2\r
2bfd90f9 3Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>\r
e3ba31da 4SPDX-License-Identifier: BSD-2-Clause-Patent\r
949f388f 5\r
6Module Name:\r
7\r
8 MiscSubclassDriver.h\r
9\r
10Abstract:\r
11\r
12 Header file for MiscSubclass Driver.\r
13\r
14**/\r
15\r
16#ifndef _MISC_SUBCLASS_DRIVER_H\r
17#define _MISC_SUBCLASS_DRIVER_H\r
18\r
19#include <FrameworkDxe.h>\r
20\r
21#include <Guid/DataHubRecords.h>\r
22#include <IndustryStandard/SmBios.h>\r
23#include <Protocol/Smbios.h>\r
24#include <Protocol/EmuIoThunk.h>\r
25\r
26#include <Library/BaseLib.h>\r
27#include <Library/DebugLib.h>\r
28#include <Library/HiiLib.h>\r
29#include <Library/UefiLib.h>\r
30#include <Library/UefiDriverEntryPoint.h>\r
31#include <Library/BaseMemoryLib.h>\r
32#include <Library/MemoryAllocationLib.h>\r
33#include <Library/UefiBootServicesTableLib.h>\r
34#include <Library/DevicePathLib.h>\r
35#include <Library/PcdLib.h>\r
36\r
37\r
38#include <MiscDevicePath.h>\r
39#include <Protocol/FrameworkHii.h>\r
40#include <Library/HiiLib.h>\r
41\r
42//\r
43// Data table entry update function.\r
44//\r
45typedef EFI_STATUS (EFIAPI EFI_MISC_SMBIOS_DATA_FUNCTION) (\r
46 IN VOID *RecordData,\r
47 IN EFI_SMBIOS_PROTOCOL *Smbios\r
48 );\r
49\r
50//\r
51// Data table entry definition.\r
52//\r
53typedef struct {\r
54 //\r
55 // intermediat input data for SMBIOS record\r
56 //\r
57 VOID *RecordData;\r
58 EFI_MISC_SMBIOS_DATA_FUNCTION *Function;\r
59} EFI_MISC_SMBIOS_DATA_TABLE;\r
60\r
61//\r
62// Data Table extern definitions.\r
63//\r
64#define MISC_SMBIOS_TABLE_EXTERNS(NAME1, NAME2, NAME3) \\r
65extern NAME1 NAME2 ## Data; \\r
66extern EFI_MISC_SMBIOS_DATA_FUNCTION NAME3 ## Function\r
67\r
68\r
69//\r
70// Data Table entries\r
71//\r
72#define MISC_SMBIOS_TABLE_ENTRY_DATA_AND_FUNCTION(NAME1, NAME2) \\r
73{ \\r
74 & NAME1 ## Data, \\r
75 & NAME2 ## Function \\r
76}\r
77\r
78//\r
79// Global definition macros.\r
80//\r
81#define MISC_SMBIOS_TABLE_DATA(NAME1, NAME2) \\r
82 NAME1 NAME2 ## Data\r
83\r
84#define MISC_SMBIOS_TABLE_FUNCTION(NAME2) \\r
85 EFI_STATUS EFIAPI NAME2 ## Function( \\r
86 IN VOID *RecordData, \\r
87 IN EFI_SMBIOS_PROTOCOL *Smbios \\r
88 )\r
89\r
90\r
91//\r
92// Data Table Array\r
93//\r
94extern EFI_MISC_SMBIOS_DATA_TABLE mMiscSubclassDataTable[];\r
95\r
96//\r
97// Data Table Array Entries\r
98//\r
99extern UINTN mMiscSubclassDataTableEntries;\r
100extern UINT8 MiscSubclassStrings[];\r
101extern EFI_HII_HANDLE mHiiHandle;\r
102\r
2bfd90f9
SZ
103/**\r
104 Add an SMBIOS record.\r
105\r
106 @param Smbios The EFI_SMBIOS_PROTOCOL instance.\r
107 @param SmbiosHandle A unique handle will be assigned to the SMBIOS record.\r
108 @param Record The data for the fixed portion of the SMBIOS record. The format of the record is\r
79e4f2a5
RN
109 determined by EFI_SMBIOS_TABLE_HEADER.Type. The size of the formatted area is defined\r
110 by EFI_SMBIOS_TABLE_HEADER.Length and either followed by a double-null (0x0000) or\r
2bfd90f9
SZ
111 a set of null terminated strings and a null.\r
112\r
113 @retval EFI_SUCCESS Record was added.\r
114 @retval EFI_OUT_OF_RESOURCES Record was not added due to lack of system resources.\r
115\r
116**/\r
949f388f 117EFI_STATUS\r
2bfd90f9
SZ
118AddSmbiosRecord (\r
119 IN EFI_SMBIOS_PROTOCOL *Smbios,\r
120 OUT EFI_SMBIOS_HANDLE *SmbiosHandle,\r
121 IN EFI_SMBIOS_TABLE_HEADER *Record\r
949f388f 122 );\r
123\r
949f388f 124#endif /* _MISC_SUBCLASS_DRIVER_H */\r
125\r
126/* eof - MiscSubclassDriver.h */\r