2
This file defines the encoding for the VFR (Visual Form Representation) language.
3
IFR is primarily consumed by the EFI presentation engine, and produced by EFI
4
internal application and drivers as well as all add-in card option-ROM drivers
6
Copyright (c) 2006 - 2008, Intel Corporation All rights reserved.
8
This program and the accompanying materials are licensed and made available
9
under the terms and conditions of the BSD License which accompanies this
10
distribution. The full text of the license may be found at:
11
http://opensource.org/licenses/bsd-license.php
13
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
14
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
16
File Name: UefiInternalFormRepresentation.h
18
@par Revision Reference:
19
These definitions are from UEFI2.1.
23
#ifndef __UEFI_INTERNAL_FORMREPRESENTATION_H__
24
#define __UEFI_INTERNAL_FORMREPRESENTATION_H__
27
// The following types are currently defined:
29
typedef UINT32 RELOFST;
31
typedef VOID* EFI_HII_HANDLE;
32
typedef CHAR16* EFI_STRING;
33
typedef UINT16 EFI_IMAGE_ID;
34
typedef UINT16 EFI_QUESTION_ID;
35
typedef UINT16 EFI_STRING_ID;
36
typedef UINT16 EFI_FORM_ID;
37
typedef UINT16 EFI_VARSTORE_ID;
38
typedef UINT16 EFI_DEFAULT_ID;
39
typedef UINT32 EFI_HII_FONT_STYLE;
50
EFI_GUID PackageListGuid;
52
} EFI_HII_PACKAGE_LIST_HEADER;
56
Each package starts with a header, as defined above, which
57
indicates the size and type of the package. When added to a
58
pointer pointing to the start of the header, Length points at
59
the next package. The package lists form a package list when
60
concatenated together and terminated with an
61
EFI_HII_PACKAGE_HEADER with a Type of EFI_HII_PACKAGE_END. The
62
type EFI_HII_PACKAGE_TYPE_GUID is used for vendor-defined HII
63
packages, whose contents are determined by the Guid. The range
64
of package types starting with EFI_HII_PACKAGE_TYPE_SYSTEM_BEGIN
65
through EFI_HII_PACKAGE_TYPE_SYSTEM_END are reserved for system
66
firmware implementers.
68
@param Length The size of the package in bytes.
70
@param Type The package type. See EFI_HII_PACKAGE_TYPE_x,
73
@param Data The package data, the format of which is
81
} EFI_HII_PACKAGE_HEADER;
84
// EFI_HII_PACKAGE_TYPE_x.
86
#define EFI_HII_PACKAGE_TYPE_ALL 0x00
87
#define EFI_HII_PACKAGE_TYPE_GUID 0x01
88
#define EFI_HII_PACKAGE_FORM 0x02
89
#define EFI_HII_PACKAGE_KEYBOARD_LAYOUT 0x03
90
#define EFI_HII_PACKAGE_STRINGS 0x04
91
#define EFI_HII_PACKAGE_FONTS 0x05
92
#define EFI_HII_PACKAGE_IMAGES 0x06
93
#define EFI_HII_PACKAGE_SIMPLE_FONTS 0x07
94
#define EFI_HII_PACKAGE_DEVICE_PATH 0x08
95
#define EFI_HII_PACKAGE_END 0xDF
96
#define EFI_HII_PACKAGE_TYPE_SYSTEM_BEGIN 0xE0
97
#define EFI_HII_PACKAGE_TYPE_SYSTEM_END 0xFF
100
// Simplified Font Package
103
#define EFI_GLYPH_HEIGHT 19
104
#define EFI_GLYPH_WIDTH 8
106
// Contents of EFI_NARROW_GLYPH.Attributes
108
#define EFI_GLYPH_NON_SPACING 0x01
109
#define EFI_GLYPH_WIDE 0x02
112
CHAR16 UnicodeWeight;
114
UINT8 GlyphCol1[EFI_GLYPH_HEIGHT];
118
CHAR16 UnicodeWeight;
120
UINT8 GlyphCol1[EFI_GLYPH_HEIGHT];
121
UINT8 GlyphCol2[EFI_GLYPH_HEIGHT];
126
typedef struct _EFI_HII_SIMPLE_FONT_PACKAGE_HDR {
127
EFI_HII_PACKAGE_HEADER Header;
128
UINT16 NumberOfNarrowGlyphs;
129
UINT16 NumberOfWideGlyphs;
130
// EFI_NARROW_GLYPH NarrowGlyphs[];
131
// EFI_WIDE_GLYPH WideGlyphs[];
132
} EFI_HII_SIMPLE_FONT_PACKAGE_HDR;
138
#define EFI_HII_FONT_STYLE_BOLD 0x00000001
139
#define EFI_HII_FONT_STYLE_ITALIC 0x00000002
140
#define EFI_HII_FONT_STYLE_EMBOSS 0x00010000
141
#define EFI_HII_FONT_STYLE_OUTLINE 0x00020000
142
#define EFI_HII_FONT_STYLE_SHADOW 0x00040000
143
#define EFI_HII_FONT_STYLE_UNDERLINE 0x00080000
144
#define EFI_HII_FONT_STYLE_DBL_UNDER 0x00100000
146
typedef struct _EFI_HII_GLYPH_INFO {
152
} EFI_HII_GLYPH_INFO;
154
typedef struct _EFI_HII_FONT_PACKAGE_HDR {
155
EFI_HII_PACKAGE_HEADER Header;
157
UINT32 GlyphBlockOffset;
158
EFI_HII_GLYPH_INFO Cell;
159
EFI_HII_FONT_STYLE FontStyle;
160
CHAR16 FontFamily[1];
161
} EFI_HII_FONT_PACKAGE_HDR;
163
#define EFI_HII_GIBT_END 0x00
164
#define EFI_HII_GIBT_GLYPH 0x10
165
#define EFI_HII_GIBT_GLYPHS 0x11
166
#define EFI_HII_GIBT_GLYPH_DEFAULT 0x12
167
#define EFI_HII_GIBT_GLYPHS_DEFAULT 0x13
168
#define EFI_HII_GIBT_DUPLICATE 0x20
169
#define EFI_HII_GIBT_SKIP2 0x21
170
#define EFI_HII_GIBT_SKIP1 0x22
171
#define EFI_HII_GIBT_DEFAULTS 0x23
172
#define EFI_HII_GIBT_EXT1 0x30
173
#define EFI_HII_GIBT_EXT2 0x31
174
#define EFI_HII_GIBT_EXT4 0x32
176
typedef struct _EFI_HII_GLYPH_BLOCK {
178
} EFI_HII_GLYPH_BLOCK;
180
typedef struct _EFI_HII_GIBT_DEFAULTS_BLOCK {
181
EFI_HII_GLYPH_BLOCK Header;
182
EFI_HII_GLYPH_INFO Cell;
183
} EFI_HII_GIBT_DEFAULTS_BLOCK;
185
typedef struct _EFI_HII_GIBT_DUPLICATE_BLOCK {
186
EFI_HII_GLYPH_BLOCK Header;
188
} EFI_HII_GIBT_DUPLICATE_BLOCK;
190
typedef struct _EFI_GLYPH_GIBT_END_BLOCK {
191
EFI_HII_GLYPH_BLOCK Header;
192
} EFI_GLYPH_GIBT_END_BLOCK;
194
typedef struct _EFI_HII_GIBT_EXT1_BLOCK {
195
EFI_HII_GLYPH_BLOCK Header;
198
} EFI_HII_GIBT_EXT1_BLOCK;
200
typedef struct _EFI_HII_GIBT_EXT2_BLOCK {
201
EFI_HII_GLYPH_BLOCK Header;
204
} EFI_HII_GIBT_EXT2_BLOCK;
206
typedef struct _EFI_HII_GIBT_EXT4_BLOCK {
207
EFI_HII_GLYPH_BLOCK Header;
210
} EFI_HII_GIBT_EXT4_BLOCK;
212
typedef struct _EFI_HII_GIBT_GLYPH_BLOCK {
213
EFI_HII_GLYPH_BLOCK Header;
214
EFI_HII_GLYPH_INFO Cell;
215
UINT8 BitmapData[1]; // the number of bytes per bitmap can be calculated by ((Cell.Width+7)/8)*Cell.Height
216
} EFI_HII_GIBT_GLYPH_BLOCK;
218
typedef struct _EFI_HII_GIBT_GLYPHS_BLOCK {
219
EFI_HII_GLYPH_BLOCK Header;
220
EFI_HII_GLYPH_INFO Cell;
222
UINT8 BitmapData[1]; // the number of bytes per bitmap can be calculated by ((Cell.Width+7)/8)*Cell.Height
223
} EFI_HII_GIBT_GLYPHS_BLOCK;
225
typedef struct _EFI_HII_GIBT_GLYPH_DEFAULT_BLOCK {
226
EFI_HII_GLYPH_BLOCK Header;
227
UINT8 BitmapData[1]; // the number of bytes per bitmap can be calculated by ((Global.Cell.Width+7)/8)*Global.Cell.Height
228
} EFI_HII_GIBT_GLYPH_DEFAULT_BLOCK;
230
typedef struct _EFI_HII_GIBT_GLYPHS_DEFAULT_BLOCK {
231
EFI_HII_GLYPH_BLOCK Header;
233
UINT8 BitmapData[1]; // the number of bytes per bitmap can be calculated by ((Global.Cell.Width+7)/8)*Global.Cell.Height
234
} EFI_HII_GIBT_GLYPHS_DEFAULT_BLOCK;
236
typedef struct _EFI_HII_GIBT_SKIP1_BLOCK {
237
EFI_HII_GLYPH_BLOCK Header;
239
} EFI_HII_GIBT_SKIP1_BLOCK;
241
typedef struct _EFI_HII_GIBT_SKIP2_BLOCK {
242
EFI_HII_GLYPH_BLOCK Header;
244
} EFI_HII_GIBT_SKIP2_BLOCK;
247
// Device Path Package
249
typedef struct _EFI_HII_DEVICE_PATH_PACKAGE {
250
EFI_HII_PACKAGE_HEADER Header;
251
// EFI_DEVICE_PATH_PROTOCOL DevicePath[];
252
} EFI_HII_DEVICE_PATH_PACKAGE;
257
typedef struct _EFI_HII_GUID_PACKAGE_HDR {
258
EFI_HII_PACKAGE_HEADER Header;
260
// Data per GUID definition may follow
261
} EFI_HII_GUID_PACKAGE_HDR;
267
#define UEFI_CONFIG_LANG L"x-UEFI"
268
#define UEFI_CONFIG_LANG2 L"x-i-UEFI" // BUGBUG, spec need to be updated.
270
typedef struct _EFI_HII_STRING_PACKAGE_HDR {
271
EFI_HII_PACKAGE_HEADER Header;
273
UINT32 StringInfoOffset;
274
CHAR16 LanguageWindow[16];
275
EFI_STRING_ID LanguageName;
277
} EFI_HII_STRING_PACKAGE_HDR;
281
} EFI_HII_STRING_BLOCK;
283
#define EFI_HII_SIBT_END 0x00
284
#define EFI_HII_SIBT_STRING_SCSU 0x10
285
#define EFI_HII_SIBT_STRING_SCSU_FONT 0x11
286
#define EFI_HII_SIBT_STRINGS_SCSU 0x12
287
#define EFI_HII_SIBT_STRINGS_SCSU_FONT 0x13
288
#define EFI_HII_SIBT_STRING_UCS2 0x14
289
#define EFI_HII_SIBT_STRING_UCS2_FONT 0x15
290
#define EFI_HII_SIBT_STRINGS_UCS2 0x16
291
#define EFI_HII_SIBT_STRINGS_UCS2_FONT 0x17
292
#define EFI_HII_SIBT_DUPLICATE 0x20
293
#define EFI_HII_SIBT_SKIP2 0x21
294
#define EFI_HII_SIBT_SKIP1 0x22
295
#define EFI_HII_SIBT_EXT1 0x30
296
#define EFI_HII_SIBT_EXT2 0x31
297
#define EFI_HII_SIBT_EXT4 0x32
298
#define EFI_HII_SIBT_FONT 0x40
300
typedef struct _EFI_HII_SIBT_DUPLICATE_BLOCK {
301
EFI_HII_STRING_BLOCK Header;
302
EFI_STRING_ID StringId;
303
} EFI_HII_SIBT_DUPLICATE_BLOCK;
305
typedef struct _EFI_HII_SIBT_END_BLOCK {
306
EFI_HII_STRING_BLOCK Header;
307
} EFI_HII_SIBT_END_BLOCK;
309
typedef struct _EFI_HII_SIBT_EXT1_BLOCK {
310
EFI_HII_STRING_BLOCK Header;
313
} EFI_HII_SIBT_EXT1_BLOCK;
315
typedef struct _EFI_HII_SIBT_EXT2_BLOCK {
316
EFI_HII_STRING_BLOCK Header;
319
} EFI_HII_SIBT_EXT2_BLOCK;
321
typedef struct _EFI_HII_SIBT_EXT4_BLOCK {
322
EFI_HII_STRING_BLOCK Header;
325
} EFI_HII_SIBT_EXT4_BLOCK;
327
typedef struct _EFI_HII_SIBT_FONT_BLOCK {
328
EFI_HII_SIBT_EXT2_BLOCK Header;
331
EFI_HII_FONT_STYLE FontStyle;
333
} EFI_HII_SIBT_FONT_BLOCK;
335
typedef struct _EFI_HII_SIBT_SKIP1_BLOCK {
336
EFI_HII_STRING_BLOCK Header;
338
} EFI_HII_SIBT_SKIP1_BLOCK;
340
typedef struct _EFI_HII_SIBT_SKIP2_BLOCK {
341
EFI_HII_STRING_BLOCK Header;
343
} EFI_HII_SIBT_SKIP2_BLOCK;
345
typedef struct _EFI_HII_SIBT_STRING_SCSU_BLOCK {
346
EFI_HII_STRING_BLOCK Header;
348
} EFI_HII_SIBT_STRING_SCSU_BLOCK;
350
typedef struct _EFI_HII_SIBT_STRING_SCSU_FONT_BLOCK {
351
EFI_HII_STRING_BLOCK Header;
352
UINT8 FontIdentifier;
354
} EFI_HII_SIBT_STRING_SCSU_FONT_BLOCK;
356
typedef struct _EFI_HII_SIBT_STRINGS_SCSU_BLOCK {
357
EFI_HII_STRING_BLOCK Header;
360
} EFI_HII_SIBT_STRINGS_SCSU_BLOCK;
362
typedef struct _EFI_HII_SIBT_STRINGS_SCSU_FONT_BLOCK {
363
EFI_HII_STRING_BLOCK Header;
364
UINT8 FontIdentifier;
367
} EFI_HII_SIBT_STRINGS_SCSU_FONT_BLOCK;
369
typedef struct _EFI_HII_SIBT_STRING_UCS2_BLOCK {
370
EFI_HII_STRING_BLOCK Header;
371
CHAR16 StringText[1];
372
} EFI_HII_SIBT_STRING_UCS2_BLOCK;
374
typedef struct _EFI_HII_SIBT_STRING_UCS2_FONT_BLOCK {
375
EFI_HII_STRING_BLOCK Header;
376
UINT8 FontIdentifier;
377
CHAR16 StringText[1];
378
} EFI_HII_SIBT_STRING_UCS2_FONT_BLOCK;
380
typedef struct _EFI_HII_SIBT_STRINGS_UCS2_BLOCK {
381
EFI_HII_STRING_BLOCK Header;
383
CHAR16 StringText[1];
384
} EFI_HII_SIBT_STRINGS_UCS2_BLOCK;
386
typedef struct _EFI_HII_SIBT_STRINGS_UCS2_FONT_BLOCK {
387
EFI_HII_STRING_BLOCK Header;
388
UINT8 FontIdentifier;
390
CHAR16 StringText[1];
391
} EFI_HII_SIBT_STRINGS_UCS2_FONT_BLOCK;
397
typedef struct _EFI_HII_IMAGE_PACKAGE_HDR {
398
EFI_HII_PACKAGE_HEADER Header;
399
UINT32 ImageInfoOffset;
400
UINT32 PaletteInfoOffset;
401
} EFI_HII_IMAGE_PACKAGE_HDR;
403
typedef struct _EFI_HII_IMAGE_BLOCK {
405
} EFI_HII_IMAGE_BLOCK;
407
#define EFI_HII_IIBT_END 0x00
408
#define EFI_HII_IIBT_IMAGE_1BIT 0x10
409
#define EFI_HII_IIBT_IMAGE_1BIT_TRANS 0x11
410
#define EFI_HII_IIBT_IMAGE_4BIT 0x12
411
#define EFI_HII_IIBT_IMAGE_4BIT_TRANS 0x13
412
#define EFI_HII_IIBT_IMAGE_8BIT 0x14
413
#define EFI_HII_IIBT_IMAGE_8BIT_TRANS 0x15
414
#define EFI_HII_IIBT_IMAGE_24BIT 0x16
415
#define EFI_HII_IIBT_IMAGE_24BIT_TRANS 0x17
416
#define EFI_HII_IIBT_IMAGE_JPEG 0x18
417
#define EFI_HII_IIBT_DUPLICATE 0x20
418
#define EFI_HII_IIBT_SKIP2 0x21
419
#define EFI_HII_IIBT_SKIP1 0x22
420
#define EFI_HII_IIBT_EXT1 0x30
421
#define EFI_HII_IIBT_EXT2 0x31
422
#define EFI_HII_IIBT_EXT4 0x32
424
typedef struct _EFI_HII_IIBT_END_BLOCK {
425
EFI_HII_IMAGE_BLOCK Header;
426
} EFI_HII_IIBT_END_BLOCK;
428
typedef struct _EFI_HII_IIBT_EXT1_BLOCK {
429
EFI_HII_IMAGE_BLOCK Header;
432
} EFI_HII_IIBT_EXT1_BLOCK;
434
typedef struct _EFI_HII_IIBT_EXT2_BLOCK {
435
EFI_HII_IMAGE_BLOCK Header;
438
} EFI_HII_IIBT_EXT2_BLOCK;
440
typedef struct _EFI_HII_IIBT_EXT4_BLOCK {
441
EFI_HII_IMAGE_BLOCK Header;
444
} EFI_HII_IIBT_EXT4_BLOCK;
446
typedef struct _EFI_HII_IIBT_IMAGE_1BIT_BASE {
450
} EFI_HII_IIBT_IMAGE_1BIT_BASE;
452
typedef struct _EFI_HII_IIBT_IMAGE_1BIT_BLOCK {
453
EFI_HII_IMAGE_BLOCK Header;
455
EFI_HII_IIBT_IMAGE_1BIT_BASE Bitmap;
456
} EFI_HII_IIBT_IMAGE_1BIT_BLOCK;
458
typedef struct _EFI_HII_IIBT_IMAGE_1BIT_TRANS_BLOCK {
459
EFI_HII_IMAGE_BLOCK Header;
461
EFI_HII_IIBT_IMAGE_1BIT_BASE Bitmap;
462
} EFI_HII_IIBT_IMAGE_1BIT_TRANS_BLOCK;
464
typedef struct _EFI_HII_RGB_PIXEL {
470
typedef struct _EFI_HII_IIBT_IMAGE_24BIT_BASE {
473
EFI_HII_RGB_PIXEL Bitmap[1];
474
} EFI_HII_IIBT_IMAGE_24BIT_BASE;
476
typedef struct _EFI_HII_IIBT_IMAGE_24BIT_BLOCK {
477
EFI_HII_IMAGE_BLOCK Header;
478
EFI_HII_IIBT_IMAGE_24BIT_BASE Bitmap;
479
} EFI_HII_IIBT_IMAGE_24BIT_BLOCK;
481
typedef struct _EFI_HII_IIBT_IMAGE_24BIT_TRANS_BLOCK {
482
EFI_HII_IMAGE_BLOCK Header;
483
EFI_HII_IIBT_IMAGE_24BIT_BASE Bitmap;
484
} EFI_HII_IIBT_IMAGE_24BIT_TRANS_BLOCK;
486
typedef struct _EFI_HII_IIBT_IMAGE_4BIT_BASE {
490
} EFI_HII_IIBT_IMAGE_4BIT_BASE;
492
typedef struct _EFI_HII_IIBT_IMAGE_4BIT_BLOCK {
493
EFI_HII_IMAGE_BLOCK Header;
495
EFI_HII_IIBT_IMAGE_4BIT_BASE Bitmap;
496
} EFI_HII_IIBT_IMAGE_4BIT_BLOCK;
498
typedef struct _EFI_HII_IIBT_IMAGE_4BIT_TRANS_BLOCK {
499
EFI_HII_IMAGE_BLOCK Header;
501
EFI_HII_IIBT_IMAGE_4BIT_BASE Bitmap;
502
} EFI_HII_IIBT_IMAGE_4BIT_TRANS_BLOCK;
504
typedef struct _EFI_HII_IIBT_IMAGE_8BIT_BASE {
508
} EFI_HII_IIBT_IMAGE_8BIT_BASE;
510
typedef struct _EFI_HII_IIBT_IMAGE_8BIT_PALETTE_BLOCK {
511
EFI_HII_IMAGE_BLOCK Header;
513
EFI_HII_IIBT_IMAGE_8BIT_BASE Bitmap;
514
} EFI_HII_IIBT_IMAGE_8BIT_BLOCK;
516
typedef struct _EFI_HII_IIBT_IMAGE_8BIT_TRANS_BLOCK {
517
EFI_HII_IMAGE_BLOCK Header;
519
EFI_HII_IIBT_IMAGE_8BIT_BASE Bitmap;
520
} EFI_HII_IIBT_IMAGE_8BIT_TRAN_BLOCK;
522
typedef struct _EFI_HII_IIBT_DUPLICATE_BLOCK {
523
EFI_HII_IMAGE_BLOCK Header;
524
EFI_IMAGE_ID ImageId;
525
} EFI_HII_IIBT_DUPLICATE_BLOCK;
527
typedef struct _EFI_HII_IIBT_JPEG_BLOCK {
528
EFI_HII_IMAGE_BLOCK Header;
531
} EFI_HII_IIBT_JPEG_BLOCK;
533
typedef struct _EFI_HII_IIBT_SKIP1_BLOCK {
534
EFI_HII_IMAGE_BLOCK Header;
536
} EFI_HII_IIBT_SKIP1_BLOCK;
538
typedef struct _EFI_HII_IIBT_SKIP2_BLOCK {
539
EFI_HII_IMAGE_BLOCK Header;
541
} EFI_HII_IIBT_SKIP2_BLOCK;
543
typedef struct _EFI_HII_IMAGE_PALETTE_INFO_HEADER {
545
} EFI_HII_IMAGE_PALETTE_INFO_HEADER;
547
typedef struct _EFI_HII_IMAGE_PALETTE_INFO {
549
EFI_HII_RGB_PIXEL PaletteValue[1];
550
} EFI_HII_IMAGE_PALETTE_INFO;
556
typedef struct _EFI_HII_FORM_PACKAGE {
557
EFI_HII_PACKAGE_HEADER Header;
558
// EFI_IFR_OP_HEADER OpCodeHeader;
559
// More op-codes follow
560
} EFI_HII_FORM_PACKAGE;
582
EFI_STRING_ID string;
583
} EFI_IFR_TYPE_VALUE;
585
#define EFI_IFR_FORM_OP 0x01
586
#define EFI_IFR_SUBTITLE_OP 0x02
587
#define EFI_IFR_TEXT_OP 0x03
588
#define EFI_IFR_IMAGE_OP 0x04
589
#define EFI_IFR_ONE_OF_OP 0x05
590
#define EFI_IFR_CHECKBOX_OP 0x06
591
#define EFI_IFR_NUMERIC_OP 0x07
592
#define EFI_IFR_PASSWORD_OP 0x08
593
#define EFI_IFR_ONE_OF_OPTION_OP 0x09
594
#define EFI_IFR_SUPPRESS_IF_OP 0x0A
595
#define EFI_IFR_LOCKED_OP 0x0B
596
#define EFI_IFR_ACTION_OP 0x0C
597
#define EFI_IFR_RESET_BUTTON_OP 0x0D
598
#define EFI_IFR_FORM_SET_OP 0x0E
599
#define EFI_IFR_REF_OP 0x0F
600
#define EFI_IFR_NO_SUBMIT_IF_OP 0x10
601
#define EFI_IFR_INCONSISTENT_IF_OP 0x11
602
#define EFI_IFR_EQ_ID_VAL_OP 0x12
603
#define EFI_IFR_EQ_ID_ID_OP 0x13
604
#define EFI_IFR_EQ_ID_LIST_OP 0x14
605
#define EFI_IFR_AND_OP 0x15
606
#define EFI_IFR_OR_OP 0x16
607
#define EFI_IFR_NOT_OP 0x17
608
#define EFI_IFR_RULE_OP 0x18
609
#define EFI_IFR_GRAY_OUT_IF_OP 0x19
610
#define EFI_IFR_DATE_OP 0x1A
611
#define EFI_IFR_TIME_OP 0x1B
612
#define EFI_IFR_STRING_OP 0x1C
613
#define EFI_IFR_REFRESH_OP 0x1D
614
#define EFI_IFR_DISABLE_IF_OP 0x1E
615
#define EFI_IFR_TO_LOWER_OP 0x20
616
#define EFI_IFR_TO_UPPER_OP 0x21
617
#define EFI_IFR_ORDERED_LIST_OP 0x23
618
#define EFI_IFR_VARSTORE_OP 0x24
619
#define EFI_IFR_VARSTORE_NAME_VALUE_OP 0x25
620
#define EFI_IFR_VARSTORE_EFI_OP 0x26
621
#define EFI_IFR_VARSTORE_DEVICE_OP 0x27
622
#define EFI_IFR_VERSION_OP 0x28
623
#define EFI_IFR_END_OP 0x29
624
#define EFI_IFR_MATCH_OP 0x2A
625
#define EFI_IFR_EQUAL_OP 0x2F
626
#define EFI_IFR_NOT_EQUAL_OP 0x30
627
#define EFI_IFR_GREATER_THAN_OP 0x31
628
#define EFI_IFR_GREATER_EQUAL_OP 0x32
629
#define EFI_IFR_LESS_THAN_OP 0x33
630
#define EFI_IFR_LESS_EQUAL_OP 0x34
631
#define EFI_IFR_BITWISE_AND_OP 0x35
632
#define EFI_IFR_BITWISE_OR_OP 0x36
633
#define EFI_IFR_BITWISE_NOT_OP 0x37
634
#define EFI_IFR_SHIFT_LEFT_OP 0x38
635
#define EFI_IFR_SHIFT_RIGHT_OP 0x39
636
#define EFI_IFR_ADD_OP 0x3A
637
#define EFI_IFR_SUBTRACT_OP 0x3B
638
#define EFI_IFR_MULTIPLY_OP 0x3C
639
#define EFI_IFR_DIVIDE_OP 0x3D
640
#define EFI_IFR_MODULO_OP 0x3E
641
#define EFI_IFR_RULE_REF_OP 0x3F
642
#define EFI_IFR_QUESTION_REF1_OP 0x40
643
#define EFI_IFR_QUESTION_REF2_OP 0x41
644
#define EFI_IFR_UINT8_OP 0x42
645
#define EFI_IFR_UINT16_OP 0x43
646
#define EFI_IFR_UINT32_OP 0x44
647
#define EFI_IFR_UINT64_OP 0x45
648
#define EFI_IFR_TRUE_OP 0x46
649
#define EFI_IFR_FALSE_OP 0x47
650
#define EFI_IFR_TO_UINT_OP 0x48
651
#define EFI_IFR_TO_STRING_OP 0x49
652
#define EFI_IFR_TO_BOOLEAN_OP 0x4A
653
#define EFI_IFR_MID_OP 0x4B
654
#define EFI_IFR_FIND_OP 0x4C
655
#define EFI_IFR_TOKEN_OP 0x4D
656
#define EFI_IFR_STRING_REF1_OP 0x4E
657
#define EFI_IFR_STRING_REF2_OP 0x4F
658
#define EFI_IFR_CONDITIONAL_OP 0x50
659
#define EFI_IFR_QUESTION_REF3_OP 0x51
660
#define EFI_IFR_ZERO_OP 0x52
661
#define EFI_IFR_ONE_OP 0x53
662
#define EFI_IFR_ONES_OP 0x54
663
#define EFI_IFR_UNDEFINED_OP 0x55
664
#define EFI_IFR_LENGTH_OP 0x56
665
#define EFI_IFR_DUP_OP 0x57
666
#define EFI_IFR_THIS_OP 0x58
667
#define EFI_IFR_SPAN_OP 0x59
668
#define EFI_IFR_VALUE_OP 0x5A
669
#define EFI_IFR_DEFAULT_OP 0x5B
670
#define EFI_IFR_DEFAULTSTORE_OP 0x5C
671
#define EFI_IFR_CATENATE_OP 0x5E
672
#define EFI_IFR_GUID_OP 0x5F
675
typedef struct _EFI_IFR_OP_HEADER {
681
typedef struct _EFI_IFR_STATEMENT_HEADER {
682
EFI_STRING_ID Prompt;
684
} EFI_IFR_STATEMENT_HEADER;
686
typedef struct _EFI_IFR_QUESTION_HEADER {
687
EFI_IFR_STATEMENT_HEADER Header;
688
EFI_QUESTION_ID QuestionId;
689
EFI_VARSTORE_ID VarStoreId;
691
EFI_STRING_ID VarName;
695
} EFI_IFR_QUESTION_HEADER;
697
#define EFI_IFR_FLAG_READ_ONLY 0x01
698
#define EFI_IFR_FLAG_CALLBACK 0x04
699
#define EFI_IFR_FLAG_RESET_REQUIRED 0x10
700
#define EFI_IFR_FLAG_OPTIONS_ONLY 0x80
702
typedef struct _EFI_IFR_DEFAULTSTORE {
703
EFI_IFR_OP_HEADER Header;
704
EFI_STRING_ID DefaultName;
706
} EFI_IFR_DEFAULTSTORE;
708
#define EFI_HII_DEFAULT_CLASS_STANDARD 0x0000
709
#define EFI_HII_DEFAULT_CLASS_MANUFACTURING 0x0001
710
#define EFI_HII_DEFAULT_CLASS_SAFE 0x0002
711
#define EFI_HII_DEFAULT_CLASS_PLATFORM_BEGIN 0x4000
712
#define EFI_HII_DEFAULT_CLASS_PLATFORM_END 0x7fff
713
#define EFI_HII_DEFAULT_CLASS_HARDWARE_BEGIN 0x8000
714
#define EFI_HII_DEFAULT_CLASS_HARDWARE_END 0xbfff
715
#define EFI_HII_DEFAULT_CLASS_FIRMWARE_BEGIN 0xc000
716
#define EFI_HII_DEFAULT_CLASS_FIRMWARE_END 0xffff
718
typedef struct _EFI_IFR_VARSTORE {
719
EFI_IFR_OP_HEADER Header;
721
EFI_VARSTORE_ID VarStoreId;
726
typedef struct _EFI_IFR_VARSTORE_EFI {
727
EFI_IFR_OP_HEADER Header;
731
} EFI_IFR_VARSTORE_EFI;
733
typedef struct _EFI_IFR_VARSTORE_NAME_VALUE {
734
EFI_IFR_OP_HEADER Header;
737
} EFI_IFR_VARSTORE_NAME_VALUE;
739
typedef struct _EFI_IFR_FORM_SET {
740
EFI_IFR_OP_HEADER Header;
742
EFI_STRING_ID FormSetTitle;
746
typedef struct _EFI_IFR_END {
747
EFI_IFR_OP_HEADER Header;
750
typedef struct _EFI_IFR_FORM {
751
EFI_IFR_OP_HEADER Header;
753
EFI_STRING_ID FormTitle;
756
typedef struct _EFI_IFR_IMAGE {
757
EFI_IFR_OP_HEADER Header;
761
typedef struct _EFI_IFR_LOCKED {
762
EFI_IFR_OP_HEADER Header;
765
typedef struct _EFI_IFR_RULE {
766
EFI_IFR_OP_HEADER Header;
770
typedef struct _EFI_IFR_DEFAULT {
771
EFI_IFR_OP_HEADER Header;
774
EFI_IFR_TYPE_VALUE Value;
777
typedef struct _EFI_IFR_VALUE {
778
EFI_IFR_OP_HEADER Header;
781
typedef struct _EFI_IFR_SUBTITLE {
782
EFI_IFR_OP_HEADER Header;
783
EFI_IFR_STATEMENT_HEADER Statement;
787
#define EFI_IFR_FLAGS_HORIZONTAL 0x01
789
typedef struct _EFI_IFR_CHECKBOX {
790
EFI_IFR_OP_HEADER Header;
791
EFI_IFR_QUESTION_HEADER Question;
795
#define EFI_IFR_CHECKBOX_DEFAULT 0x01
796
#define EFI_IFR_CHECKBOX_DEFAULT_MFG 0x02
798
typedef struct _EFI_IFR_TEXT {
799
EFI_IFR_OP_HEADER Header;
800
EFI_IFR_STATEMENT_HEADER Statement;
801
EFI_STRING_ID TextTwo;
804
typedef struct _EFI_IFR_REF {
805
EFI_IFR_OP_HEADER Header;
806
EFI_IFR_QUESTION_HEADER Question;
810
typedef struct _EFI_IFR_REF2 {
811
EFI_IFR_OP_HEADER Header;
812
EFI_IFR_QUESTION_HEADER Question;
814
EFI_QUESTION_ID QuestionId;
817
typedef struct _EFI_IFR_REF3 {
818
EFI_IFR_OP_HEADER Header;
819
EFI_IFR_QUESTION_HEADER Question;
821
EFI_QUESTION_ID QuestionId;
825
typedef struct _EFI_IFR_REF4 {
826
EFI_IFR_OP_HEADER Header;
827
EFI_IFR_QUESTION_HEADER Question;
829
EFI_QUESTION_ID QuestionId;
831
EFI_STRING_ID DevicePath;
834
typedef struct _EFI_IFR_RESET_BUTTON {
835
EFI_IFR_OP_HEADER Header;
836
EFI_IFR_QUESTION_HEADER Question;
837
EFI_DEFAULT_ID DefaultId;
838
} EFI_IFR_RESET_BUTTON;
840
typedef struct _EFI_IFR_ACTION {
841
EFI_IFR_OP_HEADER Header;
842
EFI_IFR_QUESTION_HEADER Question;
843
EFI_STRING_ID QuestionConfig;
846
typedef struct _EFI_IFR_ACTION_1 {
847
EFI_IFR_OP_HEADER Header;
848
EFI_IFR_QUESTION_HEADER Question;
851
typedef struct _EFI_IFR_DATE {
852
EFI_IFR_OP_HEADER Header;
853
EFI_IFR_QUESTION_HEADER Question;
857
#define EFI_QF_DATE_YEAR_SUPPRESS 0x01
858
#define EFI_QF_DATE_MONTH_SUPPRESS 0x02
859
#define EFI_QF_DATE_DAY_SUPPRESS 0x04
861
#define EFI_QF_DATE_STORAGE 0x30
862
#define QF_DATE_STORAGE_NORMAL 0x00
863
#define QF_DATE_STORAGE_TIME 0x10
864
#define QF_DATE_STORAGE_WAKEUP 0x20
889
typedef struct _EFI_IFR_NUMERIC {
890
EFI_IFR_OP_HEADER Header;
891
EFI_IFR_QUESTION_HEADER Question;
893
MINMAXSTEP_DATA data;
896
#define EFI_IFR_NUMERIC_SIZE 0x03
897
#define EFI_IFR_NUMERIC_SIZE_1 0x00
898
#define EFI_IFR_NUMERIC_SIZE_2 0x01
899
#define EFI_IFR_NUMERIC_SIZE_4 0x02
900
#define EFI_IFR_NUMERIC_SIZE_8 0x03
902
#define EFI_IFR_DISPLAY 0x30
903
#define EFI_IFR_DISPLAY_INT_DEC 0x00
904
#define EFI_IFR_DISPLAY_UINT_DEC 0x10
905
#define EFI_IFR_DISPLAY_UINT_HEX 0x20
907
typedef struct _EFI_IFR_ONE_OF {
908
EFI_IFR_OP_HEADER Header;
909
EFI_IFR_QUESTION_HEADER Question;
911
MINMAXSTEP_DATA data;
914
typedef struct _EFI_IFR_STRING {
915
EFI_IFR_OP_HEADER Header;
916
EFI_IFR_QUESTION_HEADER Question;
922
#define EFI_IFR_STRING_MULTI_LINE 0x01
924
typedef struct _EFI_IFR_PASSWORD {
925
EFI_IFR_OP_HEADER Header;
926
EFI_IFR_QUESTION_HEADER Question;
931
typedef struct _EFI_IFR_ORDERED_LIST {
932
EFI_IFR_OP_HEADER Header;
933
EFI_IFR_QUESTION_HEADER Question;
936
} EFI_IFR_ORDERED_LIST;
938
#define EFI_IFR_UNIQUE_SET 0x01
939
#define EFI_IFR_NO_EMPTY_SET 0x02
941
typedef struct _EFI_IFR_TIME {
942
EFI_IFR_OP_HEADER Header;
943
EFI_IFR_QUESTION_HEADER Question;
947
#define QF_TIME_HOUR_SUPPRESS 0x01
948
#define QF_TIME_MINUTE_SUPPRESS 0x02
949
#define QF_TIME_SECOND_SUPPRESS 0x04
951
#define QF_TIME_STORAGE 0x30
952
#define QF_TIME_STORAGE_NORMAL 0x00
953
#define QF_TIME_STORAGE_TIME 0x10
954
#define QF_TIME_STORAGE_WAKEUP 0x20
956
typedef struct _EFI_IFR_DISABLE_IF {
957
EFI_IFR_OP_HEADER Header;
958
} EFI_IFR_DISABLE_IF;
960
typedef struct _EFI_IFR_SUPPRESS_IF {
961
EFI_IFR_OP_HEADER Header;
962
} EFI_IFR_SUPPRESS_IF;
964
typedef struct _EFI_IFR_GRAY_OUT_IF {
965
EFI_IFR_OP_HEADER Header;
966
} EFI_IFR_GRAY_OUT_IF;
968
typedef struct _EFI_IFR_INCONSISTENT_IF {
969
EFI_IFR_OP_HEADER Header;
971
} EFI_IFR_INCONSISTENT_IF;
973
typedef struct _EFI_IFR_NO_SUBMIT_IF {
974
EFI_IFR_OP_HEADER Header;
976
} EFI_IFR_NO_SUBMIT_IF;
978
typedef struct _EFI_IFR_REFRESH {
979
EFI_IFR_OP_HEADER Header;
980
UINT8 RefreshInterval;
983
typedef struct _EFI_IFR_VARSTORE_DEVICE {
984
EFI_IFR_OP_HEADER Header;
985
EFI_STRING_ID DevicePath;
986
} EFI_IFR_VARSTORE_DEVICE;
988
typedef struct _EFI_IFR_ONE_OF_OPTION {
989
EFI_IFR_OP_HEADER Header;
990
EFI_STRING_ID Option;
993
EFI_IFR_TYPE_VALUE Value;
994
} EFI_IFR_ONE_OF_OPTION;
996
#define EFI_IFR_TYPE_NUM_SIZE_8 0x00
997
#define EFI_IFR_TYPE_NUM_SIZE_16 0x01
998
#define EFI_IFR_TYPE_NUM_SIZE_32 0x02
999
#define EFI_IFR_TYPE_NUM_SIZE_64 0x03
1000
#define EFI_IFR_TYPE_BOOLEAN 0x04
1001
#define EFI_IFR_TYPE_TIME 0x05
1002
#define EFI_IFR_TYPE_DATE 0x06
1003
#define EFI_IFR_TYPE_STRING 0x07
1004
#define EFI_IFR_TYPE_OTHER 0x08
1006
#define EFI_IFR_OPTION_DEFAULT 0x10
1007
#define EFI_IFR_OPTION_DEFAULT_MFG 0x20
1009
typedef struct _EFI_IFR_GUID {
1010
EFI_IFR_OP_HEADER Header;
1012
//Optional Data Follows
1015
typedef struct _EFI_IFR_DUP {
1016
EFI_IFR_OP_HEADER Header;
1019
typedef struct _EFI_IFR_EQ_ID_ID {
1020
EFI_IFR_OP_HEADER Header;
1021
EFI_QUESTION_ID QuestionId1;
1022
EFI_QUESTION_ID QuestionId2;
1025
typedef struct _EFI_IFR_EQ_ID_VAL {
1026
EFI_IFR_OP_HEADER Header;
1027
EFI_QUESTION_ID QuestionId;
1029
} EFI_IFR_EQ_ID_VAL;
1031
typedef struct _EFI_IFR_EQ_ID_LIST {
1032
EFI_IFR_OP_HEADER Header;
1033
EFI_QUESTION_ID QuestionId;
1035
UINT16 ValueList[1];
1036
} EFI_IFR_EQ_ID_LIST;
1038
typedef struct _EFI_IFR_QUESTION_REF1 {
1039
EFI_IFR_OP_HEADER Header;
1040
EFI_QUESTION_ID QuestionId;
1041
} EFI_IFR_QUESTION_REF1;
1043
typedef struct _EFI_IFR_UINT8 {
1044
EFI_IFR_OP_HEADER Header;
1048
typedef struct _EFI_IFR_UINT16 {
1049
EFI_IFR_OP_HEADER Header;
1053
typedef struct _EFI_IFR_QUESTION_REF2 {
1054
EFI_IFR_OP_HEADER Header;
1055
} EFI_IFR_QUESTION_REF2;
1057
typedef struct _EFI_IFR_UINT32 {
1058
EFI_IFR_OP_HEADER Header;
1062
typedef struct _EFI_IFR_UINT64 {
1063
EFI_IFR_OP_HEADER Header;
1067
typedef struct _EFI_IFR_QUESTION_REF3 {
1068
EFI_IFR_OP_HEADER Header;
1069
} EFI_IFR_QUESTION_REF3;
1071
typedef struct _EFI_IFR_QUESTION_REF3_2 {
1072
EFI_IFR_OP_HEADER Header;
1073
EFI_STRING_ID DevicePath;
1074
} EFI_IFR_QUESTION_REF3_2;
1076
typedef struct _EFI_IFR_QUESTION_REF3_3 {
1077
EFI_IFR_OP_HEADER Header;
1078
EFI_STRING_ID DevicePath;
1080
} EFI_IFR_QUESTION_REF3_3;
1082
typedef struct _EFI_IFR_RULE_REF {
1083
EFI_IFR_OP_HEADER Header;
1087
typedef struct _EFI_IFR_STRING_REF1 {
1088
EFI_IFR_OP_HEADER Header;
1089
EFI_STRING_ID StringId;
1090
} EFI_IFR_STRING_REF1;
1092
typedef struct _EFI_IFR_STRING_REF2 {
1093
EFI_IFR_OP_HEADER Header;
1094
} EFI_IFR_STRING_REF2;
1096
typedef struct _EFI_IFR_THIS {
1097
EFI_IFR_OP_HEADER Header;
1100
typedef struct _EFI_IFR_TRUE {
1101
EFI_IFR_OP_HEADER Header;
1104
typedef struct _EFI_IFR_FALSE {
1105
EFI_IFR_OP_HEADER Header;
1108
typedef struct _EFI_IFR_ONE {
1109
EFI_IFR_OP_HEADER Header;
1112
typedef struct _EFI_IFR_ONES {
1113
EFI_IFR_OP_HEADER Header;
1116
typedef struct _EFI_IFR_ZERO {
1117
EFI_IFR_OP_HEADER Header;
1120
typedef struct _EFI_IFR_UNDEFINED {
1121
EFI_IFR_OP_HEADER Header;
1122
} EFI_IFR_UNDEFINED;
1124
typedef struct _EFI_IFR_VERSION {
1125
EFI_IFR_OP_HEADER Header;
1128
typedef struct _EFI_IFR_LENGTH {
1129
EFI_IFR_OP_HEADER Header;
1132
typedef struct _EFI_IFR_NOT {
1133
EFI_IFR_OP_HEADER Header;
1136
typedef struct _EFI_IFR_BITWISE_NOT {
1137
EFI_IFR_OP_HEADER Header;
1138
} EFI_IFR_BITWISE_NOT;
1140
typedef struct _EFI_IFR_TO_BOOLEAN {
1141
EFI_IFR_OP_HEADER Header;
1142
} EFI_IFR_TO_BOOLEAN;
1144
#define EFI_IFR_STRING_UNSIGNED_DEC 0
1145
#define EFI_IFR_STRING_SIGNED_DEC 1
1146
#define EFI_IFR_STRING_LOWERCASE_HEX 2
1147
#define EFI_IFR_STRING_UPPERCASE_HEX 3
1149
#define EFI_IFR_STRING_ASCII 0
1150
#define EFI_IFR_STRING_UNICODE 8
1152
typedef struct _EFI_IFR_TO_STRING {
1153
EFI_IFR_OP_HEADER Header;
1155
} EFI_IFR_TO_STRING;
1157
typedef struct _EFI_IFR_TO_UINT {
1158
EFI_IFR_OP_HEADER Header;
1161
typedef struct _EFI_IFR_TO_UPPER {
1162
EFI_IFR_OP_HEADER Header;
1165
typedef struct _EFI_IFR_TO_LOWER {
1166
EFI_IFR_OP_HEADER Header;
1169
typedef struct _EFI_IFR_ADD {
1170
EFI_IFR_OP_HEADER Header;
1173
typedef struct _EFI_IFR_AND {
1174
EFI_IFR_OP_HEADER Header;
1177
typedef struct _EFI_IFR_BITWISE_AND {
1178
EFI_IFR_OP_HEADER Header;
1179
} EFI_IFR_BITWISE_AND;
1181
typedef struct _EFI_IFR_BITWISE_OR {
1182
EFI_IFR_OP_HEADER Header;
1183
} EFI_IFR_BITWISE_OR;
1185
typedef struct _EFI_IFR_CATENATE {
1186
EFI_IFR_OP_HEADER Header;
1189
typedef struct _EFI_IFR_DIVIDE {
1190
EFI_IFR_OP_HEADER Header;
1193
typedef struct _EFI_IFR_EQUAL {
1194
EFI_IFR_OP_HEADER Header;
1197
typedef struct _EFI_IFR_GREATER_EQUAL {
1198
EFI_IFR_OP_HEADER Header;
1199
} EFI_IFR_GREATER_EQUAL;
1201
typedef struct _EFI_IFR_GREATER_THAN {
1202
EFI_IFR_OP_HEADER Header;
1203
} EFI_IFR_GREATER_THAN;
1205
typedef struct _EFI_IFR_LESS_EQUAL {
1206
EFI_IFR_OP_HEADER Header;
1207
} EFI_IFR_LESS_EQUAL;
1209
typedef struct _EFI_IFR_LESS_THAN {
1210
EFI_IFR_OP_HEADER Header;
1211
} EFI_IFR_LESS_THAN;
1213
typedef struct _EFI_IFR_MATCH {
1214
EFI_IFR_OP_HEADER Header;
1217
typedef struct _EFI_IFR_MULTIPLY {
1218
EFI_IFR_OP_HEADER Header;
1221
typedef struct _EFI_IFR_MODULO {
1222
EFI_IFR_OP_HEADER Header;
1225
typedef struct _EFI_IFR_NOT_EQUAL {
1226
EFI_IFR_OP_HEADER Header;
1227
} EFI_IFR_NOT_EQUAL;
1229
typedef struct _EFI_IFR_OR {
1230
EFI_IFR_OP_HEADER Header;
1233
typedef struct _EFI_IFR_SHIFT_LEFT {
1234
EFI_IFR_OP_HEADER Header;
1235
} EFI_IFR_SHIFT_LEFT;
1237
typedef struct _EFI_IFR_SHIFT_RIGHT {
1238
EFI_IFR_OP_HEADER Header;
1239
} EFI_IFR_SHIFT_RIGHT;
1241
typedef struct _EFI_IFR_SUBTRACT {
1242
EFI_IFR_OP_HEADER Header;
1245
typedef struct _EFI_IFR_CONDITIONAL {
1246
EFI_IFR_OP_HEADER Header;
1247
} EFI_IFR_CONDITIONAL;
1249
#define EFI_IFR_FF_CASE_SENSITIVE 0x00
1250
#define EFI_IFR_FF_CASE_INSENSITIVE 0x01
1252
typedef struct _EFI_IFR_FIND {
1253
EFI_IFR_OP_HEADER Header;
1257
typedef struct _EFI_IFR_MID {
1258
EFI_IFR_OP_HEADER Header;
1261
typedef struct _EFI_IFR_TOKEN {
1262
EFI_IFR_OP_HEADER Header;
1265
#define EFI_IFR_FLAGS_FIRST_MATCHING 0x00
1266
#define EFI_IFR_FLAGS_FIRST_NON_MATCHING 0x01
1268
typedef struct _EFI_IFR_SPAN {
1269
EFI_IFR_OP_HEADER Header;
1388
CHAR16 ShiftedUnicode;
1389
CHAR16 AltGrUnicode;
1390
CHAR16 ShiftedAltGrUnicode;
1392
UINT16 AffectedAttribute;
1393
} EFI_KEY_DESCRIPTOR;
1396
// A key which is affected by all the standard shift modifiers.
1397
// Most keys would be expected to have this bit active.
1399
#define EFI_AFFECTED_BY_STANDARD_SHIFT 0x0001
1401
// This key is affected by the caps lock so that if a keyboard driver
1402
// would need to disambiguate between a key which had a "1" defined
1403
// versus a "a" character. Having this bit turned on would tell
1404
// the keyboard driver to use the appropriate shifted state or not.
1406
#define EFI_AFFECTED_BY_CAPS_LOCK 0x0002
1408
// Similar to the case of CAPS lock, if this bit is active, the key
1409
// is affected by the num lock being turned on.
1411
#define EFI_AFFECTED_BY_NUM_LOCK 0x0004
1414
UINT16 LayoutLength;
1416
UINT32 LayoutDescriptorStringOffset;
1417
UINT8 DescriptorCount;
1418
// EFI_KEY_DESCRIPTOR Descriptors[];
1419
} EFI_HII_KEYBOARD_LAYOUT;
1422
EFI_HII_PACKAGE_HEADER Header;
1424
// EFI_HII_KEYBOARD_LAYOUT Layout[];
1425
} EFI_HII_KEYBOARD_PACKAGE_HDR;
1430
CHAR16 DescriptionString[1];
1431
} EFI_DESCRIPTION_STRING;
1434
UINT16 DescriptionCount;
1435
EFI_DESCRIPTION_STRING DescriptionString[1];
1436
} EFI_DESCRIPTION_STRING_BUNDLE;
1441
#define EFI_NULL_MODIFIER 0x0000
1442
#define EFI_LEFT_CONTROL_MODIFIER 0x0001
1443
#define EFI_RIGHT_CONTROL_MODIFIER 0x0002
1444
#define EFI_LEFT_ALT_MODIFIER 0x0003
1445
#define EFI_RIGHT_ALT_MODIFIER 0x0004
1446
#define EFI_ALT_GR_MODIFIER 0x0005
1447
#define EFI_INSERT_MODIFIER 0x0006
1448
#define EFI_DELETE_MODIFIER 0x0007
1449
#define EFI_PAGE_DOWN_MODIFIER 0x0008
1450
#define EFI_PAGE_UP_MODIFIER 0x0009
1451
#define EFI_HOME_MODIFIER 0x000A
1452
#define EFI_END_MODIFIER 0x000B
1453
#define EFI_LEFT_SHIFT_MODIFIER 0x000C
1454
#define EFI_RIGHT_SHIFT_MODIFIER 0x000D
1455
#define EFI_CAPS_LOCK_MODIFIER 0x000E
1456
#define EFI_NUM_LOCK _MODIFIER 0x000F
1457
#define EFI_LEFT_ARROW_MODIFIER 0x0010
1458
#define EFI_RIGHT_ARROW_MODIFIER 0x0011
1459
#define EFI_DOWN_ARROW_MODIFIER 0x0012
1460
#define EFI_UP_ARROW_MODIFIER 0x0013
1461
#define EFI_NS_KEY_MODIFIER 0x0014
1462
#define EFI_NS_KEY_DEPENDENCY_MODIFIER 0x0015
1463
#define EFI_FUNCTION_KEY_ONE_MODIFIER 0x0016
1464
#define EFI_FUNCTION_KEY_TWO_MODIFIER 0x0017
1465
#define EFI_FUNCTION_KEY_THREE_MODIFIER 0x0018
1466
#define EFI_FUNCTION_KEY_FOUR_MODIFIER 0x0019
1467
#define EFI_FUNCTION_KEY_FIVE_MODIFIER 0x001A
1468
#define EFI_FUNCTION_KEY_SIX_MODIFIER 0x001B
1469
#define EFI_FUNCTION_KEY_SEVEN_MODIFIER 0x001C
1470
#define EFI_FUNCTION_KEY_EIGHT_MODIFIER 0x001D
1471
#define EFI_FUNCTION_KEY_NINE_MODIFIER 0x001E
1472
#define EFI_FUNCTION_KEY_TEN_MODIFIER 0x001F
1473
#define EFI_FUNCTION_KEY_ELEVEN_MODIFIER 0x0020
1474
#define EFI_FUNCTION_KEY_TWELVE_MODIFIER 0x0021
1477
// Keys that have multiple control functions based on modifier
1478
// settings are handled in the keyboard driver implementation.
1479
// For instance PRINT_KEY might have a modifier held down and
1480
// is still a nonprinting character, but might have an alternate
1481
// control function like SYSREQUEST
1483
#define EFI_PRINT_MODIFIER 0x0022
1484
#define EFI_SYS_REQUEST_MODIFIER 0x0023
1485
#define EFI_SCROLL_LOCK_MODIFIER 0x0024
1486
#define EFI_PAUSE_MODIFIER 0x0025
1487
#define EFI_BREAK_MODIFIER 0x0026
1494
// References to string tokens must use this macro to enable scanning for
1498
// STRING_TOKEN is not defined in UEFI specification. But it is placed
1499
// here for the easy access by C files and VFR source files.
1501
#define STRING_TOKEN(t) t