]> git.proxmox.com Git - mirror_edk2.git/blame - IntelFrameworkModulePkg/Universal/HiiDataBaseDxe/HiiDatabase.h
GenFds.exe adapt to new build database structure.
[mirror_edk2.git] / IntelFrameworkModulePkg / Universal / HiiDataBaseDxe / HiiDatabase.h
CommitLineData
3db51098 1/**@file\r
103b6520 2\r
3db51098 3 This file contains global defines and prototype definitions\r
4 for the HII database.\r
5 \r
ececc2eb 6Copyright (c) 2006, Intel Corporation\r
7All rights reserved. This program and the accompanying materials\r
8are licensed and made available under the terms and conditions of the BSD License\r
9which accompanies this distribution. The full text of the license may be found at\r
10http://opensource.org/licenses/bsd-license.php\r
11\r
12THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
13WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
103b6520 14\r
3db51098 15**/\r
103b6520 16\r
17#ifndef _HIIDATABASE_H\r
18#define _HIIDATABASE_H\r
19\r
ed7748fe 20\r
f79314fa 21#include <FrameworkDxe.h>\r
ed7748fe 22\r
ececc2eb 23#include <Guid/GlobalVariable.h>\r
8e5b17b2 24#include <Protocol/FrameworkFormCallback.h>\r
25#include <Protocol/FrameworkHii.h>\r
ed7748fe 26\r
ececc2eb 27#include <Library/BaseLib.h>\r
28#include <Library/DebugLib.h>\r
29#include <Library/UefiDriverEntryPoint.h>\r
30#include <Library/MemoryAllocationLib.h>\r
31#include <Library/BaseMemoryLib.h>\r
32#include <Library/UefiBootServicesTableLib.h>\r
33#include <Library/UefiRuntimeServicesTableLib.h>\r
8e5b17b2 34#include <Library/FrameworkIfrSupportLib.h>\r
103b6520 35\r
36//\r
37// HII Database Global data\r
38//\r
39#define EFI_HII_DATA_SIGNATURE EFI_SIGNATURE_32 ('H', 'i', 'i', 'P')\r
40\r
41#define MAX_GLYPH_COUNT 65535\r
42#define NARROW_GLYPH_ARRAY_SIZE 19\r
43#define WIDE_GLYPH_ARRAY_SIZE 38\r
44\r
45#define SETUP_MAP_NAME L"Setup"\r
46#define HII_VARIABLE_SUFFIX_USER_DATA L"UserSavedData"\r
47#define HII_VARIABLE_SUFFIX_DEFAULT_OVERRIDE L"DefaultOverride"\r
48#define HII_VARIABLE_SUFFIX_MANUFACTURING_OVERRIDE L"ManufacturingOverride"\r
49\r
50typedef struct _EFI_HII_HANDLE_DATABASE {\r
51 VOID *Buffer; // Actual buffer pointer\r
f79314fa 52 FRAMEWORK_EFI_HII_HANDLE Handle; // Monotonically increasing value to signify the value returned to caller\r
103b6520 53 UINT32 NumberOfTokens; // The initial number of tokens when first registered\r
54 struct _EFI_HII_HANDLE_DATABASE *NextHandleDatabase;\r
55} EFI_HII_HANDLE_DATABASE;\r
56\r
57typedef struct {\r
58 EFI_NARROW_GLYPH NarrowGlyphs[MAX_GLYPH_COUNT];\r
59 EFI_WIDE_GLYPH WideGlyphs[MAX_GLYPH_COUNT];\r
f79314fa 60 FRAMEWORK_EFI_KEY_DESCRIPTOR SystemKeyboardLayout[106];\r
61 FRAMEWORK_EFI_KEY_DESCRIPTOR OverrideKeyboardLayout[106];\r
103b6520 62 BOOLEAN SystemKeyboardUpdate; // Has the SystemKeyboard been updated?\r
63} EFI_HII_GLOBAL_DATA;\r
64\r
65typedef struct {\r
66 UINTN Signature;\r
67\r
68 EFI_HII_GLOBAL_DATA *GlobalData;\r
69 EFI_HII_HANDLE_DATABASE *DatabaseHead; // Head of the Null-terminated singly-linked list of handles.\r
70 EFI_HII_PROTOCOL Hii;\r
71} EFI_HII_DATA;\r
72\r
73typedef struct {\r
f79314fa 74 FRAMEWORK_EFI_HII_HANDLE Handle;\r
103b6520 75 EFI_GUID Guid;\r
76 EFI_HII_HANDLE_PACK HandlePack;\r
77 UINTN IfrSize;\r
78 UINTN StringSize;\r
79 EFI_HII_IFR_PACK *IfrData; // All the IFR data stored here\r
80 EFI_HII_STRING_PACK *StringData; // All the String data stored at &IfrData + IfrSize (StringData is just a label - never referenced)\r
81} EFI_HII_PACKAGE_INSTANCE;\r
82\r
83typedef struct {\r
84 EFI_HII_PACK_HEADER Header;\r
f79314fa 85 FRAMEWORK_EFI_IFR_FORM_SET FormSet;\r
86 FRAMEWORK_EFI_IFR_END_FORM_SET EndFormSet;\r
103b6520 87} EFI_FORM_SET_STUB;\r
88\r
89#define EFI_HII_DATA_FROM_THIS(a) CR (a, EFI_HII_DATA, Hii, EFI_HII_DATA_SIGNATURE)\r
90\r
91#define NARROW_WIDTH 8\r
92#define WIDE_WIDTH 16\r
93\r
94extern UINT8 mUnknownGlyph[38];\r
95\r
96//\r
97// Prototypes\r
98//\r
99EFI_STATUS\r
100GetPackSize (\r
101 IN VOID *Pack,\r
102 OUT UINTN *PackSize,\r
103 OUT UINT32 *NumberOfTokens\r
104 )\r
105;\r
106\r
107EFI_STATUS\r
108ValidatePack (\r
109 IN EFI_HII_PROTOCOL *This,\r
110 IN EFI_HII_PACKAGE_INSTANCE *PackageInstance,\r
111 OUT EFI_HII_PACKAGE_INSTANCE **StringPackageInstance,\r
112 OUT UINT32 *TotalStringCount\r
113 )\r
114;\r
115\r
116//\r
117// Public Interface Prototypes\r
118//\r
119EFI_STATUS\r
120EFIAPI\r
121InitializeHiiDatabase (\r
122 IN EFI_HANDLE ImageHandle,\r
123 IN EFI_SYSTEM_TABLE *SystemTable\r
124 )\r
125;\r
126\r
127EFI_STATUS\r
128EFIAPI\r
129HiiNewPack (\r
130 IN EFI_HII_PROTOCOL *This,\r
131 IN EFI_HII_PACKAGES *PackageList,\r
f79314fa 132 OUT FRAMEWORK_EFI_HII_HANDLE *Handle\r
103b6520 133 )\r
134;\r
135\r
136EFI_STATUS\r
137EFIAPI\r
138HiiRemovePack (\r
139 IN EFI_HII_PROTOCOL *This,\r
f79314fa 140 IN FRAMEWORK_EFI_HII_HANDLE Handle\r
103b6520 141 )\r
142;\r
143\r
144EFI_STATUS\r
145EFIAPI\r
146HiiFindHandles (\r
147 IN EFI_HII_PROTOCOL *This,\r
148 IN OUT UINT16 *HandleBufferLength,\r
f79314fa 149 OUT FRAMEWORK_EFI_HII_HANDLE *Handle\r
103b6520 150 )\r
151;\r
152\r
153EFI_STATUS\r
154EFIAPI\r
155HiiExportDatabase (\r
156 IN EFI_HII_PROTOCOL *This,\r
f79314fa 157 IN FRAMEWORK_EFI_HII_HANDLE Handle,\r
103b6520 158 IN OUT UINTN *BufferSize,\r
159 OUT VOID *Buffer\r
160 )\r
161;\r
162\r
163EFI_STATUS\r
164EFIAPI\r
165HiiGetGlyph (\r
166 IN EFI_HII_PROTOCOL *This,\r
167 IN CHAR16 *Source,\r
168 IN OUT UINT16 *Index,\r
169 OUT UINT8 **GlyphBuffer,\r
170 OUT UINT16 *BitWidth,\r
171 IN OUT UINT32 *InternalStatus\r
172 )\r
173;\r
174\r
175EFI_STATUS\r
176EFIAPI\r
177HiiGlyphToBlt (\r
178 IN EFI_HII_PROTOCOL *This,\r
179 IN UINT8 *GlyphBuffer,\r
180 IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL Foreground,\r
181 IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL Background,\r
182 IN UINTN Count,\r
183 IN UINTN Width,\r
184 IN UINTN Height,\r
185 IN OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer\r
186 )\r
187;\r
188\r
189EFI_STATUS\r
190EFIAPI\r
191HiiNewString (\r
192 IN EFI_HII_PROTOCOL *This,\r
193 IN CHAR16 *Language,\r
f79314fa 194 IN FRAMEWORK_EFI_HII_HANDLE Handle,\r
103b6520 195 IN OUT STRING_REF *Reference,\r
196 IN CHAR16 *NewString\r
197 )\r
198;\r
199\r
200EFI_STATUS\r
201EFIAPI\r
202HiiGetString (\r
203 IN EFI_HII_PROTOCOL *This,\r
f79314fa 204 IN FRAMEWORK_EFI_HII_HANDLE Handle,\r
103b6520 205 IN STRING_REF Token,\r
206 IN BOOLEAN Raw,\r
207 IN CHAR16 *LanguageString,\r
208 IN OUT UINTN *BufferLength,\r
209 OUT EFI_STRING StringBuffer\r
210 )\r
211;\r
212\r
213EFI_STATUS\r
214EFIAPI\r
215HiiResetStrings (\r
216 IN EFI_HII_PROTOCOL *This,\r
f79314fa 217 IN FRAMEWORK_EFI_HII_HANDLE Handle\r
103b6520 218 )\r
219;\r
220\r
221EFI_STATUS\r
222EFIAPI\r
223HiiTestString (\r
224 IN EFI_HII_PROTOCOL *This,\r
225 IN CHAR16 *StringToTest,\r
226 IN OUT UINT32 *FirstMissing,\r
227 OUT UINT32 *GlyphBufferSize\r
228 )\r
229;\r
230\r
231EFI_STATUS\r
232EFIAPI\r
233HiiGetPrimaryLanguages (\r
234 IN EFI_HII_PROTOCOL *This,\r
f79314fa 235 IN FRAMEWORK_EFI_HII_HANDLE Handle,\r
103b6520 236 OUT EFI_STRING *LanguageString\r
237 )\r
238;\r
239\r
240EFI_STATUS\r
241EFIAPI\r
242HiiGetSecondaryLanguages (\r
243 IN EFI_HII_PROTOCOL *This,\r
f79314fa 244 IN FRAMEWORK_EFI_HII_HANDLE Handle,\r
103b6520 245 IN CHAR16 *PrimaryLanguage,\r
246 OUT EFI_STRING *LanguageString\r
247 )\r
248;\r
249\r
250EFI_STATUS\r
251EFIAPI\r
252HiiGetLine (\r
253 IN EFI_HII_PROTOCOL *This,\r
f79314fa 254 IN FRAMEWORK_EFI_HII_HANDLE Handle,\r
103b6520 255 IN STRING_REF Token,\r
256 IN OUT UINT16 *Index,\r
257 IN UINT16 LineWidth,\r
258 IN CHAR16 *LanguageString,\r
259 IN OUT UINT16 *BufferLength,\r
260 OUT EFI_STRING StringBuffer\r
261 )\r
262;\r
263\r
264EFI_STATUS\r
265EFIAPI\r
266HiiGetForms (\r
267 IN EFI_HII_PROTOCOL *This,\r
f79314fa 268 IN FRAMEWORK_EFI_HII_HANDLE Handle,\r
103b6520 269 IN EFI_FORM_ID FormId,\r
270 IN OUT UINTN *BufferLength,\r
271 OUT UINT8 *Buffer\r
272 )\r
273;\r
274\r
275EFI_STATUS\r
276EFIAPI\r
277HiiGetDefaultImage (\r
278 IN EFI_HII_PROTOCOL *This,\r
f79314fa 279 IN FRAMEWORK_EFI_HII_HANDLE Handle,\r
103b6520 280 IN UINTN DefaultMask,\r
281 OUT EFI_HII_VARIABLE_PACK_LIST **VariablePackList\r
282 )\r
283;\r
284\r
285EFI_STATUS\r
286EFIAPI\r
287HiiUpdateForm (\r
288 IN EFI_HII_PROTOCOL *This,\r
f79314fa 289 IN FRAMEWORK_EFI_HII_HANDLE Handle,\r
103b6520 290 IN EFI_FORM_LABEL Label,\r
291 IN BOOLEAN AddData,\r
292 IN EFI_HII_UPDATE_DATA *Data\r
293 )\r
294;\r
295\r
296EFI_STATUS\r
297EFIAPI\r
298HiiGetKeyboardLayout (\r
299 IN EFI_HII_PROTOCOL *This,\r
300 OUT UINT16 *DescriptorCount,\r
f79314fa 301 OUT FRAMEWORK_EFI_KEY_DESCRIPTOR *Descriptor\r
103b6520 302 )\r
303;\r
304\r
305EFI_STATUS\r
306HiiCompareLanguage (\r
307 IN CHAR16 *LanguageStringLocation,\r
308 IN CHAR16 *Language\r
309 )\r
310;\r
311\r
312#endif\r