]> git.proxmox.com Git - mirror_edk2.git/blame - IntelFrameworkModulePkg/Universal/HiiDataBaseDxe/HiiDatabase.h
Update following library class/Protocol for puting 'Framework' as prefix
[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
ececc2eb 21#include <PiDxe.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
52 EFI_HII_HANDLE Handle; // Monotonically increasing value to signify the value returned to caller\r
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
60 EFI_KEY_DESCRIPTOR SystemKeyboardLayout[106];\r
61 EFI_KEY_DESCRIPTOR OverrideKeyboardLayout[106];\r
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
74 EFI_HII_HANDLE Handle;\r
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
85 EFI_IFR_FORM_SET FormSet;\r
86 EFI_IFR_END_FORM_SET EndFormSet;\r
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
132 OUT EFI_HII_HANDLE *Handle\r
133 )\r
134;\r
135\r
136EFI_STATUS\r
137EFIAPI\r
138HiiRemovePack (\r
139 IN EFI_HII_PROTOCOL *This,\r
140 IN EFI_HII_HANDLE Handle\r
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
149 OUT EFI_HII_HANDLE *Handle\r
150 )\r
151;\r
152\r
153EFI_STATUS\r
154EFIAPI\r
155HiiExportDatabase (\r
156 IN EFI_HII_PROTOCOL *This,\r
157 IN EFI_HII_HANDLE Handle,\r
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
194 IN EFI_HII_HANDLE Handle,\r
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
204 IN EFI_HII_HANDLE Handle,\r
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
217 IN EFI_HII_HANDLE Handle\r
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
235 IN EFI_HII_HANDLE Handle,\r
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
244 IN EFI_HII_HANDLE Handle,\r
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
254 IN EFI_HII_HANDLE Handle,\r
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
268 IN EFI_HII_HANDLE Handle,\r
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
279 IN EFI_HII_HANDLE Handle,\r
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
289 IN EFI_HII_HANDLE Handle,\r
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
301 OUT EFI_KEY_DESCRIPTOR *Descriptor\r
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