959ccb23 |
1 | \r |
2 | /** @file\r |
3 | This file defines the encoding for the VFR (Visual Form Representation) language.\r |
4 | IFR is primarily consumed by the EFI presentation engine, and produced by EFI\r |
5 | internal application and drivers as well as all add-in card option-ROM drivers\r |
6 | \r |
54cf8780 |
7 | Copyright (c) 2006 - 2008, Intel Corporation \r |
959ccb23 |
8 | All rights reserved. This program and the accompanying materials \r |
9 | are licensed and made available under the terms and conditions of the BSD License \r |
10 | which accompanies this distribution. The full text of the license may be found at \r |
11 | http://opensource.org/licenses/bsd-license.php \r |
12 | \r |
13 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r |
14 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r |
15 | \r |
959ccb23 |
16 | @par Revision Reference:\r |
17 | These definitions are from UEFI2.1.\r |
18 | \r |
19 | **/\r |
20 | \r |
21 | #ifndef __UEFI_INTERNAL_FORMREPRESENTATION_H__\r |
22 | #define __UEFI_INTERNAL_FORMREPRESENTATION_H__\r |
23 | \r |
24 | //\r |
25 | // The following types are currently defined:\r |
26 | //\r |
27 | typedef UINT32 RELOFST;\r |
d1f95000 |
28 | \r |
7d582d6b |
29 | typedef VOID* EFI_HII_HANDLE;\r |
30 | typedef CHAR16* EFI_STRING;\r |
d1f95000 |
31 | typedef UINT16 EFI_IMAGE_ID;\r |
32 | typedef UINT16 EFI_QUESTION_ID;\r |
33 | typedef UINT16 EFI_STRING_ID;\r |
34 | typedef UINT16 EFI_FORM_ID;\r |
35 | typedef UINT16 EFI_VARSTORE_ID;\r |
7d582d6b |
36 | typedef UINT16 EFI_DEFAULT_ID;\r |
37 | typedef UINT32 EFI_HII_FONT_STYLE;\r |
d1f95000 |
38 | \r |
959ccb23 |
39 | \r |
959ccb23 |
40 | \r |
41 | #pragma pack(1)\r |
7d582d6b |
42 | \r |
43 | \r |
959ccb23 |
44 | //\r |
7d582d6b |
45 | // HII package list\r |
959ccb23 |
46 | //\r |
47 | typedef struct {\r |
7d582d6b |
48 | EFI_GUID PackageListGuid;\r |
49 | UINT32 PackageLength;\r |
50 | } EFI_HII_PACKAGE_LIST_HEADER;\r |
959ccb23 |
51 | \r |
7d582d6b |
52 | /**\r |
53 | \r |
54 | Each package starts with a header, as defined above, which \r |
55 | indicates the size and type of the package. When added to a \r |
56 | pointer pointing to the start of the header, Length points at \r |
57 | the next package. The package lists form a package list when \r |
58 | concatenated together and terminated with an \r |
59 | EFI_HII_PACKAGE_HEADER with a Type of EFI_HII_PACKAGE_END. The \r |
60 | type EFI_HII_PACKAGE_TYPE_GUID is used for vendor-defined HII \r |
61 | packages, whose contents are determined by the Guid. The range \r |
62 | of package types starting with EFI_HII_PACKAGE_TYPE_SYSTEM_BEGIN \r |
63 | through EFI_HII_PACKAGE_TYPE_SYSTEM_END are reserved for system \r |
64 | firmware implementers. \r |
65 | \r |
66 | @param Length The size of the package in bytes.\r |
67 | \r |
68 | @param Type The package type. See EFI_HII_PACKAGE_TYPE_x,\r |
69 | below.\r |
70 | \r |
71 | @param Data The package data, the format of which is\r |
72 | determined by Type.\r |
73 | \r |
74 | **/\r |
959ccb23 |
75 | typedef struct {\r |
7d582d6b |
76 | UINT32 Length:24;\r |
77 | UINT32 Type:8;\r |
78 | // UINT8 Data[...];\r |
79 | } EFI_HII_PACKAGE_HEADER;\r |
959ccb23 |
80 | \r |
7d582d6b |
81 | //\r |
82 | // EFI_HII_PACKAGE_TYPE_x.\r |
83 | // \r |
84 | #define EFI_HII_PACKAGE_TYPE_ALL 0x00\r |
85 | #define EFI_HII_PACKAGE_TYPE_GUID 0x01\r |
86 | #define EFI_HII_PACKAGE_FORM 0x02\r |
87 | #define EFI_HII_PACKAGE_KEYBOARD_LAYOUT 0x03\r |
88 | #define EFI_HII_PACKAGE_STRINGS 0x04\r |
89 | #define EFI_HII_PACKAGE_FONTS 0x05\r |
90 | #define EFI_HII_PACKAGE_IMAGES 0x06\r |
91 | #define EFI_HII_PACKAGE_SIMPLE_FONTS 0x07\r |
92 | #define EFI_HII_PACKAGE_DEVICE_PATH 0x08\r |
93 | #define EFI_HII_PACKAGE_END 0xDF\r |
94 | #define EFI_HII_PACKAGE_TYPE_SYSTEM_BEGIN 0xE0\r |
95 | #define EFI_HII_PACKAGE_TYPE_SYSTEM_END 0xFF\r |
959ccb23 |
96 | \r |
7d582d6b |
97 | //\r |
98 | // Simplified Font Package\r |
99 | //\r |
100 | \r |
101 | #define EFI_GLYPH_HEIGHT 19\r |
102 | #define EFI_GLYPH_WIDTH 8\r |
103 | //\r |
104 | // Contents of EFI_NARROW_GLYPH.Attributes\r |
105 | //\r |
106 | #define EFI_GLYPH_NON_SPACING 0x01\r |
107 | #define EFI_GLYPH_WIDE 0x02\r |
959ccb23 |
108 | \r |
109 | typedef struct {\r |
7d582d6b |
110 | CHAR16 UnicodeWeight;\r |
111 | UINT8 Attributes;\r |
112 | UINT8 GlyphCol1[EFI_GLYPH_HEIGHT];\r |
113 | } EFI_NARROW_GLYPH;\r |
959ccb23 |
114 | \r |
115 | typedef struct {\r |
7d582d6b |
116 | CHAR16 UnicodeWeight;\r |
117 | UINT8 Attributes;\r |
118 | UINT8 GlyphCol1[EFI_GLYPH_HEIGHT];\r |
119 | UINT8 GlyphCol2[EFI_GLYPH_HEIGHT];\r |
120 | UINT8 Pad[3];\r |
121 | } EFI_WIDE_GLYPH;\r |
122 | \r |
123 | \r |
124 | typedef struct _EFI_HII_SIMPLE_FONT_PACKAGE_HDR {\r |
125 | EFI_HII_PACKAGE_HEADER Header;\r |
126 | UINT16 NumberOfNarrowGlyphs;\r |
127 | UINT16 NumberOfWideGlyphs;\r |
128 | // EFI_NARROW_GLYPH NarrowGlyphs[];\r |
129 | // EFI_WIDE_GLYPH WideGlyphs[];\r |
130 | } EFI_HII_SIMPLE_FONT_PACKAGE_HDR;\r |
959ccb23 |
131 | \r |
132 | //\r |
7d582d6b |
133 | // Font Package\r |
959ccb23 |
134 | //\r |
959ccb23 |
135 | \r |
54cf8780 |
136 | #define EFI_HII_FONT_STYLE_NORMAL 0x00000000\r |
7d582d6b |
137 | #define EFI_HII_FONT_STYLE_BOLD 0x00000001\r |
138 | #define EFI_HII_FONT_STYLE_ITALIC 0x00000002\r |
139 | #define EFI_HII_FONT_STYLE_EMBOSS 0x00010000\r |
140 | #define EFI_HII_FONT_STYLE_OUTLINE 0x00020000\r |
141 | #define EFI_HII_FONT_STYLE_SHADOW 0x00040000\r |
142 | #define EFI_HII_FONT_STYLE_UNDERLINE 0x00080000\r |
143 | #define EFI_HII_FONT_STYLE_DBL_UNDER 0x00100000\r |
959ccb23 |
144 | \r |
7d582d6b |
145 | typedef struct _EFI_HII_GLYPH_INFO {\r |
146 | UINT16 Width;\r |
147 | UINT16 Height;\r |
148 | INT16 OffsetX;\r |
149 | INT16 OffsetY;\r |
150 | INT16 AdvanceX;\r |
151 | } EFI_HII_GLYPH_INFO;\r |
152 | \r |
153 | typedef struct _EFI_HII_FONT_PACKAGE_HDR {\r |
154 | EFI_HII_PACKAGE_HEADER Header;\r |
155 | UINT32 HdrSize;\r |
156 | UINT32 GlyphBlockOffset;\r |
157 | EFI_HII_GLYPH_INFO Cell;\r |
158 | EFI_HII_FONT_STYLE FontStyle;\r |
159 | CHAR16 FontFamily[1];\r |
160 | } EFI_HII_FONT_PACKAGE_HDR;\r |
161 | \r |
162 | #define EFI_HII_GIBT_END 0x00\r |
163 | #define EFI_HII_GIBT_GLYPH 0x10\r |
164 | #define EFI_HII_GIBT_GLYPHS 0x11\r |
165 | #define EFI_HII_GIBT_GLYPH_DEFAULT 0x12\r |
166 | #define EFI_HII_GIBT_GLYPHS_DEFAULT 0x13\r |
167 | #define EFI_HII_GIBT_DUPLICATE 0x20\r |
168 | #define EFI_HII_GIBT_SKIP2 0x21\r |
169 | #define EFI_HII_GIBT_SKIP1 0x22\r |
170 | #define EFI_HII_GIBT_DEFAULTS 0x23\r |
171 | #define EFI_HII_GIBT_EXT1 0x30\r |
172 | #define EFI_HII_GIBT_EXT2 0x31\r |
173 | #define EFI_HII_GIBT_EXT4 0x32\r |
174 | \r |
175 | typedef struct _EFI_HII_GLYPH_BLOCK {\r |
176 | UINT8 BlockType;\r |
177 | } EFI_HII_GLYPH_BLOCK;\r |
178 | \r |
179 | typedef struct _EFI_HII_GIBT_DEFAULTS_BLOCK {\r |
180 | EFI_HII_GLYPH_BLOCK Header;\r |
181 | EFI_HII_GLYPH_INFO Cell;\r |
182 | } EFI_HII_GIBT_DEFAULTS_BLOCK;\r |
183 | \r |
184 | typedef struct _EFI_HII_GIBT_DUPLICATE_BLOCK {\r |
185 | EFI_HII_GLYPH_BLOCK Header;\r |
186 | CHAR16 CharValue;\r |
187 | } EFI_HII_GIBT_DUPLICATE_BLOCK;\r |
188 | \r |
189 | typedef struct _EFI_GLYPH_GIBT_END_BLOCK {\r |
190 | EFI_HII_GLYPH_BLOCK Header;\r |
191 | } EFI_GLYPH_GIBT_END_BLOCK;\r |
192 | \r |
193 | typedef struct _EFI_HII_GIBT_EXT1_BLOCK {\r |
194 | EFI_HII_GLYPH_BLOCK Header;\r |
195 | UINT8 BlockType2;\r |
196 | UINT8 Length;\r |
197 | } EFI_HII_GIBT_EXT1_BLOCK;\r |
198 | \r |
199 | typedef struct _EFI_HII_GIBT_EXT2_BLOCK {\r |
200 | EFI_HII_GLYPH_BLOCK Header;\r |
201 | UINT8 BlockType2;\r |
202 | UINT16 Length;\r |
203 | } EFI_HII_GIBT_EXT2_BLOCK;\r |
204 | \r |
205 | typedef struct _EFI_HII_GIBT_EXT4_BLOCK {\r |
206 | EFI_HII_GLYPH_BLOCK Header;\r |
207 | UINT8 BlockType2;\r |
208 | UINT32 Length;\r |
209 | } EFI_HII_GIBT_EXT4_BLOCK;\r |
210 | \r |
211 | typedef struct _EFI_HII_GIBT_GLYPH_BLOCK {\r |
212 | EFI_HII_GLYPH_BLOCK Header;\r |
213 | EFI_HII_GLYPH_INFO Cell;\r |
214 | UINT8 BitmapData[1]; // the number of bytes per bitmap can be calculated by ((Cell.Width+7)/8)*Cell.Height\r |
215 | } EFI_HII_GIBT_GLYPH_BLOCK;\r |
216 | \r |
217 | typedef struct _EFI_HII_GIBT_GLYPHS_BLOCK {\r |
218 | EFI_HII_GLYPH_BLOCK Header;\r |
219 | EFI_HII_GLYPH_INFO Cell;\r |
220 | UINT16 Count; \r |
221 | UINT8 BitmapData[1]; // the number of bytes per bitmap can be calculated by ((Cell.Width+7)/8)*Cell.Height\r |
222 | } EFI_HII_GIBT_GLYPHS_BLOCK;\r |
223 | \r |
224 | typedef struct _EFI_HII_GIBT_GLYPH_DEFAULT_BLOCK {\r |
225 | EFI_HII_GLYPH_BLOCK Header;\r |
226 | UINT8 BitmapData[1]; // the number of bytes per bitmap can be calculated by ((Global.Cell.Width+7)/8)*Global.Cell.Height\r |
227 | } EFI_HII_GIBT_GLYPH_DEFAULT_BLOCK;\r |
228 | \r |
229 | typedef struct _EFI_HII_GIBT_GLYPHS_DEFAULT_BLOCK {\r |
230 | EFI_HII_GLYPH_BLOCK Header;\r |
231 | UINT16 Count;\r |
232 | UINT8 BitmapData[1]; // the number of bytes per bitmap can be calculated by ((Global.Cell.Width+7)/8)*Global.Cell.Height\r |
233 | } EFI_HII_GIBT_GLYPHS_DEFAULT_BLOCK;\r |
234 | \r |
235 | typedef struct _EFI_HII_GIBT_SKIP1_BLOCK {\r |
236 | EFI_HII_GLYPH_BLOCK Header;\r |
237 | UINT8 SkipCount;\r |
238 | } EFI_HII_GIBT_SKIP1_BLOCK;\r |
239 | \r |
240 | typedef struct _EFI_HII_GIBT_SKIP2_BLOCK {\r |
241 | EFI_HII_GLYPH_BLOCK Header;\r |
242 | UINT16 SkipCount;\r |
243 | } EFI_HII_GIBT_SKIP2_BLOCK;\r |
959ccb23 |
244 | \r |
245 | //\r |
7d582d6b |
246 | // Device Path Package\r |
959ccb23 |
247 | //\r |
7d582d6b |
248 | typedef struct _EFI_HII_DEVICE_PATH_PACKAGE {\r |
249 | EFI_HII_PACKAGE_HEADER Header;\r |
250 | // EFI_DEVICE_PATH_PROTOCOL DevicePath[];\r |
251 | } EFI_HII_DEVICE_PATH_PACKAGE;\r |
959ccb23 |
252 | \r |
7d582d6b |
253 | //\r |
254 | // GUID Package\r |
255 | //\r |
256 | typedef struct _EFI_HII_GUID_PACKAGE_HDR {\r |
257 | EFI_HII_PACKAGE_HEADER Header;\r |
258 | EFI_GUID Guid;\r |
259 | // Data per GUID definition may follow\r |
260 | } EFI_HII_GUID_PACKAGE_HDR;\r |
959ccb23 |
261 | \r |
7d582d6b |
262 | //\r |
263 | // String Package\r |
264 | //\r |
959ccb23 |
265 | \r |
7d582d6b |
266 | #define UEFI_CONFIG_LANG L"x-UEFI"\r |
267 | #define UEFI_CONFIG_LANG2 L"x-i-UEFI" // BUGBUG, spec need to be updated.\r |
268 | \r |
269 | typedef struct _EFI_HII_STRING_PACKAGE_HDR {\r |
270 | EFI_HII_PACKAGE_HEADER Header;\r |
271 | UINT32 HdrSize;\r |
272 | UINT32 StringInfoOffset;\r |
273 | CHAR16 LanguageWindow[16];\r |
274 | EFI_STRING_ID LanguageName;\r |
275 | CHAR8 Language[1];\r |
276 | } EFI_HII_STRING_PACKAGE_HDR;\r |
959ccb23 |
277 | \r |
278 | typedef struct {\r |
7d582d6b |
279 | UINT8 BlockType;\r |
280 | } EFI_HII_STRING_BLOCK;\r |
281 | \r |
282 | #define EFI_HII_SIBT_END 0x00\r |
283 | #define EFI_HII_SIBT_STRING_SCSU 0x10\r |
284 | #define EFI_HII_SIBT_STRING_SCSU_FONT 0x11\r |
285 | #define EFI_HII_SIBT_STRINGS_SCSU 0x12\r |
286 | #define EFI_HII_SIBT_STRINGS_SCSU_FONT 0x13\r |
287 | #define EFI_HII_SIBT_STRING_UCS2 0x14\r |
288 | #define EFI_HII_SIBT_STRING_UCS2_FONT 0x15\r |
289 | #define EFI_HII_SIBT_STRINGS_UCS2 0x16\r |
290 | #define EFI_HII_SIBT_STRINGS_UCS2_FONT 0x17\r |
291 | #define EFI_HII_SIBT_DUPLICATE 0x20\r |
292 | #define EFI_HII_SIBT_SKIP2 0x21\r |
293 | #define EFI_HII_SIBT_SKIP1 0x22\r |
294 | #define EFI_HII_SIBT_EXT1 0x30\r |
295 | #define EFI_HII_SIBT_EXT2 0x31\r |
296 | #define EFI_HII_SIBT_EXT4 0x32\r |
297 | #define EFI_HII_SIBT_FONT 0x40\r |
298 | \r |
299 | typedef struct _EFI_HII_SIBT_DUPLICATE_BLOCK {\r |
300 | EFI_HII_STRING_BLOCK Header;\r |
301 | EFI_STRING_ID StringId;\r |
302 | } EFI_HII_SIBT_DUPLICATE_BLOCK;\r |
303 | \r |
304 | typedef struct _EFI_HII_SIBT_END_BLOCK {\r |
305 | EFI_HII_STRING_BLOCK Header;\r |
306 | } EFI_HII_SIBT_END_BLOCK;\r |
307 | \r |
308 | typedef struct _EFI_HII_SIBT_EXT1_BLOCK {\r |
309 | EFI_HII_STRING_BLOCK Header;\r |
310 | UINT8 BlockType2;\r |
311 | UINT8 Length;\r |
312 | } EFI_HII_SIBT_EXT1_BLOCK;\r |
313 | \r |
314 | typedef struct _EFI_HII_SIBT_EXT2_BLOCK {\r |
315 | EFI_HII_STRING_BLOCK Header;\r |
316 | UINT8 BlockType2;\r |
317 | UINT16 Length;\r |
318 | } EFI_HII_SIBT_EXT2_BLOCK;\r |
319 | \r |
320 | typedef struct _EFI_HII_SIBT_EXT4_BLOCK {\r |
321 | EFI_HII_STRING_BLOCK Header;\r |
322 | UINT8 BlockType2;\r |
323 | UINT32 Length;\r |
324 | } EFI_HII_SIBT_EXT4_BLOCK;\r |
325 | \r |
326 | typedef struct _EFI_HII_SIBT_FONT_BLOCK {\r |
327 | EFI_HII_SIBT_EXT2_BLOCK Header;\r |
328 | UINT8 FontId;\r |
329 | UINT16 FontSize;\r |
330 | EFI_HII_FONT_STYLE FontStyle;\r |
331 | CHAR16 FontName[1];\r |
332 | } EFI_HII_SIBT_FONT_BLOCK;\r |
333 | \r |
334 | typedef struct _EFI_HII_SIBT_SKIP1_BLOCK {\r |
335 | EFI_HII_STRING_BLOCK Header;\r |
336 | UINT8 SkipCount;\r |
337 | } EFI_HII_SIBT_SKIP1_BLOCK;\r |
338 | \r |
339 | typedef struct _EFI_HII_SIBT_SKIP2_BLOCK {\r |
340 | EFI_HII_STRING_BLOCK Header;\r |
341 | UINT16 SkipCount;\r |
342 | } EFI_HII_SIBT_SKIP2_BLOCK;\r |
343 | \r |
344 | typedef struct _EFI_HII_SIBT_STRING_SCSU_BLOCK {\r |
345 | EFI_HII_STRING_BLOCK Header;\r |
346 | UINT8 StringText[1];\r |
347 | } EFI_HII_SIBT_STRING_SCSU_BLOCK;\r |
348 | \r |
349 | typedef struct _EFI_HII_SIBT_STRING_SCSU_FONT_BLOCK {\r |
350 | EFI_HII_STRING_BLOCK Header;\r |
351 | UINT8 FontIdentifier;\r |
352 | UINT8 StringText[1];\r |
353 | } EFI_HII_SIBT_STRING_SCSU_FONT_BLOCK;\r |
354 | \r |
355 | typedef struct _EFI_HII_SIBT_STRINGS_SCSU_BLOCK {\r |
356 | EFI_HII_STRING_BLOCK Header;\r |
357 | UINT16 StringCount;\r |
358 | UINT8 StringText[1];\r |
359 | } EFI_HII_SIBT_STRINGS_SCSU_BLOCK;\r |
360 | \r |
361 | typedef struct _EFI_HII_SIBT_STRINGS_SCSU_FONT_BLOCK {\r |
362 | EFI_HII_STRING_BLOCK Header;\r |
363 | UINT8 FontIdentifier;\r |
364 | UINT16 StringCount;\r |
365 | UINT8 StringText[1];\r |
366 | } EFI_HII_SIBT_STRINGS_SCSU_FONT_BLOCK;\r |
367 | \r |
368 | typedef struct _EFI_HII_SIBT_STRING_UCS2_BLOCK {\r |
369 | EFI_HII_STRING_BLOCK Header;\r |
370 | CHAR16 StringText[1];\r |
371 | } EFI_HII_SIBT_STRING_UCS2_BLOCK;\r |
372 | \r |
373 | typedef struct _EFI_HII_SIBT_STRING_UCS2_FONT_BLOCK {\r |
374 | EFI_HII_STRING_BLOCK Header;\r |
375 | UINT8 FontIdentifier;\r |
376 | CHAR16 StringText[1];\r |
377 | } EFI_HII_SIBT_STRING_UCS2_FONT_BLOCK;\r |
378 | \r |
379 | typedef struct _EFI_HII_SIBT_STRINGS_UCS2_BLOCK {\r |
380 | EFI_HII_STRING_BLOCK Header;\r |
381 | UINT16 StringCount;\r |
382 | CHAR16 StringText[1];\r |
383 | } EFI_HII_SIBT_STRINGS_UCS2_BLOCK;\r |
384 | \r |
385 | typedef struct _EFI_HII_SIBT_STRINGS_UCS2_FONT_BLOCK {\r |
386 | EFI_HII_STRING_BLOCK Header;\r |
387 | UINT8 FontIdentifier;\r |
388 | UINT16 StringCount;\r |
389 | CHAR16 StringText[1];\r |
390 | } EFI_HII_SIBT_STRINGS_UCS2_FONT_BLOCK;\r |
959ccb23 |
391 | \r |
392 | //\r |
7d582d6b |
393 | // Image Packages\r |
394 | //\r |
395 | \r |
396 | typedef struct _EFI_HII_IMAGE_PACKAGE_HDR {\r |
397 | EFI_HII_PACKAGE_HEADER Header;\r |
398 | UINT32 ImageInfoOffset;\r |
399 | UINT32 PaletteInfoOffset;\r |
400 | } EFI_HII_IMAGE_PACKAGE_HDR;\r |
401 | \r |
402 | typedef struct _EFI_HII_IMAGE_BLOCK {\r |
403 | UINT8 BlockType;\r |
404 | } EFI_HII_IMAGE_BLOCK;\r |
405 | \r |
406 | #define EFI_HII_IIBT_END 0x00\r |
407 | #define EFI_HII_IIBT_IMAGE_1BIT 0x10\r |
408 | #define EFI_HII_IIBT_IMAGE_1BIT_TRANS 0x11\r |
409 | #define EFI_HII_IIBT_IMAGE_4BIT 0x12\r |
410 | #define EFI_HII_IIBT_IMAGE_4BIT_TRANS 0x13\r |
411 | #define EFI_HII_IIBT_IMAGE_8BIT 0x14\r |
412 | #define EFI_HII_IIBT_IMAGE_8BIT_TRANS 0x15\r |
413 | #define EFI_HII_IIBT_IMAGE_24BIT 0x16\r |
414 | #define EFI_HII_IIBT_IMAGE_24BIT_TRANS 0x17\r |
415 | #define EFI_HII_IIBT_IMAGE_JPEG 0x18\r |
416 | #define EFI_HII_IIBT_DUPLICATE 0x20\r |
417 | #define EFI_HII_IIBT_SKIP2 0x21\r |
418 | #define EFI_HII_IIBT_SKIP1 0x22\r |
419 | #define EFI_HII_IIBT_EXT1 0x30\r |
420 | #define EFI_HII_IIBT_EXT2 0x31\r |
421 | #define EFI_HII_IIBT_EXT4 0x32\r |
422 | \r |
423 | typedef struct _EFI_HII_IIBT_END_BLOCK {\r |
424 | EFI_HII_IMAGE_BLOCK Header;\r |
425 | } EFI_HII_IIBT_END_BLOCK;\r |
426 | \r |
427 | typedef struct _EFI_HII_IIBT_EXT1_BLOCK {\r |
428 | EFI_HII_IMAGE_BLOCK Header;\r |
429 | UINT8 BlockType2;\r |
430 | UINT8 Length;\r |
431 | } EFI_HII_IIBT_EXT1_BLOCK;\r |
432 | \r |
433 | typedef struct _EFI_HII_IIBT_EXT2_BLOCK {\r |
434 | EFI_HII_IMAGE_BLOCK Header;\r |
435 | UINT8 BlockType2;\r |
436 | UINT16 Length;\r |
437 | } EFI_HII_IIBT_EXT2_BLOCK;\r |
438 | \r |
439 | typedef struct _EFI_HII_IIBT_EXT4_BLOCK {\r |
440 | EFI_HII_IMAGE_BLOCK Header;\r |
441 | UINT8 BlockType2;\r |
442 | UINT32 Length;\r |
443 | } EFI_HII_IIBT_EXT4_BLOCK;\r |
444 | \r |
445 | typedef struct _EFI_HII_IIBT_IMAGE_1BIT_BASE {\r |
446 | UINT16 Width;\r |
447 | UINT16 Height;\r |
448 | UINT8 Data[1];\r |
449 | } EFI_HII_IIBT_IMAGE_1BIT_BASE;\r |
450 | \r |
451 | typedef struct _EFI_HII_IIBT_IMAGE_1BIT_BLOCK {\r |
452 | EFI_HII_IMAGE_BLOCK Header;\r |
453 | UINT8 PaletteIndex;\r |
454 | EFI_HII_IIBT_IMAGE_1BIT_BASE Bitmap;\r |
455 | } EFI_HII_IIBT_IMAGE_1BIT_BLOCK;\r |
456 | \r |
457 | typedef struct _EFI_HII_IIBT_IMAGE_1BIT_TRANS_BLOCK {\r |
458 | EFI_HII_IMAGE_BLOCK Header;\r |
459 | UINT8 PaletteIndex;\r |
460 | EFI_HII_IIBT_IMAGE_1BIT_BASE Bitmap;\r |
461 | } EFI_HII_IIBT_IMAGE_1BIT_TRANS_BLOCK;\r |
462 | \r |
463 | typedef struct _EFI_HII_RGB_PIXEL {\r |
464 | UINT8 b;\r |
465 | UINT8 g;\r |
466 | UINT8 r;\r |
467 | } EFI_HII_RGB_PIXEL;\r |
468 | \r |
469 | typedef struct _EFI_HII_IIBT_IMAGE_24BIT_BASE {\r |
470 | UINT16 Width;\r |
471 | UINT16 Height;\r |
472 | EFI_HII_RGB_PIXEL Bitmap[1];\r |
473 | } EFI_HII_IIBT_IMAGE_24BIT_BASE;\r |
474 | \r |
475 | typedef struct _EFI_HII_IIBT_IMAGE_24BIT_BLOCK {\r |
476 | EFI_HII_IMAGE_BLOCK Header;\r |
477 | EFI_HII_IIBT_IMAGE_24BIT_BASE Bitmap;\r |
478 | } EFI_HII_IIBT_IMAGE_24BIT_BLOCK;\r |
479 | \r |
480 | typedef struct _EFI_HII_IIBT_IMAGE_24BIT_TRANS_BLOCK {\r |
481 | EFI_HII_IMAGE_BLOCK Header;\r |
482 | EFI_HII_IIBT_IMAGE_24BIT_BASE Bitmap;\r |
483 | } EFI_HII_IIBT_IMAGE_24BIT_TRANS_BLOCK;\r |
484 | \r |
485 | typedef struct _EFI_HII_IIBT_IMAGE_4BIT_BASE {\r |
486 | UINT16 Width;\r |
487 | UINT16 Height;\r |
488 | UINT8 Data[1];\r |
489 | } EFI_HII_IIBT_IMAGE_4BIT_BASE;\r |
490 | \r |
491 | typedef struct _EFI_HII_IIBT_IMAGE_4BIT_BLOCK {\r |
492 | EFI_HII_IMAGE_BLOCK Header;\r |
493 | UINT8 PaletteIndex;\r |
494 | EFI_HII_IIBT_IMAGE_4BIT_BASE Bitmap;\r |
495 | } EFI_HII_IIBT_IMAGE_4BIT_BLOCK;\r |
496 | \r |
497 | typedef struct _EFI_HII_IIBT_IMAGE_4BIT_TRANS_BLOCK {\r |
498 | EFI_HII_IMAGE_BLOCK Header;\r |
499 | UINT8 PaletteIndex;\r |
500 | EFI_HII_IIBT_IMAGE_4BIT_BASE Bitmap;\r |
501 | } EFI_HII_IIBT_IMAGE_4BIT_TRANS_BLOCK;\r |
502 | \r |
503 | typedef struct _EFI_HII_IIBT_IMAGE_8BIT_BASE {\r |
504 | UINT16 Width;\r |
505 | UINT16 Height;\r |
506 | UINT8 Data[1];\r |
507 | } EFI_HII_IIBT_IMAGE_8BIT_BASE;\r |
508 | \r |
509 | typedef struct _EFI_HII_IIBT_IMAGE_8BIT_PALETTE_BLOCK {\r |
510 | EFI_HII_IMAGE_BLOCK Header;\r |
511 | UINT8 PaletteIndex;\r |
512 | EFI_HII_IIBT_IMAGE_8BIT_BASE Bitmap;\r |
513 | } EFI_HII_IIBT_IMAGE_8BIT_BLOCK;\r |
514 | \r |
515 | typedef struct _EFI_HII_IIBT_IMAGE_8BIT_TRANS_BLOCK {\r |
516 | EFI_HII_IMAGE_BLOCK Header;\r |
517 | UINT8 PaletteIndex;\r |
518 | EFI_HII_IIBT_IMAGE_8BIT_BASE Bitmap;\r |
519 | } EFI_HII_IIBT_IMAGE_8BIT_TRAN_BLOCK;\r |
520 | \r |
521 | typedef struct _EFI_HII_IIBT_DUPLICATE_BLOCK {\r |
522 | EFI_HII_IMAGE_BLOCK Header;\r |
523 | EFI_IMAGE_ID ImageId;\r |
524 | } EFI_HII_IIBT_DUPLICATE_BLOCK;\r |
525 | \r |
526 | typedef struct _EFI_HII_IIBT_JPEG_BLOCK {\r |
527 | EFI_HII_IMAGE_BLOCK Header;\r |
528 | UINT32 Size;\r |
529 | UINT8 Data[1];\r |
530 | } EFI_HII_IIBT_JPEG_BLOCK;\r |
531 | \r |
532 | typedef struct _EFI_HII_IIBT_SKIP1_BLOCK {\r |
533 | EFI_HII_IMAGE_BLOCK Header;\r |
534 | UINT8 SkipCount;\r |
535 | } EFI_HII_IIBT_SKIP1_BLOCK;\r |
536 | \r |
537 | typedef struct _EFI_HII_IIBT_SKIP2_BLOCK {\r |
538 | EFI_HII_IMAGE_BLOCK Header;\r |
539 | UINT16 SkipCount;\r |
540 | } EFI_HII_IIBT_SKIP2_BLOCK;\r |
541 | \r |
542 | typedef struct _EFI_HII_IMAGE_PALETTE_INFO_HEADER {\r |
543 | UINT16 PaletteCount;\r |
544 | } EFI_HII_IMAGE_PALETTE_INFO_HEADER;\r |
545 | \r |
546 | typedef struct _EFI_HII_IMAGE_PALETTE_INFO {\r |
547 | UINT16 PaletteSize;\r |
548 | EFI_HII_RGB_PIXEL PaletteValue[1];\r |
549 | } EFI_HII_IMAGE_PALETTE_INFO;\r |
550 | \r |
959ccb23 |
551 | //\r |
7d582d6b |
552 | // Forms Package\r |
553 | //\r |
554 | \r |
555 | typedef struct _EFI_HII_FORM_PACKAGE {\r |
556 | EFI_HII_PACKAGE_HEADER Header;\r |
557 | // EFI_IFR_OP_HEADER OpCodeHeader;\r |
558 | // More op-codes follow\r |
559 | } EFI_HII_FORM_PACKAGE;\r |
560 | \r |
959ccb23 |
561 | typedef struct {\r |
7d582d6b |
562 | UINT8 Hour;\r |
563 | UINT8 Minute;\r |
564 | UINT8 Second;\r |
565 | } EFI_HII_TIME;\r |
959ccb23 |
566 | \r |
567 | typedef struct {\r |
7d582d6b |
568 | UINT16 Year;\r |
569 | UINT8 Month;\r |
570 | UINT8 Day;\r |
571 | } EFI_HII_DATE;\r |
572 | \r |
573 | typedef union {\r |
574 | UINT8 u8;\r |
575 | UINT16 u16;\r |
576 | UINT32 u32;\r |
577 | UINT64 u64;\r |
578 | BOOLEAN b;\r |
579 | EFI_HII_TIME time;\r |
580 | EFI_HII_DATE date;\r |
581 | EFI_STRING_ID string;\r |
582 | } EFI_IFR_TYPE_VALUE;\r |
583 | \r |
584 | #define EFI_IFR_FORM_OP 0x01\r |
585 | #define EFI_IFR_SUBTITLE_OP 0x02\r |
586 | #define EFI_IFR_TEXT_OP 0x03\r |
587 | #define EFI_IFR_IMAGE_OP 0x04\r |
588 | #define EFI_IFR_ONE_OF_OP 0x05\r |
589 | #define EFI_IFR_CHECKBOX_OP 0x06\r |
590 | #define EFI_IFR_NUMERIC_OP 0x07\r |
591 | #define EFI_IFR_PASSWORD_OP 0x08\r |
592 | #define EFI_IFR_ONE_OF_OPTION_OP 0x09\r |
593 | #define EFI_IFR_SUPPRESS_IF_OP 0x0A\r |
594 | #define EFI_IFR_LOCKED_OP 0x0B\r |
595 | #define EFI_IFR_ACTION_OP 0x0C\r |
596 | #define EFI_IFR_RESET_BUTTON_OP 0x0D\r |
597 | #define EFI_IFR_FORM_SET_OP 0x0E\r |
598 | #define EFI_IFR_REF_OP 0x0F\r |
599 | #define EFI_IFR_NO_SUBMIT_IF_OP 0x10\r |
600 | #define EFI_IFR_INCONSISTENT_IF_OP 0x11\r |
601 | #define EFI_IFR_EQ_ID_VAL_OP 0x12\r |
602 | #define EFI_IFR_EQ_ID_ID_OP 0x13\r |
603 | #define EFI_IFR_EQ_ID_LIST_OP 0x14\r |
604 | #define EFI_IFR_AND_OP 0x15\r |
605 | #define EFI_IFR_OR_OP 0x16\r |
606 | #define EFI_IFR_NOT_OP 0x17\r |
607 | #define EFI_IFR_RULE_OP 0x18\r |
608 | #define EFI_IFR_GRAY_OUT_IF_OP 0x19\r |
609 | #define EFI_IFR_DATE_OP 0x1A\r |
610 | #define EFI_IFR_TIME_OP 0x1B\r |
611 | #define EFI_IFR_STRING_OP 0x1C\r |
612 | #define EFI_IFR_REFRESH_OP 0x1D\r |
613 | #define EFI_IFR_DISABLE_IF_OP 0x1E\r |
614 | #define EFI_IFR_TO_LOWER_OP 0x20\r |
615 | #define EFI_IFR_TO_UPPER_OP 0x21\r |
616 | #define EFI_IFR_ORDERED_LIST_OP 0x23\r |
617 | #define EFI_IFR_VARSTORE_OP 0x24\r |
618 | #define EFI_IFR_VARSTORE_NAME_VALUE_OP 0x25\r |
619 | #define EFI_IFR_VARSTORE_EFI_OP 0x26\r |
620 | #define EFI_IFR_VARSTORE_DEVICE_OP 0x27\r |
621 | #define EFI_IFR_VERSION_OP 0x28\r |
622 | #define EFI_IFR_END_OP 0x29\r |
623 | #define EFI_IFR_MATCH_OP 0x2A\r |
624 | #define EFI_IFR_EQUAL_OP 0x2F\r |
625 | #define EFI_IFR_NOT_EQUAL_OP 0x30\r |
626 | #define EFI_IFR_GREATER_THAN_OP 0x31\r |
627 | #define EFI_IFR_GREATER_EQUAL_OP 0x32\r |
628 | #define EFI_IFR_LESS_THAN_OP 0x33\r |
629 | #define EFI_IFR_LESS_EQUAL_OP 0x34\r |
630 | #define EFI_IFR_BITWISE_AND_OP 0x35\r |
631 | #define EFI_IFR_BITWISE_OR_OP 0x36\r |
632 | #define EFI_IFR_BITWISE_NOT_OP 0x37\r |
633 | #define EFI_IFR_SHIFT_LEFT_OP 0x38\r |
634 | #define EFI_IFR_SHIFT_RIGHT_OP 0x39\r |
635 | #define EFI_IFR_ADD_OP 0x3A\r |
636 | #define EFI_IFR_SUBTRACT_OP 0x3B\r |
637 | #define EFI_IFR_MULTIPLY_OP 0x3C\r |
638 | #define EFI_IFR_DIVIDE_OP 0x3D\r |
639 | #define EFI_IFR_MODULO_OP 0x3E\r |
640 | #define EFI_IFR_RULE_REF_OP 0x3F\r |
641 | #define EFI_IFR_QUESTION_REF1_OP 0x40\r |
642 | #define EFI_IFR_QUESTION_REF2_OP 0x41\r |
643 | #define EFI_IFR_UINT8_OP 0x42\r |
644 | #define EFI_IFR_UINT16_OP 0x43\r |
645 | #define EFI_IFR_UINT32_OP 0x44\r |
646 | #define EFI_IFR_UINT64_OP 0x45\r |
647 | #define EFI_IFR_TRUE_OP 0x46\r |
648 | #define EFI_IFR_FALSE_OP 0x47\r |
649 | #define EFI_IFR_TO_UINT_OP 0x48\r |
650 | #define EFI_IFR_TO_STRING_OP 0x49\r |
651 | #define EFI_IFR_TO_BOOLEAN_OP 0x4A\r |
652 | #define EFI_IFR_MID_OP 0x4B\r |
653 | #define EFI_IFR_FIND_OP 0x4C\r |
654 | #define EFI_IFR_TOKEN_OP 0x4D\r |
655 | #define EFI_IFR_STRING_REF1_OP 0x4E\r |
656 | #define EFI_IFR_STRING_REF2_OP 0x4F\r |
657 | #define EFI_IFR_CONDITIONAL_OP 0x50\r |
658 | #define EFI_IFR_QUESTION_REF3_OP 0x51\r |
659 | #define EFI_IFR_ZERO_OP 0x52\r |
660 | #define EFI_IFR_ONE_OP 0x53\r |
661 | #define EFI_IFR_ONES_OP 0x54\r |
662 | #define EFI_IFR_UNDEFINED_OP 0x55\r |
663 | #define EFI_IFR_LENGTH_OP 0x56\r |
664 | #define EFI_IFR_DUP_OP 0x57\r |
665 | #define EFI_IFR_THIS_OP 0x58\r |
666 | #define EFI_IFR_SPAN_OP 0x59\r |
667 | #define EFI_IFR_VALUE_OP 0x5A\r |
668 | #define EFI_IFR_DEFAULT_OP 0x5B\r |
669 | #define EFI_IFR_DEFAULTSTORE_OP 0x5C\r |
670 | #define EFI_IFR_CATENATE_OP 0x5E\r |
671 | #define EFI_IFR_GUID_OP 0x5F\r |
672 | \r |
673 | \r |
674 | typedef struct _EFI_IFR_OP_HEADER {\r |
675 | UINT8 OpCode;\r |
676 | UINT8 Length:7;\r |
677 | UINT8 Scope:1;\r |
678 | } EFI_IFR_OP_HEADER;\r |
679 | \r |
680 | typedef struct _EFI_IFR_STATEMENT_HEADER {\r |
681 | EFI_STRING_ID Prompt;\r |
682 | EFI_STRING_ID Help;\r |
683 | } EFI_IFR_STATEMENT_HEADER;\r |
684 | \r |
685 | typedef struct _EFI_IFR_QUESTION_HEADER {\r |
686 | EFI_IFR_STATEMENT_HEADER Header;\r |
687 | EFI_QUESTION_ID QuestionId;\r |
688 | EFI_VARSTORE_ID VarStoreId;\r |
689 | union {\r |
690 | EFI_STRING_ID VarName;\r |
691 | UINT16 VarOffset;\r |
692 | } VarStoreInfo;\r |
693 | UINT8 Flags;\r |
694 | } EFI_IFR_QUESTION_HEADER;\r |
695 | \r |
696 | #define EFI_IFR_FLAG_READ_ONLY 0x01\r |
697 | #define EFI_IFR_FLAG_CALLBACK 0x04\r |
698 | #define EFI_IFR_FLAG_RESET_REQUIRED 0x10\r |
699 | #define EFI_IFR_FLAG_OPTIONS_ONLY 0x80\r |
700 | \r |
701 | typedef struct _EFI_IFR_DEFAULTSTORE {\r |
702 | EFI_IFR_OP_HEADER Header;\r |
703 | EFI_STRING_ID DefaultName;\r |
704 | UINT16 DefaultId;\r |
705 | } EFI_IFR_DEFAULTSTORE;\r |
706 | \r |
707 | #define EFI_HII_DEFAULT_CLASS_STANDARD 0x0000\r |
708 | #define EFI_HII_DEFAULT_CLASS_MANUFACTURING 0x0001\r |
709 | #define EFI_HII_DEFAULT_CLASS_SAFE 0x0002\r |
710 | #define EFI_HII_DEFAULT_CLASS_PLATFORM_BEGIN 0x4000\r |
711 | #define EFI_HII_DEFAULT_CLASS_PLATFORM_END 0x7fff\r |
712 | #define EFI_HII_DEFAULT_CLASS_HARDWARE_BEGIN 0x8000\r |
713 | #define EFI_HII_DEFAULT_CLASS_HARDWARE_END 0xbfff\r |
714 | #define EFI_HII_DEFAULT_CLASS_FIRMWARE_BEGIN 0xc000\r |
715 | #define EFI_HII_DEFAULT_CLASS_FIRMWARE_END 0xffff\r |
716 | \r |
717 | typedef struct _EFI_IFR_VARSTORE {\r |
718 | EFI_IFR_OP_HEADER Header;\r |
719 | EFI_GUID Guid;\r |
720 | EFI_VARSTORE_ID VarStoreId;\r |
721 | UINT16 Size;\r |
722 | UINT8 Name[1];\r |
723 | } EFI_IFR_VARSTORE;\r |
724 | \r |
725 | typedef struct _EFI_IFR_VARSTORE_EFI {\r |
726 | EFI_IFR_OP_HEADER Header;\r |
54cf8780 |
727 | EFI_VARSTORE_ID VarStoreId;\r |
7d582d6b |
728 | EFI_GUID Guid;\r |
729 | UINT32 Attributes;\r |
730 | } EFI_IFR_VARSTORE_EFI;\r |
731 | \r |
732 | typedef struct _EFI_IFR_VARSTORE_NAME_VALUE {\r |
733 | EFI_IFR_OP_HEADER Header;\r |
54cf8780 |
734 | EFI_VARSTORE_ID VarStoreId;\r |
7d582d6b |
735 | EFI_GUID Guid;\r |
736 | } EFI_IFR_VARSTORE_NAME_VALUE;\r |
737 | \r |
738 | typedef struct _EFI_IFR_FORM_SET {\r |
739 | EFI_IFR_OP_HEADER Header;\r |
740 | EFI_GUID Guid;\r |
741 | EFI_STRING_ID FormSetTitle;\r |
742 | EFI_STRING_ID Help;\r |
743 | } EFI_IFR_FORM_SET;\r |
744 | \r |
745 | typedef struct _EFI_IFR_END {\r |
746 | EFI_IFR_OP_HEADER Header;\r |
747 | } EFI_IFR_END;\r |
748 | \r |
749 | typedef struct _EFI_IFR_FORM {\r |
750 | EFI_IFR_OP_HEADER Header;\r |
751 | UINT16 FormId;\r |
752 | EFI_STRING_ID FormTitle;\r |
753 | } EFI_IFR_FORM;\r |
754 | \r |
755 | typedef struct _EFI_IFR_IMAGE {\r |
756 | EFI_IFR_OP_HEADER Header;\r |
757 | EFI_IMAGE_ID Id;\r |
758 | } EFI_IFR_IMAGE;\r |
759 | \r |
760 | typedef struct _EFI_IFR_LOCKED {\r |
761 | EFI_IFR_OP_HEADER Header;\r |
762 | } EFI_IFR_LOCKED;\r |
763 | \r |
764 | typedef struct _EFI_IFR_RULE {\r |
765 | EFI_IFR_OP_HEADER Header;\r |
766 | UINT8 RuleId;\r |
767 | } EFI_IFR_RULE;\r |
768 | \r |
769 | typedef struct _EFI_IFR_DEFAULT {\r |
770 | EFI_IFR_OP_HEADER Header;\r |
771 | UINT16 DefaultId;\r |
772 | UINT8 Type;\r |
773 | EFI_IFR_TYPE_VALUE Value;\r |
774 | } EFI_IFR_DEFAULT;\r |
775 | \r |
776 | typedef struct _EFI_IFR_VALUE {\r |
777 | EFI_IFR_OP_HEADER Header;\r |
778 | } EFI_IFR_VALUE;\r |
779 | \r |
780 | typedef struct _EFI_IFR_SUBTITLE {\r |
781 | EFI_IFR_OP_HEADER Header;\r |
782 | EFI_IFR_STATEMENT_HEADER Statement;\r |
783 | UINT8 Flags;\r |
784 | } EFI_IFR_SUBTITLE;\r |
785 | \r |
786 | #define EFI_IFR_FLAGS_HORIZONTAL 0x01\r |
787 | \r |
788 | typedef struct _EFI_IFR_CHECKBOX {\r |
789 | EFI_IFR_OP_HEADER Header;\r |
790 | EFI_IFR_QUESTION_HEADER Question;\r |
791 | UINT8 Flags;\r |
792 | } EFI_IFR_CHECKBOX;\r |
793 | \r |
794 | #define EFI_IFR_CHECKBOX_DEFAULT 0x01\r |
795 | #define EFI_IFR_CHECKBOX_DEFAULT_MFG 0x02\r |
796 | \r |
797 | typedef struct _EFI_IFR_TEXT {\r |
798 | EFI_IFR_OP_HEADER Header;\r |
799 | EFI_IFR_STATEMENT_HEADER Statement;\r |
800 | EFI_STRING_ID TextTwo;\r |
801 | } EFI_IFR_TEXT;\r |
802 | \r |
803 | typedef struct _EFI_IFR_REF {\r |
804 | EFI_IFR_OP_HEADER Header;\r |
805 | EFI_IFR_QUESTION_HEADER Question;\r |
806 | EFI_FORM_ID FormId;\r |
807 | } EFI_IFR_REF;\r |
808 | \r |
809 | typedef struct _EFI_IFR_REF2 {\r |
810 | EFI_IFR_OP_HEADER Header;\r |
811 | EFI_IFR_QUESTION_HEADER Question;\r |
812 | EFI_FORM_ID FormId;\r |
813 | EFI_QUESTION_ID QuestionId;\r |
814 | } EFI_IFR_REF2;\r |
815 | \r |
816 | typedef struct _EFI_IFR_REF3 {\r |
817 | EFI_IFR_OP_HEADER Header;\r |
818 | EFI_IFR_QUESTION_HEADER Question;\r |
819 | EFI_FORM_ID FormId;\r |
820 | EFI_QUESTION_ID QuestionId;\r |
821 | EFI_GUID FormSetId;\r |
822 | } EFI_IFR_REF3;\r |
823 | \r |
824 | typedef struct _EFI_IFR_REF4 {\r |
825 | EFI_IFR_OP_HEADER Header;\r |
826 | EFI_IFR_QUESTION_HEADER Question;\r |
827 | EFI_FORM_ID FormId;\r |
828 | EFI_QUESTION_ID QuestionId;\r |
829 | EFI_GUID FormSetId;\r |
830 | EFI_STRING_ID DevicePath;\r |
831 | } EFI_IFR_REF4;\r |
832 | \r |
833 | typedef struct _EFI_IFR_RESET_BUTTON {\r |
834 | EFI_IFR_OP_HEADER Header;\r |
835 | EFI_IFR_QUESTION_HEADER Question;\r |
836 | EFI_DEFAULT_ID DefaultId;\r |
837 | } EFI_IFR_RESET_BUTTON;\r |
838 | \r |
839 | typedef struct _EFI_IFR_ACTION {\r |
840 | EFI_IFR_OP_HEADER Header;\r |
841 | EFI_IFR_QUESTION_HEADER Question;\r |
842 | EFI_STRING_ID QuestionConfig;\r |
843 | } EFI_IFR_ACTION;\r |
844 | \r |
845 | typedef struct _EFI_IFR_ACTION_1 {\r |
846 | EFI_IFR_OP_HEADER Header;\r |
847 | EFI_IFR_QUESTION_HEADER Question;\r |
848 | } EFI_IFR_ACTION_1;\r |
849 | \r |
850 | typedef struct _EFI_IFR_DATE {\r |
851 | EFI_IFR_OP_HEADER Header;\r |
852 | EFI_IFR_QUESTION_HEADER Question;\r |
853 | UINT8 Flags;\r |
959ccb23 |
854 | } EFI_IFR_DATE;\r |
855 | \r |
7d582d6b |
856 | #define EFI_QF_DATE_YEAR_SUPPRESS 0x01\r |
857 | #define EFI_QF_DATE_MONTH_SUPPRESS 0x02\r |
858 | #define EFI_QF_DATE_DAY_SUPPRESS 0x04\r |
959ccb23 |
859 | \r |
7d582d6b |
860 | #define EFI_QF_DATE_STORAGE 0x30\r |
861 | #define QF_DATE_STORAGE_NORMAL 0x00\r |
862 | #define QF_DATE_STORAGE_TIME 0x10\r |
863 | #define QF_DATE_STORAGE_WAKEUP 0x20\r |
864 | \r |
865 | typedef union {\r |
866 | struct {\r |
867 | UINT8 MinValue;\r |
868 | UINT8 MaxValue;\r |
869 | UINT8 Step;\r |
870 | } u8;\r |
871 | struct {\r |
872 | UINT16 MinValue;\r |
873 | UINT16 MaxValue;\r |
874 | UINT16 Step;\r |
875 | } u16;\r |
876 | struct {\r |
877 | UINT32 MinValue;\r |
878 | UINT32 MaxValue;\r |
879 | UINT32 Step;\r |
880 | } u32;\r |
881 | struct {\r |
882 | UINT64 MinValue;\r |
883 | UINT64 MaxValue;\r |
884 | UINT64 Step;\r |
885 | } u64;\r |
886 | } MINMAXSTEP_DATA;\r |
887 | \r |
888 | typedef struct _EFI_IFR_NUMERIC {\r |
889 | EFI_IFR_OP_HEADER Header;\r |
890 | EFI_IFR_QUESTION_HEADER Question;\r |
891 | UINT8 Flags;\r |
892 | MINMAXSTEP_DATA data;\r |
893 | } EFI_IFR_NUMERIC;\r |
894 | \r |
895 | #define EFI_IFR_NUMERIC_SIZE 0x03\r |
896 | #define EFI_IFR_NUMERIC_SIZE_1 0x00\r |
897 | #define EFI_IFR_NUMERIC_SIZE_2 0x01\r |
898 | #define EFI_IFR_NUMERIC_SIZE_4 0x02\r |
899 | #define EFI_IFR_NUMERIC_SIZE_8 0x03\r |
900 | \r |
901 | #define EFI_IFR_DISPLAY 0x30\r |
902 | #define EFI_IFR_DISPLAY_INT_DEC 0x00\r |
903 | #define EFI_IFR_DISPLAY_UINT_DEC 0x10\r |
904 | #define EFI_IFR_DISPLAY_UINT_HEX 0x20\r |
905 | \r |
906 | typedef struct _EFI_IFR_ONE_OF {\r |
907 | EFI_IFR_OP_HEADER Header;\r |
908 | EFI_IFR_QUESTION_HEADER Question;\r |
909 | UINT8 Flags;\r |
910 | MINMAXSTEP_DATA data;\r |
911 | } EFI_IFR_ONE_OF;\r |
912 | \r |
913 | typedef struct _EFI_IFR_STRING {\r |
914 | EFI_IFR_OP_HEADER Header;\r |
915 | EFI_IFR_QUESTION_HEADER Question;\r |
916 | UINT8 MinSize;\r |
917 | UINT8 MaxSize;\r |
918 | UINT8 Flags;\r |
959ccb23 |
919 | } EFI_IFR_STRING;\r |
920 | \r |
7d582d6b |
921 | #define EFI_IFR_STRING_MULTI_LINE 0x01\r |
959ccb23 |
922 | \r |
7d582d6b |
923 | typedef struct _EFI_IFR_PASSWORD {\r |
924 | EFI_IFR_OP_HEADER Header;\r |
925 | EFI_IFR_QUESTION_HEADER Question;\r |
926 | UINT16 MinSize;\r |
927 | UINT16 MaxSize;\r |
928 | } EFI_IFR_PASSWORD;\r |
959ccb23 |
929 | \r |
7d582d6b |
930 | typedef struct _EFI_IFR_ORDERED_LIST {\r |
931 | EFI_IFR_OP_HEADER Header;\r |
932 | EFI_IFR_QUESTION_HEADER Question;\r |
933 | UINT8 MaxContainers;\r |
934 | UINT8 Flags;\r |
935 | } EFI_IFR_ORDERED_LIST;\r |
959ccb23 |
936 | \r |
7d582d6b |
937 | #define EFI_IFR_UNIQUE_SET 0x01\r |
938 | #define EFI_IFR_NO_EMPTY_SET 0x02\r |
959ccb23 |
939 | \r |
7d582d6b |
940 | typedef struct _EFI_IFR_TIME {\r |
941 | EFI_IFR_OP_HEADER Header;\r |
942 | EFI_IFR_QUESTION_HEADER Question;\r |
943 | UINT8 Flags;\r |
944 | } EFI_IFR_TIME;\r |
959ccb23 |
945 | \r |
7d582d6b |
946 | #define QF_TIME_HOUR_SUPPRESS 0x01\r |
947 | #define QF_TIME_MINUTE_SUPPRESS 0x02\r |
948 | #define QF_TIME_SECOND_SUPPRESS 0x04\r |
949 | \r |
950 | #define QF_TIME_STORAGE 0x30\r |
951 | #define QF_TIME_STORAGE_NORMAL 0x00\r |
952 | #define QF_TIME_STORAGE_TIME 0x10\r |
953 | #define QF_TIME_STORAGE_WAKEUP 0x20\r |
954 | \r |
955 | typedef struct _EFI_IFR_DISABLE_IF {\r |
956 | EFI_IFR_OP_HEADER Header;\r |
957 | } EFI_IFR_DISABLE_IF;\r |
958 | \r |
959 | typedef struct _EFI_IFR_SUPPRESS_IF {\r |
960 | EFI_IFR_OP_HEADER Header;\r |
961 | } EFI_IFR_SUPPRESS_IF;\r |
962 | \r |
963 | typedef struct _EFI_IFR_GRAY_OUT_IF {\r |
964 | EFI_IFR_OP_HEADER Header;\r |
965 | } EFI_IFR_GRAY_OUT_IF;\r |
966 | \r |
967 | typedef struct _EFI_IFR_INCONSISTENT_IF {\r |
968 | EFI_IFR_OP_HEADER Header;\r |
969 | EFI_STRING_ID Error;\r |
970 | } EFI_IFR_INCONSISTENT_IF;\r |
971 | \r |
972 | typedef struct _EFI_IFR_NO_SUBMIT_IF {\r |
973 | EFI_IFR_OP_HEADER Header;\r |
974 | EFI_STRING_ID Error;\r |
975 | } EFI_IFR_NO_SUBMIT_IF;\r |
976 | \r |
977 | typedef struct _EFI_IFR_REFRESH {\r |
978 | EFI_IFR_OP_HEADER Header;\r |
979 | UINT8 RefreshInterval;\r |
980 | } EFI_IFR_REFRESH;\r |
981 | \r |
982 | typedef struct _EFI_IFR_VARSTORE_DEVICE {\r |
983 | EFI_IFR_OP_HEADER Header;\r |
984 | EFI_STRING_ID DevicePath;\r |
985 | } EFI_IFR_VARSTORE_DEVICE;\r |
986 | \r |
987 | typedef struct _EFI_IFR_ONE_OF_OPTION {\r |
988 | EFI_IFR_OP_HEADER Header;\r |
989 | EFI_STRING_ID Option;\r |
990 | UINT8 Flags;\r |
991 | UINT8 Type;\r |
992 | EFI_IFR_TYPE_VALUE Value;\r |
993 | } EFI_IFR_ONE_OF_OPTION;\r |
994 | \r |
995 | #define EFI_IFR_TYPE_NUM_SIZE_8 0x00\r |
996 | #define EFI_IFR_TYPE_NUM_SIZE_16 0x01\r |
997 | #define EFI_IFR_TYPE_NUM_SIZE_32 0x02\r |
998 | #define EFI_IFR_TYPE_NUM_SIZE_64 0x03\r |
999 | #define EFI_IFR_TYPE_BOOLEAN 0x04\r |
1000 | #define EFI_IFR_TYPE_TIME 0x05\r |
1001 | #define EFI_IFR_TYPE_DATE 0x06\r |
1002 | #define EFI_IFR_TYPE_STRING 0x07\r |
1003 | #define EFI_IFR_TYPE_OTHER 0x08\r |
1004 | \r |
1005 | #define EFI_IFR_OPTION_DEFAULT 0x10\r |
1006 | #define EFI_IFR_OPTION_DEFAULT_MFG 0x20\r |
1007 | \r |
1008 | typedef struct _EFI_IFR_GUID {\r |
1009 | EFI_IFR_OP_HEADER Header;\r |
1010 | EFI_GUID Guid;\r |
1011 | //Optional Data Follows\r |
1012 | } EFI_IFR_GUID;\r |
1013 | \r |
1014 | typedef struct _EFI_IFR_DUP {\r |
1015 | EFI_IFR_OP_HEADER Header;\r |
1016 | } EFI_IFR_DUP;\r |
1017 | \r |
1018 | typedef struct _EFI_IFR_EQ_ID_ID {\r |
1019 | EFI_IFR_OP_HEADER Header;\r |
1020 | EFI_QUESTION_ID QuestionId1;\r |
1021 | EFI_QUESTION_ID QuestionId2;\r |
1022 | } EFI_IFR_EQ_ID_ID;\r |
1023 | \r |
1024 | typedef struct _EFI_IFR_EQ_ID_VAL {\r |
1025 | EFI_IFR_OP_HEADER Header;\r |
1026 | EFI_QUESTION_ID QuestionId;\r |
1027 | UINT16 Value;\r |
959ccb23 |
1028 | } EFI_IFR_EQ_ID_VAL;\r |
1029 | \r |
7d582d6b |
1030 | typedef struct _EFI_IFR_EQ_ID_LIST {\r |
1031 | EFI_IFR_OP_HEADER Header;\r |
1032 | EFI_QUESTION_ID QuestionId;\r |
1033 | UINT16 ListLength;\r |
1034 | UINT16 ValueList[1];\r |
959ccb23 |
1035 | } EFI_IFR_EQ_ID_LIST;\r |
1036 | \r |
7d582d6b |
1037 | typedef struct _EFI_IFR_QUESTION_REF1 {\r |
1038 | EFI_IFR_OP_HEADER Header;\r |
1039 | EFI_QUESTION_ID QuestionId;\r |
1040 | } EFI_IFR_QUESTION_REF1;\r |
959ccb23 |
1041 | \r |
7d582d6b |
1042 | typedef struct _EFI_IFR_UINT8 {\r |
1043 | EFI_IFR_OP_HEADER Header;\r |
1044 | UINT8 Value;\r |
1045 | } EFI_IFR_UINT8;\r |
959ccb23 |
1046 | \r |
7d582d6b |
1047 | typedef struct _EFI_IFR_UINT16 {\r |
1048 | EFI_IFR_OP_HEADER Header;\r |
1049 | UINT16 Value;\r |
1050 | } EFI_IFR_UINT16;\r |
1051 | \r |
1052 | typedef struct _EFI_IFR_QUESTION_REF2 {\r |
1053 | EFI_IFR_OP_HEADER Header;\r |
1054 | } EFI_IFR_QUESTION_REF2;\r |
1055 | \r |
1056 | typedef struct _EFI_IFR_UINT32 {\r |
1057 | EFI_IFR_OP_HEADER Header;\r |
1058 | UINT32 Value;\r |
1059 | } EFI_IFR_UINT32;\r |
1060 | \r |
1061 | typedef struct _EFI_IFR_UINT64 {\r |
1062 | EFI_IFR_OP_HEADER Header;\r |
1063 | UINT64 Value;\r |
1064 | } EFI_IFR_UINT64;\r |
1065 | \r |
1066 | typedef struct _EFI_IFR_QUESTION_REF3 {\r |
1067 | EFI_IFR_OP_HEADER Header;\r |
1068 | } EFI_IFR_QUESTION_REF3;\r |
1069 | \r |
1070 | typedef struct _EFI_IFR_QUESTION_REF3_2 {\r |
1071 | EFI_IFR_OP_HEADER Header;\r |
1072 | EFI_STRING_ID DevicePath;\r |
1073 | } EFI_IFR_QUESTION_REF3_2;\r |
1074 | \r |
1075 | typedef struct _EFI_IFR_QUESTION_REF3_3 {\r |
1076 | EFI_IFR_OP_HEADER Header;\r |
1077 | EFI_STRING_ID DevicePath;\r |
1078 | EFI_GUID Guid;\r |
1079 | } EFI_IFR_QUESTION_REF3_3;\r |
1080 | \r |
1081 | typedef struct _EFI_IFR_RULE_REF {\r |
1082 | EFI_IFR_OP_HEADER Header;\r |
1083 | UINT8 RuleId;\r |
1084 | } EFI_IFR_RULE_REF;\r |
1085 | \r |
1086 | typedef struct _EFI_IFR_STRING_REF1 {\r |
1087 | EFI_IFR_OP_HEADER Header;\r |
1088 | EFI_STRING_ID StringId;\r |
1089 | } EFI_IFR_STRING_REF1;\r |
1090 | \r |
1091 | typedef struct _EFI_IFR_STRING_REF2 {\r |
1092 | EFI_IFR_OP_HEADER Header;\r |
1093 | } EFI_IFR_STRING_REF2;\r |
1094 | \r |
1095 | typedef struct _EFI_IFR_THIS {\r |
1096 | EFI_IFR_OP_HEADER Header;\r |
1097 | } EFI_IFR_THIS;\r |
1098 | \r |
1099 | typedef struct _EFI_IFR_TRUE {\r |
1100 | EFI_IFR_OP_HEADER Header;\r |
1101 | } EFI_IFR_TRUE;\r |
1102 | \r |
1103 | typedef struct _EFI_IFR_FALSE {\r |
1104 | EFI_IFR_OP_HEADER Header;\r |
1105 | } EFI_IFR_FALSE;\r |
1106 | \r |
1107 | typedef struct _EFI_IFR_ONE {\r |
1108 | EFI_IFR_OP_HEADER Header;\r |
1109 | } EFI_IFR_ONE;\r |
1110 | \r |
1111 | typedef struct _EFI_IFR_ONES {\r |
1112 | EFI_IFR_OP_HEADER Header;\r |
1113 | } EFI_IFR_ONES;\r |
1114 | \r |
1115 | typedef struct _EFI_IFR_ZERO {\r |
1116 | EFI_IFR_OP_HEADER Header;\r |
1117 | } EFI_IFR_ZERO;\r |
1118 | \r |
1119 | typedef struct _EFI_IFR_UNDEFINED {\r |
1120 | EFI_IFR_OP_HEADER Header;\r |
1121 | } EFI_IFR_UNDEFINED;\r |
1122 | \r |
1123 | typedef struct _EFI_IFR_VERSION {\r |
1124 | EFI_IFR_OP_HEADER Header;\r |
1125 | } EFI_IFR_VERSION;\r |
1126 | \r |
1127 | typedef struct _EFI_IFR_LENGTH {\r |
1128 | EFI_IFR_OP_HEADER Header;\r |
1129 | } EFI_IFR_LENGTH;\r |
1130 | \r |
1131 | typedef struct _EFI_IFR_NOT {\r |
1132 | EFI_IFR_OP_HEADER Header;\r |
1133 | } EFI_IFR_NOT;\r |
1134 | \r |
1135 | typedef struct _EFI_IFR_BITWISE_NOT {\r |
1136 | EFI_IFR_OP_HEADER Header;\r |
1137 | } EFI_IFR_BITWISE_NOT;\r |
1138 | \r |
1139 | typedef struct _EFI_IFR_TO_BOOLEAN {\r |
1140 | EFI_IFR_OP_HEADER Header;\r |
1141 | } EFI_IFR_TO_BOOLEAN;\r |
1142 | \r |
1143 | #define EFI_IFR_STRING_UNSIGNED_DEC 0\r |
1144 | #define EFI_IFR_STRING_SIGNED_DEC 1\r |
1145 | #define EFI_IFR_STRING_LOWERCASE_HEX 2\r |
1146 | #define EFI_IFR_STRING_UPPERCASE_HEX 3\r |
1147 | \r |
1148 | #define EFI_IFR_STRING_ASCII 0\r |
1149 | #define EFI_IFR_STRING_UNICODE 8\r |
1150 | \r |
1151 | typedef struct _EFI_IFR_TO_STRING {\r |
1152 | EFI_IFR_OP_HEADER Header;\r |
1153 | UINT8 Format;\r |
1154 | } EFI_IFR_TO_STRING;\r |
1155 | \r |
1156 | typedef struct _EFI_IFR_TO_UINT {\r |
1157 | EFI_IFR_OP_HEADER Header;\r |
1158 | } EFI_IFR_TO_UINT;\r |
1159 | \r |
1160 | typedef struct _EFI_IFR_TO_UPPER {\r |
1161 | EFI_IFR_OP_HEADER Header;\r |
1162 | } EFI_IFR_TO_UPPER;\r |
1163 | \r |
1164 | typedef struct _EFI_IFR_TO_LOWER {\r |
1165 | EFI_IFR_OP_HEADER Header;\r |
1166 | } EFI_IFR_TO_LOWER;\r |
1167 | \r |
1168 | typedef struct _EFI_IFR_ADD {\r |
1169 | EFI_IFR_OP_HEADER Header;\r |
1170 | } EFI_IFR_ADD;\r |
1171 | \r |
1172 | typedef struct _EFI_IFR_AND {\r |
1173 | EFI_IFR_OP_HEADER Header;\r |
959ccb23 |
1174 | } EFI_IFR_AND;\r |
1175 | \r |
7d582d6b |
1176 | typedef struct _EFI_IFR_BITWISE_AND {\r |
1177 | EFI_IFR_OP_HEADER Header;\r |
1178 | } EFI_IFR_BITWISE_AND;\r |
1179 | \r |
1180 | typedef struct _EFI_IFR_BITWISE_OR {\r |
1181 | EFI_IFR_OP_HEADER Header;\r |
1182 | } EFI_IFR_BITWISE_OR;\r |
1183 | \r |
1184 | typedef struct _EFI_IFR_CATENATE {\r |
1185 | EFI_IFR_OP_HEADER Header;\r |
1186 | } EFI_IFR_CATENATE;\r |
1187 | \r |
1188 | typedef struct _EFI_IFR_DIVIDE {\r |
1189 | EFI_IFR_OP_HEADER Header;\r |
1190 | } EFI_IFR_DIVIDE;\r |
1191 | \r |
1192 | typedef struct _EFI_IFR_EQUAL {\r |
1193 | EFI_IFR_OP_HEADER Header;\r |
1194 | } EFI_IFR_EQUAL;\r |
1195 | \r |
1196 | typedef struct _EFI_IFR_GREATER_EQUAL {\r |
1197 | EFI_IFR_OP_HEADER Header;\r |
1198 | } EFI_IFR_GREATER_EQUAL;\r |
1199 | \r |
1200 | typedef struct _EFI_IFR_GREATER_THAN {\r |
1201 | EFI_IFR_OP_HEADER Header;\r |
1202 | } EFI_IFR_GREATER_THAN;\r |
1203 | \r |
1204 | typedef struct _EFI_IFR_LESS_EQUAL {\r |
1205 | EFI_IFR_OP_HEADER Header;\r |
1206 | } EFI_IFR_LESS_EQUAL;\r |
1207 | \r |
1208 | typedef struct _EFI_IFR_LESS_THAN {\r |
1209 | EFI_IFR_OP_HEADER Header;\r |
1210 | } EFI_IFR_LESS_THAN;\r |
1211 | \r |
1212 | typedef struct _EFI_IFR_MATCH {\r |
1213 | EFI_IFR_OP_HEADER Header;\r |
1214 | } EFI_IFR_MATCH;\r |
1215 | \r |
1216 | typedef struct _EFI_IFR_MULTIPLY {\r |
1217 | EFI_IFR_OP_HEADER Header;\r |
1218 | } EFI_IFR_MULTIPLY;\r |
1219 | \r |
1220 | typedef struct _EFI_IFR_MODULO {\r |
1221 | EFI_IFR_OP_HEADER Header;\r |
1222 | } EFI_IFR_MODULO;\r |
1223 | \r |
1224 | typedef struct _EFI_IFR_NOT_EQUAL {\r |
1225 | EFI_IFR_OP_HEADER Header;\r |
1226 | } EFI_IFR_NOT_EQUAL;\r |
1227 | \r |
1228 | typedef struct _EFI_IFR_OR {\r |
1229 | EFI_IFR_OP_HEADER Header;\r |
959ccb23 |
1230 | } EFI_IFR_OR;\r |
1231 | \r |
7d582d6b |
1232 | typedef struct _EFI_IFR_SHIFT_LEFT {\r |
1233 | EFI_IFR_OP_HEADER Header;\r |
1234 | } EFI_IFR_SHIFT_LEFT;\r |
959ccb23 |
1235 | \r |
7d582d6b |
1236 | typedef struct _EFI_IFR_SHIFT_RIGHT {\r |
1237 | EFI_IFR_OP_HEADER Header;\r |
1238 | } EFI_IFR_SHIFT_RIGHT;\r |
959ccb23 |
1239 | \r |
7d582d6b |
1240 | typedef struct _EFI_IFR_SUBTRACT {\r |
1241 | EFI_IFR_OP_HEADER Header;\r |
1242 | } EFI_IFR_SUBTRACT;\r |
959ccb23 |
1243 | \r |
7d582d6b |
1244 | typedef struct _EFI_IFR_CONDITIONAL {\r |
1245 | EFI_IFR_OP_HEADER Header;\r |
1246 | } EFI_IFR_CONDITIONAL;\r |
959ccb23 |
1247 | \r |
7d582d6b |
1248 | #define EFI_IFR_FF_CASE_SENSITIVE 0x00\r |
1249 | #define EFI_IFR_FF_CASE_INSENSITIVE 0x01\r |
959ccb23 |
1250 | \r |
7d582d6b |
1251 | typedef struct _EFI_IFR_FIND {\r |
1252 | EFI_IFR_OP_HEADER Header;\r |
1253 | UINT8 Format;\r |
1254 | } EFI_IFR_FIND;\r |
1255 | \r |
1256 | typedef struct _EFI_IFR_MID {\r |
1257 | EFI_IFR_OP_HEADER Header;\r |
1258 | } EFI_IFR_MID;\r |
1259 | \r |
1260 | typedef struct _EFI_IFR_TOKEN {\r |
1261 | EFI_IFR_OP_HEADER Header;\r |
1262 | } EFI_IFR_TOKEN;\r |
1263 | \r |
1264 | #define EFI_IFR_FLAGS_FIRST_MATCHING 0x00\r |
1265 | #define EFI_IFR_FLAGS_FIRST_NON_MATCHING 0x01\r |
1266 | \r |
1267 | typedef struct _EFI_IFR_SPAN {\r |
1268 | EFI_IFR_OP_HEADER Header;\r |
1269 | UINT8 Flags;\r |
1270 | } EFI_IFR_SPAN;\r |
959ccb23 |
1271 | \r |
1272 | //\r |
7d582d6b |
1273 | // Keyboard Package\r |
959ccb23 |
1274 | //\r |
7d582d6b |
1275 | \r |
1276 | typedef enum { \r |
1277 | EfiKeyLCtrl,\r |
1278 | EfiKeyA0, \r |
1279 | EfiKeyLAlt,\r |
1280 | EfiKeySpaceBar,\r |
1281 | EfiKeyA2,\r |
1282 | EfiKeyA3,\r |
1283 | EfiKeyA4,\r |
1284 | EfiKeyRCtrl,\r |
1285 | EfiKeyLeftArrow,\r |
1286 | EfiKeyDownArrow,\r |
1287 | EfiKeyRightArrow,\r |
1288 | EfiKeyZero,\r |
1289 | EfiKeyPeriod,\r |
1290 | EfiKeyEnter,\r |
1291 | EfiKeyLShift,\r |
1292 | EfiKeyB0,\r |
1293 | EfiKeyB1,\r |
1294 | EfiKeyB2,\r |
1295 | EfiKeyB3,\r |
1296 | EfiKeyB4,\r |
1297 | EfiKeyB5,\r |
1298 | EfiKeyB6,\r |
1299 | EfiKeyB7,\r |
1300 | EfiKeyB8,\r |
1301 | EfiKeyB9,\r |
1302 | EfiKeyB10,\r |
54cf8780 |
1303 | EfiKeyRShift,\r |
7d582d6b |
1304 | EfiKeyUpArrow,\r |
1305 | EfiKeyOne,\r |
1306 | EfiKeyTwo,\r |
1307 | EfiKeyThree,\r |
1308 | EfiKeyCapsLock,\r |
1309 | EfiKeyC1,\r |
1310 | EfiKeyC2,\r |
1311 | EfiKeyC3,\r |
1312 | EfiKeyC4,\r |
1313 | EfiKeyC5,\r |
1314 | EfiKeyC6,\r |
1315 | EfiKeyC7,\r |
1316 | EfiKeyC8,\r |
1317 | EfiKeyC9,\r |
1318 | EfiKeyC10,\r |
1319 | EfiKeyC11,\r |
1320 | EfiKeyC12,\r |
1321 | EfiKeyFour,\r |
1322 | EfiKeyFive,\r |
1323 | EfiKeySix,\r |
1324 | EfiKeyPlus,\r |
1325 | EfiKeyTab,\r |
1326 | EfiKeyD1,\r |
1327 | EfiKeyD2,\r |
1328 | EfiKeyD3,\r |
1329 | EfiKeyD4,\r |
1330 | EfiKeyD5,\r |
1331 | EfiKeyD6,\r |
1332 | EfiKeyD7,\r |
1333 | EfiKeyD8,\r |
1334 | EfiKeyD9,\r |
1335 | EfiKeyD10,\r |
1336 | EfiKeyD11,\r |
1337 | EfiKeyD12,\r |
1338 | EfiKeyD13,\r |
1339 | EfiKeyDel,\r |
1340 | EfiKeyEnd,\r |
1341 | EfiKeyPgDn,\r |
1342 | EfiKeySeven,\r |
1343 | EfiKeyEight,\r |
1344 | EfiKeyNine,\r |
1345 | EfiKeyE0,\r |
1346 | EfiKeyE1,\r |
1347 | EfiKeyE2,\r |
1348 | EfiKeyE3,\r |
1349 | EfiKeyE4,\r |
1350 | EfiKeyE5,\r |
1351 | EfiKeyE6,\r |
1352 | EfiKeyE7,\r |
1353 | EfiKeyE8,\r |
1354 | EfiKeyE9,\r |
1355 | EfiKeyE10,\r |
1356 | EfiKeyE11,\r |
1357 | EfiKeyE12,\r |
1358 | EfiKeyBackSpace,\r |
1359 | EfiKeyIns,\r |
1360 | EfiKeyHome,\r |
1361 | EfiKeyPgUp,\r |
1362 | EfiKeyNLck,\r |
1363 | EfiKeySlash,\r |
1364 | EfiKeyAsterisk,\r |
1365 | EfiKeyMinus,\r |
1366 | EfiKeyEsc,\r |
1367 | EfiKeyF1,\r |
1368 | EfiKeyF2,\r |
1369 | EfiKeyF3,\r |
1370 | EfiKeyF4,\r |
1371 | EfiKeyF5,\r |
1372 | EfiKeyF6,\r |
1373 | EfiKeyF7,\r |
1374 | EfiKeyF8,\r |
1375 | EfiKeyF9,\r |
1376 | EfiKeyF10,\r |
1377 | EfiKeyF11,\r |
1378 | EfiKeyF12,\r |
1379 | EfiKeyPrint,\r |
1380 | EfiKeySLck,\r |
1381 | EfiKeyPause\r |
1382 | } EFI_KEY;\r |
1383 | \r |
959ccb23 |
1384 | typedef struct {\r |
7d582d6b |
1385 | EFI_KEY Key;\r |
1386 | CHAR16 Unicode;\r |
1387 | CHAR16 ShiftedUnicode;\r |
1388 | CHAR16 AltGrUnicode;\r |
1389 | CHAR16 ShiftedAltGrUnicode;\r |
1390 | UINT16 Modifier;\r |
1391 | UINT16 AffectedAttribute;\r |
1392 | } EFI_KEY_DESCRIPTOR;\r |
1393 | \r |
1394 | //\r |
1395 | // A key which is affected by all the standard shift modifiers. \r |
1396 | // Most keys would be expected to have this bit active.\r |
1397 | //\r |
1398 | #define EFI_AFFECTED_BY_STANDARD_SHIFT 0x0001\r |
1399 | //\r |
1400 | // This key is affected by the caps lock so that if a keyboard driver\r |
ac644614 |
1401 | // would need to disambiguate between a key which had a "1" defined\r |
1402 | // versus a "a" character. Having this bit turned on would tell\r |
7d582d6b |
1403 | // the keyboard driver to use the appropriate shifted state or not.\r |
1404 | //\r |
1405 | #define EFI_AFFECTED_BY_CAPS_LOCK 0x0002\r |
1406 | //\r |
1407 | // Similar to the case of CAPS lock, if this bit is active, the key\r |
1408 | // is affected by the num lock being turned on.\r |
1409 | //\r |
1410 | #define EFI_AFFECTED_BY_NUM_LOCK 0x0004\r |
959ccb23 |
1411 | \r |
1412 | typedef struct {\r |
7d582d6b |
1413 | UINT16 LayoutLength;\r |
1414 | EFI_GUID Guid;\r |
1415 | UINT32 LayoutDescriptorStringOffset;\r |
1416 | UINT8 DescriptorCount;\r |
1417 | // EFI_KEY_DESCRIPTOR Descriptors[];\r |
1418 | } EFI_HII_KEYBOARD_LAYOUT;\r |
959ccb23 |
1419 | \r |
1420 | typedef struct {\r |
7d582d6b |
1421 | EFI_HII_PACKAGE_HEADER Header;\r |
1422 | UINT16 LayoutCount;\r |
1423 | // EFI_HII_KEYBOARD_LAYOUT Layout[];\r |
1424 | } EFI_HII_KEYBOARD_PACKAGE_HDR;\r |
959ccb23 |
1425 | \r |
54cf8780 |
1426 | //typedef struct {\r |
1427 | // CHAR16 Language[]; // RFC4646 Language Code\r |
1428 | // CHAR16 Space;\r |
1429 | // CHAR16 DescriptionString[];\r |
1430 | //} EFI_DESCRIPTION_STRING;\r |
959ccb23 |
1431 | \r |
54cf8780 |
1432 | //typedef struct {\r |
1433 | // UINT16 DescriptionCount;\r |
1434 | // EFI_DESCRIPTION_STRING DescriptionString[];\r |
1435 | //} EFI_DESCRIPTION_STRING_BUNDLE;\r |
959ccb23 |
1436 | \r |
1437 | //\r |
7d582d6b |
1438 | // Modifier values\r |
959ccb23 |
1439 | //\r |
7d582d6b |
1440 | #define EFI_NULL_MODIFIER 0x0000\r |
1441 | #define EFI_LEFT_CONTROL_MODIFIER 0x0001\r |
1442 | #define EFI_RIGHT_CONTROL_MODIFIER 0x0002\r |
1443 | #define EFI_LEFT_ALT_MODIFIER 0x0003\r |
1444 | #define EFI_RIGHT_ALT_MODIFIER 0x0004\r |
1445 | #define EFI_ALT_GR_MODIFIER 0x0005\r |
1446 | #define EFI_INSERT_MODIFIER 0x0006\r |
1447 | #define EFI_DELETE_MODIFIER 0x0007\r |
1448 | #define EFI_PAGE_DOWN_MODIFIER 0x0008\r |
1449 | #define EFI_PAGE_UP_MODIFIER 0x0009\r |
1450 | #define EFI_HOME_MODIFIER 0x000A\r |
1451 | #define EFI_END_MODIFIER 0x000B\r |
1452 | #define EFI_LEFT_SHIFT_MODIFIER 0x000C\r |
1453 | #define EFI_RIGHT_SHIFT_MODIFIER 0x000D\r |
1454 | #define EFI_CAPS_LOCK_MODIFIER 0x000E\r |
54cf8780 |
1455 | #define EFI_NUM_LOCK_MODIFIER 0x000F\r |
7d582d6b |
1456 | #define EFI_LEFT_ARROW_MODIFIER 0x0010\r |
1457 | #define EFI_RIGHT_ARROW_MODIFIER 0x0011\r |
1458 | #define EFI_DOWN_ARROW_MODIFIER 0x0012\r |
1459 | #define EFI_UP_ARROW_MODIFIER 0x0013\r |
1460 | #define EFI_NS_KEY_MODIFIER 0x0014\r |
1461 | #define EFI_NS_KEY_DEPENDENCY_MODIFIER 0x0015\r |
1462 | #define EFI_FUNCTION_KEY_ONE_MODIFIER 0x0016\r |
1463 | #define EFI_FUNCTION_KEY_TWO_MODIFIER 0x0017\r |
1464 | #define EFI_FUNCTION_KEY_THREE_MODIFIER 0x0018\r |
1465 | #define EFI_FUNCTION_KEY_FOUR_MODIFIER 0x0019\r |
1466 | #define EFI_FUNCTION_KEY_FIVE_MODIFIER 0x001A\r |
1467 | #define EFI_FUNCTION_KEY_SIX_MODIFIER 0x001B\r |
1468 | #define EFI_FUNCTION_KEY_SEVEN_MODIFIER 0x001C\r |
1469 | #define EFI_FUNCTION_KEY_EIGHT_MODIFIER 0x001D\r |
1470 | #define EFI_FUNCTION_KEY_NINE_MODIFIER 0x001E\r |
1471 | #define EFI_FUNCTION_KEY_TEN_MODIFIER 0x001F\r |
1472 | #define EFI_FUNCTION_KEY_ELEVEN_MODIFIER 0x0020\r |
1473 | #define EFI_FUNCTION_KEY_TWELVE_MODIFIER 0x0021\r |
959ccb23 |
1474 | \r |
7d582d6b |
1475 | //\r |
1476 | // Keys that have multiple control functions based on modifier\r |
1477 | // settings are handled in the keyboard driver implementation.\r |
1478 | // For instance PRINT_KEY might have a modifier held down and\r |
1479 | // is still a nonprinting character, but might have an alternate\r |
1480 | // control function like SYSREQUEST\r |
1481 | //\r |
1482 | #define EFI_PRINT_MODIFIER 0x0022\r |
1483 | #define EFI_SYS_REQUEST_MODIFIER 0x0023\r |
1484 | #define EFI_SCROLL_LOCK_MODIFIER 0x0024\r |
1485 | #define EFI_PAUSE_MODIFIER 0x0025\r |
1486 | #define EFI_BREAK_MODIFIER 0x0026\r |
959ccb23 |
1487 | \r |
54cf8780 |
1488 | #define EFI_LEFT_LOGO_MODIFIER 0x0027\r |
1489 | #define EFI_RIGHT_LOGO_MODIFIER 0x0028\r |
1490 | #define EFI_MENU_MODIFIER 0x0029\r |
1491 | \r |
959ccb23 |
1492 | #pragma pack()\r |
1493 | \r |
1494 | \r |
1495 | \r |
e52c5a9f |
1496 | //\r |
1497 | // References to string tokens must use this macro to enable scanning for\r |
1498 | // token usages.\r |
1499 | //\r |
1500 | //\r |
1501 | // STRING_TOKEN is not defined in UEFI specification. But it is placed \r |
1502 | // here for the easy access by C files and VFR source files.\r |
1503 | //\r |
1504 | #define STRING_TOKEN(t) t\r |
1505 | \r |
959ccb23 |
1506 | #endif\r |