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