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 |
6 | Copyright (c) 2006, Intel Corporation\r |
7 | All rights reserved. This program and the accompanying materials\r |
8 | are licensed and made available under the terms and conditions of the BSD License\r |
9 | which accompanies this distribution. The full text of the license may be found at\r |
10 | http://opensource.org/licenses/bsd-license.php\r |
11 | \r |
12 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r |
13 | WITHOUT 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 |
50 | typedef 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 |
57 | typedef 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 |
65 | typedef 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 |
73 | typedef 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 |
83 | typedef 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 |
94 | extern UINT8 mUnknownGlyph[38];\r |
95 | \r |
96 | //\r |
97 | // Prototypes\r |
98 | //\r |
99 | EFI_STATUS\r |
100 | GetPackSize (\r |
101 | IN VOID *Pack,\r |
102 | OUT UINTN *PackSize,\r |
103 | OUT UINT32 *NumberOfTokens\r |
104 | )\r |
105 | ;\r |
106 | \r |
107 | EFI_STATUS\r |
108 | ValidatePack (\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 |
119 | EFI_STATUS\r |
120 | EFIAPI\r |
121 | InitializeHiiDatabase (\r |
122 | IN EFI_HANDLE ImageHandle,\r |
123 | IN EFI_SYSTEM_TABLE *SystemTable\r |
124 | )\r |
125 | ;\r |
126 | \r |
127 | EFI_STATUS\r |
128 | EFIAPI\r |
129 | HiiNewPack (\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 |
136 | EFI_STATUS\r |
137 | EFIAPI\r |
138 | HiiRemovePack (\r |
139 | IN EFI_HII_PROTOCOL *This,\r |
f79314fa |
140 | IN FRAMEWORK_EFI_HII_HANDLE Handle\r |
103b6520 |
141 | )\r |
142 | ;\r |
143 | \r |
144 | EFI_STATUS\r |
145 | EFIAPI\r |
146 | HiiFindHandles (\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 |
153 | EFI_STATUS\r |
154 | EFIAPI\r |
155 | HiiExportDatabase (\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 |
163 | EFI_STATUS\r |
164 | EFIAPI\r |
165 | HiiGetGlyph (\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 |
175 | EFI_STATUS\r |
176 | EFIAPI\r |
177 | HiiGlyphToBlt (\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 |
189 | EFI_STATUS\r |
190 | EFIAPI\r |
191 | HiiNewString (\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 |
200 | EFI_STATUS\r |
201 | EFIAPI\r |
202 | HiiGetString (\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 |
213 | EFI_STATUS\r |
214 | EFIAPI\r |
215 | HiiResetStrings (\r |
216 | IN EFI_HII_PROTOCOL *This,\r |
f79314fa |
217 | IN FRAMEWORK_EFI_HII_HANDLE Handle\r |
103b6520 |
218 | )\r |
219 | ;\r |
220 | \r |
221 | EFI_STATUS\r |
222 | EFIAPI\r |
223 | HiiTestString (\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 |
231 | EFI_STATUS\r |
232 | EFIAPI\r |
233 | HiiGetPrimaryLanguages (\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 |
240 | EFI_STATUS\r |
241 | EFIAPI\r |
242 | HiiGetSecondaryLanguages (\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 |
250 | EFI_STATUS\r |
251 | EFIAPI\r |
252 | HiiGetLine (\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 |
264 | EFI_STATUS\r |
265 | EFIAPI\r |
266 | HiiGetForms (\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 |
275 | EFI_STATUS\r |
276 | EFIAPI\r |
277 | HiiGetDefaultImage (\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 |
285 | EFI_STATUS\r |
286 | EFIAPI\r |
287 | HiiUpdateForm (\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 |
296 | EFI_STATUS\r |
297 | EFIAPI\r |
298 | HiiGetKeyboardLayout (\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 |
305 | EFI_STATUS\r |
306 | HiiCompareLanguage (\r |
307 | IN CHAR16 *LanguageStringLocation,\r |
308 | IN CHAR16 *Language\r |
309 | )\r |
310 | ;\r |
311 | \r |
312 | #endif\r |