iPXE
UefiInternalFormRepresentation.h
Go to the documentation of this file.
1/** @file
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
5
6Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
7(C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>
8SPDX-License-Identifier: BSD-2-Clause-Patent
9
10 @par Revision Reference:
11 These definitions are from UEFI 2.1 and 2.2.
12
13**/
14
15#pragma once
16
17FILE_LICENCE ( BSD2_PATENT );
18FILE_SECBOOT ( PERMITTED );
19
20#ifndef __UEFI_INTERNAL_FORMREPRESENTATION_H__
21#define __UEFI_INTERNAL_FORMREPRESENTATION_H__
22
24
25///
26/// The following types are currently defined:
27///
36
38
40
41 #pragma pack(1)
42
43//
44// Definitions for Package Lists and Package Headers
45// Section 27.3.1
46//
47
48///
49/// The header found at the start of each package list.
50///
55
56///
57/// The header found at the start of each package.
58///
59typedef struct {
62 // UINT8 Data[...];
64
65//
66// Value of HII package type
67//
68#define EFI_HII_PACKAGE_TYPE_ALL 0x00
69#define EFI_HII_PACKAGE_TYPE_GUID 0x01
70#define EFI_HII_PACKAGE_FORMS 0x02
71#define EFI_HII_PACKAGE_STRINGS 0x04
72#define EFI_HII_PACKAGE_FONTS 0x05
73#define EFI_HII_PACKAGE_IMAGES 0x06
74#define EFI_HII_PACKAGE_SIMPLE_FONTS 0x07
75#define EFI_HII_PACKAGE_DEVICE_PATH 0x08
76#define EFI_HII_PACKAGE_KEYBOARD_LAYOUT 0x09
77#define EFI_HII_PACKAGE_ANIMATIONS 0x0A
78#define EFI_HII_PACKAGE_END 0xDF
79#define EFI_HII_PACKAGE_TYPE_SYSTEM_BEGIN 0xE0
80#define EFI_HII_PACKAGE_TYPE_SYSTEM_END 0xFF
81
82//
83// Definitions for Simplified Font Package
84//
85
86///
87/// Contents of EFI_NARROW_GLYPH.Attributes.
88///@{
89#define EFI_GLYPH_NON_SPACING 0x01
90#define EFI_GLYPH_WIDE 0x02
91#define EFI_GLYPH_HEIGHT 19
92#define EFI_GLYPH_WIDTH 8
93///@}
94
95///
96/// The EFI_NARROW_GLYPH has a preferred dimension (w x h) of 8 x 19 pixels.
97///
98typedef struct {
99 ///
100 /// The Unicode representation of the glyph. The term weight is the
101 /// technical term for a character code.
102 ///
104 ///
105 /// The data element containing the glyph definitions.
106 ///
108 ///
109 /// The column major glyph representation of the character. Bits
110 /// with values of one indicate that the corresponding pixel is to be
111 /// on when normally displayed; those with zero are off.
112 ///
115
116///
117/// The EFI_WIDE_GLYPH has a preferred dimension (w x h) of 16 x 19 pixels, which is large enough
118/// to accommodate logographic characters.
119///
120typedef struct {
121 ///
122 /// The Unicode representation of the glyph. The term weight is the
123 /// technical term for a character code.
124 ///
126 ///
127 /// The data element containing the glyph definitions.
128 ///
130 ///
131 /// The column major glyph representation of the character. Bits
132 /// with values of one indicate that the corresponding pixel is to be
133 /// on when normally displayed; those with zero are off.
134 ///
136 ///
137 /// The column major glyph representation of the character. Bits
138 /// with values of one indicate that the corresponding pixel is to be
139 /// on when normally displayed; those with zero are off.
140 ///
142 ///
143 /// Ensures that sizeof (EFI_WIDE_GLYPH) is twice the
144 /// sizeof (EFI_NARROW_GLYPH). The contents of Pad must
145 /// be zero.
146 ///
149
150///
151/// A simplified font package consists of a font header
152/// followed by a series of glyph structures.
153///
161
162//
163// Definitions for Font Package
164// Section 27.3.3
165//
166
167//
168// Value for font style
169//
170#define EFI_HII_FONT_STYLE_NORMAL 0x00000000
171#define EFI_HII_FONT_STYLE_BOLD 0x00000001
172#define EFI_HII_FONT_STYLE_ITALIC 0x00000002
173#define EFI_HII_FONT_STYLE_EMBOSS 0x00010000
174#define EFI_HII_FONT_STYLE_OUTLINE 0x00020000
175#define EFI_HII_FONT_STYLE_SHADOW 0x00040000
176#define EFI_HII_FONT_STYLE_UNDERLINE 0x00080000
177#define EFI_HII_FONT_STYLE_DBL_UNDER 0x00100000
178
186
187///
188/// The fixed header consists of a standard record header,
189/// then the character values in this section, the flags
190/// (including the encoding method) and the offsets of the glyph
191/// information, the glyph bitmaps and the character map.
192///
201
202//
203// Value of different glyph info block types
204//
205#define EFI_HII_GIBT_END 0x00
206#define EFI_HII_GIBT_GLYPH 0x10
207#define EFI_HII_GIBT_GLYPHS 0x11
208#define EFI_HII_GIBT_GLYPH_DEFAULT 0x12
209#define EFI_HII_GIBT_GLYPHS_DEFAULT 0x13
210#define EFI_HII_GIBT_GLYPH_VARIABILITY 0x14
211#define EFI_HII_GIBT_DUPLICATE 0x20
212#define EFI_HII_GIBT_SKIP2 0x21
213#define EFI_HII_GIBT_SKIP1 0x22
214#define EFI_HII_GIBT_DEFAULTS 0x23
215#define EFI_HII_GIBT_EXT1 0x30
216#define EFI_HII_GIBT_EXT2 0x31
217#define EFI_HII_GIBT_EXT4 0x32
218
222
223//
224// Definition of different glyph info block types
225//
226
231
236
240
246
252
258
264
271
276
282
289
294
299
300//
301// Definitions for Device Path Package
302// Section 27.3.4
303//
304
305///
306/// The device path package is used to carry a device path
307/// associated with the package list.
308///
311 // EFI_DEVICE_PATH_PROTOCOL DevicePath[];
313
314//
315// Definitions for GUID Package
316// Section 27.3.5
317//
318
319///
320/// The GUID package is used to carry data where the format is defined by a GUID.
321///
325 // Data per GUID definition may follow
327
328//
329// Definitions for String Package
330// Section 27.3.6
331//
332
333#define UEFI_CONFIG_LANG "x-UEFI"
334#define UEFI_CONFIG_LANG_2 "x-i-UEFI"
335
336///
337/// The fixed header consists of a standard record header and then the string identifiers
338/// contained in this section and the offsets of the string and language information.
339///
348
352
353//
354// Value of different string information block types
355//
356#define EFI_HII_SIBT_END 0x00
357#define EFI_HII_SIBT_STRING_SCSU 0x10
358#define EFI_HII_SIBT_STRING_SCSU_FONT 0x11
359#define EFI_HII_SIBT_STRINGS_SCSU 0x12
360#define EFI_HII_SIBT_STRINGS_SCSU_FONT 0x13
361#define EFI_HII_SIBT_STRING_UCS2 0x14
362#define EFI_HII_SIBT_STRING_UCS2_FONT 0x15
363#define EFI_HII_SIBT_STRINGS_UCS2 0x16
364#define EFI_HII_SIBT_STRINGS_UCS2_FONT 0x17
365#define EFI_HII_SIBT_DUPLICATE 0x20
366#define EFI_HII_SIBT_SKIP2 0x21
367#define EFI_HII_SIBT_SKIP1 0x22
368#define EFI_HII_SIBT_EXT1 0x30
369#define EFI_HII_SIBT_EXT2 0x31
370#define EFI_HII_SIBT_EXT4 0x32
371#define EFI_HII_SIBT_FONT 0x40
372
373//
374// Definition of different string information block types
375//
376
381
385
391
397
403
411
416
421
426
432
438
445
450
456
462
469
470//
471// Definitions for Image Package
472// Section 27.3.7
473//
474
480
484
485//
486// Value of different image information block types
487//
488#define EFI_HII_IIBT_END 0x00
489#define EFI_HII_IIBT_IMAGE_1BIT 0x10
490#define EFI_HII_IIBT_IMAGE_1BIT_TRANS 0x11
491#define EFI_HII_IIBT_IMAGE_4BIT 0x12
492#define EFI_HII_IIBT_IMAGE_4BIT_TRANS 0x13
493#define EFI_HII_IIBT_IMAGE_8BIT 0x14
494#define EFI_HII_IIBT_IMAGE_8BIT_TRANS 0x15
495#define EFI_HII_IIBT_IMAGE_24BIT 0x16
496#define EFI_HII_IIBT_IMAGE_24BIT_TRANS 0x17
497#define EFI_HII_IIBT_IMAGE_JPEG 0x18
498#define EFI_HII_IIBT_IMAGE_PNG 0x19
499#define EFI_HII_IIBT_DUPLICATE 0x20
500#define EFI_HII_IIBT_SKIP2 0x21
501#define EFI_HII_IIBT_SKIP1 0x22
502#define EFI_HII_IIBT_EXT1 0x30
503#define EFI_HII_IIBT_EXT2 0x31
504#define EFI_HII_IIBT_EXT4 0x32
505
506//
507// Definition of different image information block types
508//
509
513
519
525
531
537
543
549
555
561
566
571
577
583
589
595
601
607
612
618
624
629
634
635//
636// Definitions for Palette Information
637//
638
642
647
648//
649// Definitions for Forms Package
650// Section 27.3.8
651//
652
653///
654/// The Form package is used to carry form-based encoding data.
655///
658 // EFI_IFR_OP_HEADER OpCodeHeader;
659 // More op-codes follow
661
667
673
680
681typedef union {
689 EFI_STRING_ID string; ///< EFI_IFR_TYPE_STRING, EFI_IFR_TYPE_ACTION
690 EFI_HII_REF ref; ///< EFI_IFR_TYPE_REF
691 // UINT8 buffer[]; ///< EFI_IFR_TYPE_BUFFER
693
694//
695// IFR Opcodes
696//
697#define EFI_IFR_FORM_OP 0x01
698#define EFI_IFR_SUBTITLE_OP 0x02
699#define EFI_IFR_TEXT_OP 0x03
700#define EFI_IFR_IMAGE_OP 0x04
701#define EFI_IFR_ONE_OF_OP 0x05
702#define EFI_IFR_CHECKBOX_OP 0x06
703#define EFI_IFR_NUMERIC_OP 0x07
704#define EFI_IFR_PASSWORD_OP 0x08
705#define EFI_IFR_ONE_OF_OPTION_OP 0x09
706#define EFI_IFR_SUPPRESS_IF_OP 0x0A
707#define EFI_IFR_LOCKED_OP 0x0B
708#define EFI_IFR_ACTION_OP 0x0C
709#define EFI_IFR_RESET_BUTTON_OP 0x0D
710#define EFI_IFR_FORM_SET_OP 0x0E
711#define EFI_IFR_REF_OP 0x0F
712#define EFI_IFR_NO_SUBMIT_IF_OP 0x10
713#define EFI_IFR_INCONSISTENT_IF_OP 0x11
714#define EFI_IFR_EQ_ID_VAL_OP 0x12
715#define EFI_IFR_EQ_ID_ID_OP 0x13
716#define EFI_IFR_EQ_ID_VAL_LIST_OP 0x14
717#define EFI_IFR_AND_OP 0x15
718#define EFI_IFR_OR_OP 0x16
719#define EFI_IFR_NOT_OP 0x17
720#define EFI_IFR_RULE_OP 0x18
721#define EFI_IFR_GRAY_OUT_IF_OP 0x19
722#define EFI_IFR_DATE_OP 0x1A
723#define EFI_IFR_TIME_OP 0x1B
724#define EFI_IFR_STRING_OP 0x1C
725#define EFI_IFR_REFRESH_OP 0x1D
726#define EFI_IFR_DISABLE_IF_OP 0x1E
727#define EFI_IFR_ANIMATION_OP 0x1F
728#define EFI_IFR_TO_LOWER_OP 0x20
729#define EFI_IFR_TO_UPPER_OP 0x21
730#define EFI_IFR_MAP_OP 0x22
731#define EFI_IFR_ORDERED_LIST_OP 0x23
732#define EFI_IFR_VARSTORE_OP 0x24
733#define EFI_IFR_VARSTORE_NAME_VALUE_OP 0x25
734#define EFI_IFR_VARSTORE_EFI_OP 0x26
735#define EFI_IFR_VARSTORE_DEVICE_OP 0x27
736#define EFI_IFR_VERSION_OP 0x28
737#define EFI_IFR_END_OP 0x29
738#define EFI_IFR_MATCH_OP 0x2A
739#define EFI_IFR_GET_OP 0x2B
740#define EFI_IFR_SET_OP 0x2C
741#define EFI_IFR_READ_OP 0x2D
742#define EFI_IFR_WRITE_OP 0x2E
743#define EFI_IFR_EQUAL_OP 0x2F
744#define EFI_IFR_NOT_EQUAL_OP 0x30
745#define EFI_IFR_GREATER_THAN_OP 0x31
746#define EFI_IFR_GREATER_EQUAL_OP 0x32
747#define EFI_IFR_LESS_THAN_OP 0x33
748#define EFI_IFR_LESS_EQUAL_OP 0x34
749#define EFI_IFR_BITWISE_AND_OP 0x35
750#define EFI_IFR_BITWISE_OR_OP 0x36
751#define EFI_IFR_BITWISE_NOT_OP 0x37
752#define EFI_IFR_SHIFT_LEFT_OP 0x38
753#define EFI_IFR_SHIFT_RIGHT_OP 0x39
754#define EFI_IFR_ADD_OP 0x3A
755#define EFI_IFR_SUBTRACT_OP 0x3B
756#define EFI_IFR_MULTIPLY_OP 0x3C
757#define EFI_IFR_DIVIDE_OP 0x3D
758#define EFI_IFR_MODULO_OP 0x3E
759#define EFI_IFR_RULE_REF_OP 0x3F
760#define EFI_IFR_QUESTION_REF1_OP 0x40
761#define EFI_IFR_QUESTION_REF2_OP 0x41
762#define EFI_IFR_UINT8_OP 0x42
763#define EFI_IFR_UINT16_OP 0x43
764#define EFI_IFR_UINT32_OP 0x44
765#define EFI_IFR_UINT64_OP 0x45
766#define EFI_IFR_TRUE_OP 0x46
767#define EFI_IFR_FALSE_OP 0x47
768#define EFI_IFR_TO_UINT_OP 0x48
769#define EFI_IFR_TO_STRING_OP 0x49
770#define EFI_IFR_TO_BOOLEAN_OP 0x4A
771#define EFI_IFR_MID_OP 0x4B
772#define EFI_IFR_FIND_OP 0x4C
773#define EFI_IFR_TOKEN_OP 0x4D
774#define EFI_IFR_STRING_REF1_OP 0x4E
775#define EFI_IFR_STRING_REF2_OP 0x4F
776#define EFI_IFR_CONDITIONAL_OP 0x50
777#define EFI_IFR_QUESTION_REF3_OP 0x51
778#define EFI_IFR_ZERO_OP 0x52
779#define EFI_IFR_ONE_OP 0x53
780#define EFI_IFR_ONES_OP 0x54
781#define EFI_IFR_UNDEFINED_OP 0x55
782#define EFI_IFR_LENGTH_OP 0x56
783#define EFI_IFR_DUP_OP 0x57
784#define EFI_IFR_THIS_OP 0x58
785#define EFI_IFR_SPAN_OP 0x59
786#define EFI_IFR_VALUE_OP 0x5A
787#define EFI_IFR_DEFAULT_OP 0x5B
788#define EFI_IFR_DEFAULTSTORE_OP 0x5C
789#define EFI_IFR_FORM_MAP_OP 0x5D
790#define EFI_IFR_CATENATE_OP 0x5E
791#define EFI_IFR_GUID_OP 0x5F
792#define EFI_IFR_SECURITY_OP 0x60
793#define EFI_IFR_MODAL_TAG_OP 0x61
794#define EFI_IFR_REFRESH_ID_OP 0x62
795#define EFI_IFR_WARNING_IF_OP 0x63
796#define EFI_IFR_MATCH2_OP 0x64
797
798//
799// Definitions of IFR Standard Headers
800// Section 27.3.8.2
801//
802
808
813
824
825//
826// Flag values of EFI_IFR_QUESTION_HEADER
827//
828#define EFI_IFR_FLAG_READ_ONLY 0x01
829#define EFI_IFR_FLAG_CALLBACK 0x04
830#define EFI_IFR_FLAG_RESET_REQUIRED 0x10
831#define EFI_IFR_FLAG_REST_STYLE 0x20
832#define EFI_IFR_FLAG_RECONNECT_REQUIRED 0x40
833#define EFI_IFR_FLAG_OPTIONS_ONLY 0x80
834
835//
836// Definition for Opcode Reference
837// Section 27.3.8.3
838//
844
845//
846// Default Identifier of default store
847//
848#define EFI_HII_DEFAULT_CLASS_STANDARD 0x0000
849#define EFI_HII_DEFAULT_CLASS_MANUFACTURING 0x0001
850#define EFI_HII_DEFAULT_CLASS_SAFE 0x0002
851#define EFI_HII_DEFAULT_CLASS_PLATFORM_BEGIN 0x4000
852#define EFI_HII_DEFAULT_CLASS_PLATFORM_END 0x7fff
853#define EFI_HII_DEFAULT_CLASS_HARDWARE_BEGIN 0x8000
854#define EFI_HII_DEFAULT_CLASS_HARDWARE_END 0xbfff
855#define EFI_HII_DEFAULT_CLASS_FIRMWARE_BEGIN 0xc000
856#define EFI_HII_DEFAULT_CLASS_FIRMWARE_END 0xffff
857
865
874
880
889
893
899
904
908
912
917
924
930
934
940
941#define EFI_IFR_FLAGS_HORIZONTAL 0x01
942
948
949#define EFI_IFR_CHECKBOX_DEFAULT 0x01
950#define EFI_IFR_CHECKBOX_DEFAULT_MFG 0x02
951
957
963
970
978
987
992
998
1004
1009
1015
1016//
1017// Flags that describe the behavior of the question.
1018//
1019#define EFI_QF_DATE_YEAR_SUPPRESS 0x01
1020#define EFI_QF_DATE_MONTH_SUPPRESS 0x02
1021#define EFI_QF_DATE_DAY_SUPPRESS 0x04
1022
1023#define EFI_QF_DATE_STORAGE 0x30
1024#define QF_DATE_STORAGE_NORMAL 0x00
1025#define QF_DATE_STORAGE_TIME 0x10
1026#define QF_DATE_STORAGE_WAKEUP 0x20
1027
1050
1057
1058//
1059// Flags related to the numeric question
1060//
1061#define EFI_IFR_NUMERIC_SIZE 0x03
1062#define EFI_IFR_NUMERIC_SIZE_1 0x00
1063#define EFI_IFR_NUMERIC_SIZE_2 0x01
1064#define EFI_IFR_NUMERIC_SIZE_4 0x02
1065#define EFI_IFR_NUMERIC_SIZE_8 0x03
1066
1067#define EFI_IFR_DISPLAY 0x30
1068#define EFI_IFR_DISPLAY_INT_DEC 0x00
1069#define EFI_IFR_DISPLAY_UINT_DEC 0x10
1070#define EFI_IFR_DISPLAY_UINT_HEX 0x20
1071
1078
1086
1087#define EFI_IFR_STRING_MULTI_LINE 0x01
1088
1095
1102
1103#define EFI_IFR_UNIQUE_SET 0x01
1104#define EFI_IFR_NO_EMPTY_SET 0x02
1105
1111
1112//
1113// A bit-mask that determines which unique settings are active for this opcode.
1114//
1115#define QF_TIME_HOUR_SUPPRESS 0x01
1116#define QF_TIME_MINUTE_SUPPRESS 0x02
1117#define QF_TIME_SECOND_SUPPRESS 0x04
1118
1119#define QF_TIME_STORAGE 0x30
1120#define QF_TIME_STORAGE_NORMAL 0x00
1121#define QF_TIME_STORAGE_TIME 0x10
1122#define QF_TIME_STORAGE_WAKEUP 0x20
1123
1127
1131
1135
1140
1145
1151
1156
1161
1169
1170//
1171// Types of the option's value.
1172//
1173#define EFI_IFR_TYPE_NUM_SIZE_8 0x00
1174#define EFI_IFR_TYPE_NUM_SIZE_16 0x01
1175#define EFI_IFR_TYPE_NUM_SIZE_32 0x02
1176#define EFI_IFR_TYPE_NUM_SIZE_64 0x03
1177#define EFI_IFR_TYPE_BOOLEAN 0x04
1178#define EFI_IFR_TYPE_TIME 0x05
1179#define EFI_IFR_TYPE_DATE 0x06
1180#define EFI_IFR_TYPE_STRING 0x07
1181#define EFI_IFR_TYPE_OTHER 0x08
1182#define EFI_IFR_TYPE_UNDEFINED 0x09
1183#define EFI_IFR_TYPE_ACTION 0x0A
1184#define EFI_IFR_TYPE_BUFFER 0x0B
1185#define EFI_IFR_TYPE_REF 0x0C
1186
1187#define EFI_IFR_OPTION_DEFAULT 0x10
1188#define EFI_IFR_OPTION_DEFAULT_MFG 0x20
1189
1190typedef struct _EFI_IFR_GUID {
1193 // Optional Data Follows
1195
1200
1204
1210
1216
1223
1228
1233
1238
1243
1248
1252
1256
1261
1267
1272
1277
1281
1285
1289
1293
1297
1301
1305
1309
1313
1317
1321
1325
1329
1330///
1331/// For EFI_IFR_TO_STRING, when converting from
1332/// unsigned integers, these flags control the format:
1333/// 0 = unsigned decimal.
1334/// 1 = signed decimal.
1335/// 2 = hexadecimal (lower-case alpha).
1336/// 3 = hexadecimal (upper-case alpha).
1337///@{
1338#define EFI_IFR_STRING_UNSIGNED_DEC 0
1339#define EFI_IFR_STRING_SIGNED_DEC 1
1340#define EFI_IFR_STRING_LOWERCASE_HEX 2
1341#define EFI_IFR_STRING_UPPERCASE_HEX 3
1342///@}
1343
1344///
1345/// When converting from a buffer, these flags control the format:
1346/// 0 = ASCII.
1347/// 8 = Unicode.
1348///@{
1349#define EFI_IFR_STRING_ASCII 0
1350#define EFI_IFR_STRING_UNICODE 8
1351///@}
1352
1357
1361
1365
1369
1373
1377
1381
1385
1389
1393
1397
1401
1405
1409
1413
1417
1422
1426
1430
1434
1438
1442
1446
1450
1454
1455//
1456// Flags governing the matching criteria of EFI_IFR_FIND
1457//
1458#define EFI_IFR_FF_CASE_SENSITIVE 0x00
1459#define EFI_IFR_FF_CASE_INSENSITIVE 0x01
1460
1465
1469
1473
1474//
1475// Flags specifying whether to find the first matching string
1476// or the first non-matching string.
1477//
1478#define EFI_IFR_FLAGS_FIRST_MATCHING 0x00
1479#define EFI_IFR_FLAGS_FIRST_NON_MATCHING 0x01
1480
1485
1486typedef struct _EFI_IFR_SECURITY {
1487 ///
1488 /// Standard opcode header, where Header.Op = EFI_IFR_SECURITY_OP.
1489 ///
1491 ///
1492 /// Security permission level.
1493 ///
1496
1498 ///
1499 /// The string identifier which provides the human-readable name of
1500 /// the configuration method for this standards map form.
1501 ///
1503 ///
1504 /// Identifier which uniquely specifies the configuration methods
1505 /// associated with this standards map form.
1506 ///
1509
1510typedef struct _EFI_IFR_FORM_MAP {
1511 ///
1512 /// The sequence that defines the type of opcode as well as the length
1513 /// of the opcode being defined. Header.OpCode = EFI_IFR_FORM_MAP_OP.
1514 ///
1516 ///
1517 /// The unique identifier for this particular form.
1518 ///
1520 ///
1521 /// One or more configuration method's name and unique identifier.
1522 ///
1523 // EFI_IFR_FORM_MAP_METHOD Methods[];
1525
1526typedef struct _EFI_IFR_SET {
1527 ///
1528 /// The sequence that defines the type of opcode as well as the length
1529 /// of the opcode being defined. Header.OpCode = EFI_IFR_SET_OP.
1530 ///
1532 ///
1533 /// Specifies the identifier of a previously declared variable store to
1534 /// use when storing the question's value.
1535 ///
1537 union {
1538 ///
1539 /// A 16-bit Buffer Storage offset.
1540 ///
1542 ///
1543 /// A Name Value or EFI Variable name (VarName).
1544 ///
1547 ///
1548 /// Specifies the type used for storage.
1549 ///
1552
1553typedef struct _EFI_IFR_GET {
1554 ///
1555 /// The sequence that defines the type of opcode as well as the length
1556 /// of the opcode being defined. Header.OpCode = EFI_IFR_GET_OP.
1557 ///
1559 ///
1560 /// Specifies the identifier of a previously declared variable store to
1561 /// use when retrieving the value.
1562 ///
1564 union {
1565 ///
1566 /// A 16-bit Buffer Storage offset.
1567 ///
1569 ///
1570 /// A Name Value or EFI Variable name (VarName).
1571 ///
1574 ///
1575 /// Specifies the type used for storage.
1576 ///
1579
1583
1587
1591//
1592// Definitions for Keyboard Package
1593// Releated definitions are in Section of EFI_HII_DATABASE_PROTOCOL
1594//
1595
1596///
1597/// Each enumeration values maps a physical key on a keyboard.
1598///
1599typedef enum {
1715} EFI_KEY;
1716
1717typedef struct {
1718 ///
1719 /// Used to describe a physical key on a keyboard.
1720 ///
1722 ///
1723 /// Unicode character code for the Key.
1724 ///
1726 ///
1727 /// Unicode character code for the key with the shift key being held down.
1728 ///
1730 ///
1731 /// Unicode character code for the key with the Alt-GR being held down.
1732 ///
1734 ///
1735 /// Unicode character code for the key with the Alt-GR and shift keys being held down.
1736 ///
1738 ///
1739 /// Modifier keys are defined to allow for special functionality that is not necessarily
1740 /// accomplished by a printable character. Many of these modifier keys are flags to toggle
1741 /// certain state bits on and off inside of a keyboard driver.
1742 ///
1746
1747///
1748/// A key which is affected by all the standard shift modifiers.
1749/// Most keys would be expected to have this bit active.
1750///
1751#define EFI_AFFECTED_BY_STANDARD_SHIFT 0x0001
1752
1753///
1754/// This key is affected by the caps lock so that if a keyboard driver
1755/// would need to disambiguate between a key which had a "1" defined
1756/// versus an "a" character. Having this bit turned on would tell
1757/// the keyboard driver to use the appropriate shifted state or not.
1758///
1759#define EFI_AFFECTED_BY_CAPS_LOCK 0x0002
1760
1761///
1762/// Similar to the case of CAPS lock, if this bit is active, the key
1763/// is affected by the num lock being turned on.
1764///
1765#define EFI_AFFECTED_BY_NUM_LOCK 0x0004
1766
1774
1775typedef struct {
1778 // EFI_HII_KEYBOARD_LAYOUT Layout[];
1780
1781//
1782// Modifier values
1783//
1784#define EFI_NULL_MODIFIER 0x0000
1785#define EFI_LEFT_CONTROL_MODIFIER 0x0001
1786#define EFI_RIGHT_CONTROL_MODIFIER 0x0002
1787#define EFI_LEFT_ALT_MODIFIER 0x0003
1788#define EFI_RIGHT_ALT_MODIFIER 0x0004
1789#define EFI_ALT_GR_MODIFIER 0x0005
1790#define EFI_INSERT_MODIFIER 0x0006
1791#define EFI_DELETE_MODIFIER 0x0007
1792#define EFI_PAGE_DOWN_MODIFIER 0x0008
1793#define EFI_PAGE_UP_MODIFIER 0x0009
1794#define EFI_HOME_MODIFIER 0x000A
1795#define EFI_END_MODIFIER 0x000B
1796#define EFI_LEFT_SHIFT_MODIFIER 0x000C
1797#define EFI_RIGHT_SHIFT_MODIFIER 0x000D
1798#define EFI_CAPS_LOCK_MODIFIER 0x000E
1799#define EFI_NUM_LOCK_MODIFIER 0x000F
1800#define EFI_LEFT_ARROW_MODIFIER 0x0010
1801#define EFI_RIGHT_ARROW_MODIFIER 0x0011
1802#define EFI_DOWN_ARROW_MODIFIER 0x0012
1803#define EFI_UP_ARROW_MODIFIER 0x0013
1804#define EFI_NS_KEY_MODIFIER 0x0014
1805#define EFI_NS_KEY_DEPENDENCY_MODIFIER 0x0015
1806#define EFI_FUNCTION_KEY_ONE_MODIFIER 0x0016
1807#define EFI_FUNCTION_KEY_TWO_MODIFIER 0x0017
1808#define EFI_FUNCTION_KEY_THREE_MODIFIER 0x0018
1809#define EFI_FUNCTION_KEY_FOUR_MODIFIER 0x0019
1810#define EFI_FUNCTION_KEY_FIVE_MODIFIER 0x001A
1811#define EFI_FUNCTION_KEY_SIX_MODIFIER 0x001B
1812#define EFI_FUNCTION_KEY_SEVEN_MODIFIER 0x001C
1813#define EFI_FUNCTION_KEY_EIGHT_MODIFIER 0x001D
1814#define EFI_FUNCTION_KEY_NINE_MODIFIER 0x001E
1815#define EFI_FUNCTION_KEY_TEN_MODIFIER 0x001F
1816#define EFI_FUNCTION_KEY_ELEVEN_MODIFIER 0x0020
1817#define EFI_FUNCTION_KEY_TWELVE_MODIFIER 0x0021
1818
1819//
1820// Keys that have multiple control functions based on modifier
1821// settings are handled in the keyboard driver implementation.
1822// For instance, PRINT_KEY might have a modifier held down and
1823// is still a nonprinting character, but might have an alternate
1824// control function like SYSREQUEST
1825//
1826#define EFI_PRINT_MODIFIER 0x0022
1827#define EFI_SYS_REQUEST_MODIFIER 0x0023
1828#define EFI_SCROLL_LOCK_MODIFIER 0x0024
1829#define EFI_PAUSE_MODIFIER 0x0025
1830#define EFI_BREAK_MODIFIER 0x0026
1831
1832#define EFI_LEFT_LOGO_MODIFIER 0x0027
1833#define EFI_RIGHT_LOGO_MODIFIER 0x0028
1834#define EFI_MENU_MODIFIER 0x0029
1835
1836///
1837/// Animation IFR opcode
1838///
1839typedef struct _EFI_IFR_ANIMATION {
1840 ///
1841 /// Standard opcode header, where Header.OpCode is
1842 /// EFI_IFR_ANIMATION_OP.
1843 ///
1845 ///
1846 /// Animation identifier in the HII database.
1847 ///
1850
1851///
1852/// HII animation package header.
1853///
1855 ///
1856 /// Standard package header, where Header.Type = EFI_HII_PACKAGE_ANIMATIONS.
1857 ///
1859 ///
1860 /// Offset, relative to this header, of the animation information. If
1861 /// this is zero, then there are no animation sequences in the package.
1862 ///
1865
1866///
1867/// Animation information is encoded as a series of blocks,
1868/// with each block prefixed by a single byte header EFI_HII_ANIMATION_BLOCK.
1869///
1872 // UINT8 BlockBody[];
1874
1875///
1876/// Animation block types.
1877///
1878#define EFI_HII_AIBT_END 0x00
1879#define EFI_HII_AIBT_OVERLAY_IMAGES 0x10
1880#define EFI_HII_AIBT_CLEAR_IMAGES 0x11
1881#define EFI_HII_AIBT_RESTORE_SCRN 0x12
1882#define EFI_HII_AIBT_OVERLAY_IMAGES_LOOP 0x18
1883#define EFI_HII_AIBT_CLEAR_IMAGES_LOOP 0x19
1884#define EFI_HII_AIBT_RESTORE_SCRN_LOOP 0x1A
1885#define EFI_HII_AIBT_DUPLICATE 0x20
1886#define EFI_HII_AIBT_SKIP2 0x21
1887#define EFI_HII_AIBT_SKIP1 0x22
1888#define EFI_HII_AIBT_EXT1 0x30
1889#define EFI_HII_AIBT_EXT2 0x31
1890#define EFI_HII_AIBT_EXT4 0x32
1891
1892///
1893/// Extended block headers used for variable sized animation records
1894/// which need an explicit length.
1895///
1896
1898 ///
1899 /// Standard animation header, where Header.BlockType = EFI_HII_AIBT_EXT1.
1900 ///
1902 ///
1903 /// The block type.
1904 ///
1906 ///
1907 /// Size of the animation block, in bytes, including the animation block header.
1908 ///
1911
1913 ///
1914 /// Standard animation header, where Header.BlockType = EFI_HII_AIBT_EXT2.
1915 ///
1917 ///
1918 /// The block type
1919 ///
1921 ///
1922 /// Size of the animation block, in bytes, including the animation block header.
1923 ///
1926
1928 ///
1929 /// Standard animation header, where Header.BlockType = EFI_HII_AIBT_EXT4.
1930 ///
1932 ///
1933 /// The block type
1934 ///
1936 ///
1937 /// Size of the animation block, in bytes, including the animation block header.
1938 ///
1941
1943 ///
1944 /// The X offset from the upper left hand corner of the logical
1945 /// window to position the indexed image.
1946 ///
1948 ///
1949 /// The Y offset from the upper left hand corner of the logical
1950 /// window to position the indexed image.
1951 ///
1953 ///
1954 /// The image to display at the specified offset from the upper left
1955 /// hand corner of the logical window.
1956 ///
1958 ///
1959 /// The number of milliseconds to delay after displaying the indexed
1960 /// image and before continuing on to the next linked image. If value
1961 /// is zero, no delay.
1962 ///
1965
1966///
1967/// An animation block to describe an animation sequence that does not cycle, and
1968/// where one image is simply displayed over the previous image.
1969///
1971 ///
1972 /// This is image that is to be reference by the image protocols, if the
1973 /// animation function is not supported or disabled. This image can
1974 /// be one particular image from the animation sequence (if any one
1975 /// of the animation frames has a complete image) or an alternate
1976 /// image that can be displayed alone. If the value is zero, no image
1977 /// is displayed.
1978 ///
1980 ///
1981 /// The overall width of the set of images (logical window width).
1982 ///
1984 ///
1985 /// The overall height of the set of images (logical window height).
1986 ///
1988 ///
1989 /// The number of EFI_HII_ANIMATION_CELL contained in the
1990 /// animation sequence.
1991 ///
1993 ///
1994 /// An array of CellCount animation cells.
1995 ///
1998
1999///
2000/// An animation block to describe an animation sequence that does not cycle,
2001/// and where the logical window is cleared to the specified color before
2002/// the next image is displayed.
2003///
2005 ///
2006 /// This is image that is to be reference by the image protocols, if the
2007 /// animation function is not supported or disabled. This image can
2008 /// be one particular image from the animation sequence (if any one
2009 /// of the animation frames has a complete image) or an alternate
2010 /// image that can be displayed alone. If the value is zero, no image
2011 /// is displayed.
2012 ///
2014 ///
2015 /// The overall width of the set of images (logical window width).
2016 ///
2018 ///
2019 /// The overall height of the set of images (logical window height).
2020 ///
2022 ///
2023 /// The number of EFI_HII_ANIMATION_CELL contained in the
2024 /// animation sequence.
2025 ///
2027 ///
2028 /// The color to clear the logical window to before displaying the
2029 /// indexed image.
2030 ///
2032 ///
2033 /// An array of CellCount animation cells.
2034 ///
2037
2038///
2039/// An animation block to describe an animation sequence that does not cycle,
2040/// and where the screen is restored to the original state before the next
2041/// image is displayed.
2042///
2044 ///
2045 /// This is image that is to be reference by the image protocols, if the
2046 /// animation function is not supported or disabled. This image can
2047 /// be one particular image from the animation sequence (if any one
2048 /// of the animation frames has a complete image) or an alternate
2049 /// image that can be displayed alone. If the value is zero, no image
2050 /// is displayed.
2051 ///
2053 ///
2054 /// The overall width of the set of images (logical window width).
2055 ///
2057 ///
2058 /// The overall height of the set of images (logical window height).
2059 ///
2061 ///
2062 /// The number of EFI_HII_ANIMATION_CELL contained in the
2063 /// animation sequence.
2064 ///
2066 ///
2067 /// An array of CellCount animation cells.
2068 ///
2071
2072///
2073/// An animation block to describe an animation sequence that continuously cycles,
2074/// and where one image is simply displayed over the previous image.
2075///
2077
2078///
2079/// An animation block to describe an animation sequence that continuously cycles,
2080/// and where the logical window is cleared to the specified color before
2081/// the next image is displayed.
2082///
2084
2085///
2086/// An animation block to describe an animation sequence that continuously cycles,
2087/// and where the screen is restored to the original state before
2088/// the next image is displayed.
2089///
2091
2092///
2093/// Assigns a new character value to a previously defined animation sequence.
2094///
2096 ///
2097 /// The previously defined animation ID with the exact same
2098 /// animation information.
2099 ///
2102
2103///
2104/// Skips animation IDs.
2105///
2107 ///
2108 /// The unsigned 8-bit value to add to AnimationIdCurrent.
2109 ///
2112
2113///
2114/// Skips animation IDs.
2115///
2117 ///
2118 /// The unsigned 16-bit value to add to AnimationIdCurrent.
2119 ///
2122
2123 #pragma pack()
2124
2125///
2126/// References to string tokens must use this macro to enable scanning for
2127/// token usages.
2128///
2129///
2130/// STRING_TOKEN is not defined in UEFI specification. But it is placed
2131/// here for the easy access by C files and VFR source files.
2132///
2133#define STRING_TOKEN(t) t
2134
2135///
2136/// IMAGE_TOKEN is not defined in UEFI specification. But it is placed
2137/// here for the easy access by C files and VFR source files.
2138///
2139#define IMAGE_TOKEN(t) t
2140
2141#endif
unsigned short UINT16
2-byte unsigned value.
unsigned char BOOLEAN
Logical Boolean.
char CHAR8
1-byte Character
unsigned long long UINT64
8-byte unsigned value.
short INT16
2-byte signed value.
unsigned short CHAR16
2-byte Character.
unsigned char UINT8
1-byte unsigned value.
unsigned int UINT32
4-byte unsigned value.
#define VOID
Undeclared type.
Definition Base.h:271
Guid used to identify HII FormMap configuration method.
GUID EFI_GUID
128-bit buffer containing a unique identifier value.
struct _EFI_HII_IMAGE_BLOCK EFI_HII_IMAGE_BLOCK
struct _EFI_HII_IIBT_IMAGE_4BIT_BLOCK EFI_HII_IIBT_IMAGE_4BIT_BLOCK
struct _EFI_IFR_LESS_EQUAL EFI_IFR_LESS_EQUAL
struct _EFI_IFR_ANIMATION EFI_IFR_ANIMATION
Animation IFR opcode.
struct _EFI_IFR_REFRESH EFI_IFR_REFRESH
struct _EFI_IFR_ACTION_1 EFI_IFR_ACTION_1
struct _EFI_HII_SIBT_EXT1_BLOCK EFI_HII_SIBT_EXT1_BLOCK
struct _EFI_HII_GIBT_GLYPH_BLOCK EFI_HII_GIBT_GLYPH_BLOCK
struct _EFI_HII_GIBT_GLYPH_DEFAULT_BLOCK EFI_HII_GIBT_GLYPH_DEFAULT_BLOCK
struct _EFI_IFR_END EFI_IFR_END
struct _EFI_IFR_ADD EFI_IFR_ADD
struct _EFI_IFR_ONE EFI_IFR_ONE
struct _EFI_HII_IIBT_END_BLOCK EFI_HII_IIBT_END_BLOCK
struct _EFI_IFR_VARSTORE_EFI EFI_IFR_VARSTORE_EFI
struct _EFI_HII_IMAGE_PALETTE_INFO EFI_HII_IMAGE_PALETTE_INFO
struct _EFI_IFR_STRING_REF2 EFI_IFR_STRING_REF2
struct _EFI_IFR_GRAY_OUT_IF EFI_IFR_GRAY_OUT_IF
struct _EFI_IFR_ZERO EFI_IFR_ZERO
struct _EFI_IFR_RULE EFI_IFR_RULE
struct _EFI_IFR_GREATER_THAN EFI_IFR_GREATER_THAN
struct _EFI_IFR_DATE EFI_IFR_DATE
struct _EFI_IFR_RESET_BUTTON EFI_IFR_RESET_BUTTON
struct _EFI_IFR_DEFAULT EFI_IFR_DEFAULT
struct _EFI_IFR_GET EFI_IFR_GET
struct _EFI_HII_AIBT_OVERLAY_IMAGES_BLOCK EFI_HII_AIBT_OVERLAY_IMAGES_BLOCK
An animation block to describe an animation sequence that does not cycle, and where one image is simp...
struct _EFI_HII_AIBT_CLEAR_IMAGES_BLOCK EFI_HII_AIBT_CLEAR_IMAGES_BLOCK
An animation block to describe an animation sequence that does not cycle, and where the logical windo...
struct _EFI_IFR_UINT32 EFI_IFR_UINT32
struct _EFI_HII_RGB_PIXEL EFI_HII_RGB_PIXEL
struct _EFI_IFR_MODAL_TAG EFI_IFR_MODAL_TAG
struct _EFI_IFR_EQ_ID_ID EFI_IFR_EQ_ID_ID
struct _EFI_IFR_MULTIPLY EFI_IFR_MULTIPLY
struct _EFI_IFR_READ EFI_IFR_READ
struct _EFI_HII_SIBT_STRINGS_SCSU_BLOCK EFI_HII_SIBT_STRINGS_SCSU_BLOCK
struct _EFI_IFR_MAP EFI_IFR_MAP
struct _EFI_IFR_FORM_MAP_METHOD EFI_IFR_FORM_MAP_METHOD
struct _EFI_IFR_MATCH2 EFI_IFR_MATCH2
struct _EFI_IFR_FALSE EFI_IFR_FALSE
struct _EFI_HII_SIBT_FONT_BLOCK EFI_HII_SIBT_FONT_BLOCK
struct _EFI_IFR_SPAN EFI_IFR_SPAN
struct _EFI_HII_SIBT_STRING_UCS2_BLOCK EFI_HII_SIBT_STRING_UCS2_BLOCK
struct _EFI_IFR_SET EFI_IFR_SET
struct _EFI_IFR_SHIFT_RIGHT EFI_IFR_SHIFT_RIGHT
struct _EFI_HII_GUID_PACKAGE_HDR EFI_HII_GUID_PACKAGE_HDR
The GUID package is used to carry data where the format is defined by a GUID.
struct _EFI_IFR_RULE_REF EFI_IFR_RULE_REF
struct _EFI_IFR_BITWISE_NOT EFI_IFR_BITWISE_NOT
struct _EFI_IFR_DUP EFI_IFR_DUP
CHAR16 * EFI_STRING
struct _EFI_IFR_PASSWORD EFI_IFR_PASSWORD
struct _EFI_HII_IIBT_IMAGE_8BIT_BASE EFI_HII_IIBT_IMAGE_8BIT_BASE
EFI_HII_AIBT_OVERLAY_IMAGES_BLOCK EFI_HII_AIBT_OVERLAY_IMAGES_LOOP_BLOCK
An animation block to describe an animation sequence that continuously cycles, and where one image is...
EFI_HII_AIBT_CLEAR_IMAGES_BLOCK EFI_HII_AIBT_CLEAR_IMAGES_LOOP_BLOCK
An animation block to describe an animation sequence that continuously cycles, and where the logical ...
struct _EFI_IFR_ONES EFI_IFR_ONES
struct _EFI_IFR_VARSTORE_NAME_VALUE EFI_IFR_VARSTORE_NAME_VALUE
struct _EFI_IFR_UINT16 EFI_IFR_UINT16
struct _EFI_HII_AIBT_EXT4_BLOCK EFI_HII_AIBT_EXT4_BLOCK
struct _EFI_HII_GIBT_GLYPHS_BLOCK EFI_HII_GIBT_GLYPHS_BLOCK
struct _EFI_HII_GIBT_SKIP2_BLOCK EFI_HII_GIBT_SKIP2_BLOCK
struct _EFI_HII_SIBT_SKIP1_BLOCK EFI_HII_SIBT_SKIP1_BLOCK
struct _EFI_HII_IIBT_IMAGE_24BIT_BLOCK EFI_HII_IIBT_IMAGE_24BIT_BLOCK
struct _EFI_IFR_CATENATE EFI_IFR_CATENATE
struct _EFI_IFR_QUESTION_REF3_3 EFI_IFR_QUESTION_REF3_3
struct _EFI_IFR_TO_LOWER EFI_IFR_TO_LOWER
struct _EFI_IFR_STRING_REF1 EFI_IFR_STRING_REF1
struct _EFI_IFR_TO_UINT EFI_IFR_TO_UINT
struct _EFI_IFR_QUESTION_REF2 EFI_IFR_QUESTION_REF2
struct _EFI_HII_IIBT_IMAGE_1BIT_TRANS_BLOCK EFI_HII_IIBT_IMAGE_1BIT_TRANS_BLOCK
struct _EFI_IFR_LESS_THAN EFI_IFR_LESS_THAN
struct _EFI_HII_SIBT_STRINGS_SCSU_FONT_BLOCK EFI_HII_SIBT_STRINGS_SCSU_FONT_BLOCK
struct _EFI_IFR_GUID EFI_IFR_GUID
struct _EFI_IFR_DIVIDE EFI_IFR_DIVIDE
struct _EFI_IFR_TIME EFI_IFR_TIME
struct _EFI_HII_AIBT_RESTORE_SCRN_BLOCK EFI_HII_AIBT_RESTORE_SCRN_BLOCK
An animation block to describe an animation sequence that does not cycle, and where the screen is res...
struct _EFI_IFR_FORM_SET EFI_IFR_FORM_SET
struct _EFI_HII_IIBT_EXT4_BLOCK EFI_HII_IIBT_EXT4_BLOCK
struct _EFI_IFR_FORM_MAP EFI_IFR_FORM_MAP
struct _EFI_IFR_REF5 EFI_IFR_REF5
struct _EFI_IFR_IMAGE EFI_IFR_IMAGE
struct _EFI_IFR_WARNING_IF EFI_IFR_WARNING_IF
struct _EFI_IFR_FORM EFI_IFR_FORM
struct _EFI_HII_IIBT_IMAGE_8BIT_PALETTE_BLOCK EFI_HII_IIBT_IMAGE_8BIT_BLOCK
struct _EFI_HII_IIBT_IMAGE_4BIT_BASE EFI_HII_IIBT_IMAGE_4BIT_BASE
struct _EFI_GLYPH_GIBT_END_BLOCK EFI_GLYPH_GIBT_END_BLOCK
struct _EFI_IFR_REF2 EFI_IFR_REF2
struct _EFI_HII_SIBT_DUPLICATE_BLOCK EFI_HII_SIBT_DUPLICATE_BLOCK
struct _EFI_IFR_SUBTITLE EFI_IFR_SUBTITLE
struct _EFI_HII_GIBT_EXT4_BLOCK EFI_HII_GIBT_EXT4_BLOCK
struct _EFI_IFR_MATCH EFI_IFR_MATCH
struct _EFI_IFR_OP_HEADER EFI_IFR_OP_HEADER
struct _EFI_HII_SIBT_STRING_UCS2_FONT_BLOCK EFI_HII_SIBT_STRING_UCS2_FONT_BLOCK
EFI_HII_AIBT_RESTORE_SCRN_BLOCK EFI_HII_AIBT_RESTORE_SCRN_LOOP_BLOCK
An animation block to describe an animation sequence that continuously cycles, and where the screen i...
struct _EFI_HII_SIBT_STRINGS_UCS2_FONT_BLOCK EFI_HII_SIBT_STRINGS_UCS2_FONT_BLOCK
struct _EFI_HII_AIBT_EXT2_BLOCK EFI_HII_AIBT_EXT2_BLOCK
struct _EFI_IFR_ONE_OF_OPTION EFI_IFR_ONE_OF_OPTION
struct _EFI_IFR_MID EFI_IFR_MID
struct _EFI_IFR_ONE_OF EFI_IFR_ONE_OF
struct _EFI_HII_IIBT_DUPLICATE_BLOCK EFI_HII_IIBT_DUPLICATE_BLOCK
struct _EFI_HII_IIBT_IMAGE_1BIT_BLOCK EFI_HII_IIBT_IMAGE_1BIT_BLOCK
struct _EFI_HII_IIBT_SKIP2_BLOCK EFI_HII_IIBT_SKIP2_BLOCK
struct _EFI_HII_ANIMATION_PACKAGE_HDR EFI_HII_ANIMATION_PACKAGE_HDR
HII animation package header.
struct _EFI_HII_IMAGE_PACKAGE_HDR EFI_HII_IMAGE_PACKAGE_HDR
struct _EFI_IFR_QUESTION_REF1 EFI_IFR_QUESTION_REF1
struct _EFI_IFR_TOKEN EFI_IFR_TOKEN
struct _EFI_IFR_TO_BOOLEAN EFI_IFR_TO_BOOLEAN
struct _EFI_IFR_UINT64 EFI_IFR_UINT64
struct _EFI_IFR_TO_STRING EFI_IFR_TO_STRING
struct _EFI_IFR_VERSION EFI_IFR_VERSION
struct _EFI_IFR_DEFAULTSTORE EFI_IFR_DEFAULTSTORE
struct _EFI_HII_ANIMATION_CELL EFI_HII_ANIMATION_CELL
struct _EFI_IFR_DEFAULT_2 EFI_IFR_DEFAULT_2
struct _EFI_IFR_INCONSISTENT_IF EFI_IFR_INCONSISTENT_IF
struct _EFI_IFR_UNDEFINED EFI_IFR_UNDEFINED
struct _EFI_IFR_MODULO EFI_IFR_MODULO
struct _EFI_HII_IIBT_IMAGE_4BIT_TRANS_BLOCK EFI_HII_IIBT_IMAGE_4BIT_TRANS_BLOCK
struct _EFI_IFR_REFRESH_ID EFI_IFR_REFRESH_ID
struct _EFI_IFR_ORDERED_LIST EFI_IFR_ORDERED_LIST
struct _EFI_IFR_NOT EFI_IFR_NOT
struct _EFI_HII_IIBT_SKIP1_BLOCK EFI_HII_IIBT_SKIP1_BLOCK
struct _EFI_IFR_GREATER_EQUAL EFI_IFR_GREATER_EQUAL
struct _EFI_HII_IIBT_PNG_BLOCK EFI_HII_IIBT_PNG_BLOCK
struct _EFI_IFR_EQ_ID_VAL EFI_IFR_EQ_ID_VAL
struct _EFI_HII_GIBT_GLYPHS_DEFAULT_BLOCK EFI_HII_GIBT_GLYPHS_DEFAULT_BLOCK
struct _EFI_IFR_CONDITIONAL EFI_IFR_CONDITIONAL
struct _EFI_IFR_REF EFI_IFR_REF
struct _EFI_HII_SIBT_EXT4_BLOCK EFI_HII_SIBT_EXT4_BLOCK
struct _EFI_HII_DEVICE_PATH_PACKAGE_HDR EFI_HII_DEVICE_PATH_PACKAGE_HDR
The device path package is used to carry a device path associated with the package list.
struct _EFI_HII_SIBT_STRING_SCSU_BLOCK EFI_HII_SIBT_STRING_SCSU_BLOCK
struct _EFI_HII_AIBT_EXT1_BLOCK EFI_HII_AIBT_EXT1_BLOCK
Extended block headers used for variable sized animation records which need an explicit length.
EFI_KEY
Each enumeration values maps a physical key on a keyboard.
struct _EFI_IFR_EQ_ID_VAL_LIST EFI_IFR_EQ_ID_VAL_LIST
struct _EFI_IFR_NOT_EQUAL EFI_IFR_NOT_EQUAL
struct _EFI_HII_FONT_PACKAGE_HDR EFI_HII_FONT_PACKAGE_HDR
The fixed header consists of a standard record header, then the character values in this section,...
struct _EFI_IFR_DISABLE_IF EFI_IFR_DISABLE_IF
struct _EFI_HII_FORM_PACKAGE_HDR EFI_HII_FORM_PACKAGE_HDR
The Form package is used to carry form-based encoding data.
struct _EFI_HII_IIBT_IMAGE_24BIT_BASE EFI_HII_IIBT_IMAGE_24BIT_BASE
struct _EFI_HII_GLYPH_BLOCK EFI_HII_GLYPH_BLOCK
struct _EFI_IFR_CHECKBOX EFI_IFR_CHECKBOX
struct _EFI_IFR_REF4 EFI_IFR_REF4
struct _EFI_IFR_TEXT EFI_IFR_TEXT
struct _EFI_HII_AIBT_DUPLICATE_BLOCK EFI_HII_AIBT_DUPLICATE_BLOCK
Assigns a new character value to a previously defined animation sequence.
struct _EFI_IFR_QUESTION_HEADER EFI_IFR_QUESTION_HEADER
struct _EFI_IFR_VARSTORE_DEVICE EFI_IFR_VARSTORE_DEVICE
struct _EFI_IFR_TRUE EFI_IFR_TRUE
struct _EFI_IFR_LENGTH EFI_IFR_LENGTH
struct _EFI_HII_STRING_PACKAGE_HDR EFI_HII_STRING_PACKAGE_HDR
The fixed header consists of a standard record header and then the string identifiers contained in th...
struct _EFI_IFR_STATEMENT_HEADER EFI_IFR_STATEMENT_HEADER
struct _EFI_IFR_SUPPRESS_IF EFI_IFR_SUPPRESS_IF
struct _EFI_IFR_ACTION EFI_IFR_ACTION
struct _EFI_HII_IIBT_EXT2_BLOCK EFI_HII_IIBT_EXT2_BLOCK
struct _EFI_IFR_OR EFI_IFR_OR
struct _EFI_IFR_EQUAL EFI_IFR_EQUAL
struct _EFI_IFR_REF3 EFI_IFR_REF3
struct _EFI_IFR_VARSTORE EFI_IFR_VARSTORE
struct _EFI_HII_GIBT_VARIABILITY_BLOCK EFI_HII_GIBT_VARIABILITY_BLOCK
struct _EFI_IFR_QUESTION_REF3 EFI_IFR_QUESTION_REF3
struct _EFI_IFR_NO_SUBMIT_IF EFI_IFR_NO_SUBMIT_IF
struct _EFI_HII_IIBT_JPEG_BLOCK EFI_HII_IIBT_JPEG_BLOCK
struct _EFI_HII_IIBT_IMAGE_24BIT_TRANS_BLOCK EFI_HII_IIBT_IMAGE_24BIT_TRANS_BLOCK
struct _EFI_IFR_SHIFT_LEFT EFI_IFR_SHIFT_LEFT
struct _EFI_IFR_BITWISE_AND EFI_IFR_BITWISE_AND
struct _EFI_HII_IIBT_EXT1_BLOCK EFI_HII_IIBT_EXT1_BLOCK
struct _EFI_IFR_QUESTION_REF3_2 EFI_IFR_QUESTION_REF3_2
struct _EFI_IFR_TO_UPPER EFI_IFR_TO_UPPER
struct _EFI_HII_ANIMATION_BLOCK EFI_HII_ANIMATION_BLOCK
Animation information is encoded as a series of blocks, with each block prefixed by a single byte hea...
struct _EFI_IFR_FIND EFI_IFR_FIND
UINT16 EFI_ANIMATION_ID
struct _EFI_IFR_STRING EFI_IFR_STRING
struct _EFI_HII_GIBT_EXT2_BLOCK EFI_HII_GIBT_EXT2_BLOCK
struct _EFI_IFR_SECURITY EFI_IFR_SECURITY
struct _EFI_IFR_VALUE EFI_IFR_VALUE
UINT32 EFI_HII_FONT_STYLE
struct _EFI_IFR_THIS EFI_IFR_THIS
struct _EFI_HII_AIBT_SKIP1_BLOCK EFI_HII_AIBT_SKIP1_BLOCK
Skips animation IDs.
struct _EFI_HII_IMAGE_PALETTE_INFO_HEADER EFI_HII_IMAGE_PALETTE_INFO_HEADER
struct _EFI_IFR_WRITE EFI_IFR_WRITE
struct _EFI_HII_AIBT_SKIP2_BLOCK EFI_HII_AIBT_SKIP2_BLOCK
Skips animation IDs.
struct _EFI_IFR_AND EFI_IFR_AND
struct _EFI_HII_IIBT_IMAGE_1BIT_BASE EFI_HII_IIBT_IMAGE_1BIT_BASE
struct _EFI_HII_SIBT_END_BLOCK EFI_HII_SIBT_END_BLOCK
struct _EFI_HII_GIBT_DUPLICATE_BLOCK EFI_HII_GIBT_DUPLICATE_BLOCK
struct _EFI_HII_SIBT_STRING_SCSU_FONT_BLOCK EFI_HII_SIBT_STRING_SCSU_FONT_BLOCK
struct _EFI_HII_GLYPH_INFO EFI_HII_GLYPH_INFO
struct _EFI_IFR_NUMERIC EFI_IFR_NUMERIC
struct _EFI_HII_GIBT_SKIP1_BLOCK EFI_HII_GIBT_SKIP1_BLOCK
VOID * EFI_HII_HANDLE
The following types are currently defined:
#define EFI_GLYPH_HEIGHT
Contents of EFI_NARROW_GLYPH.Attributes.
struct _EFI_HII_GIBT_EXT1_BLOCK EFI_HII_GIBT_EXT1_BLOCK
struct _EFI_HII_GIBT_DEFAULTS_BLOCK EFI_HII_GIBT_DEFAULTS_BLOCK
struct _EFI_HII_SIBT_STRINGS_UCS2_BLOCK EFI_HII_SIBT_STRINGS_UCS2_BLOCK
struct _EFI_HII_IIBT_IMAGE_8BIT_TRANS_BLOCK EFI_HII_IIBT_IMAGE_8BIT_TRAN_BLOCK
struct _EFI_HII_SIBT_EXT2_BLOCK EFI_HII_SIBT_EXT2_BLOCK
struct _EFI_HII_SIBT_SKIP2_BLOCK EFI_HII_SIBT_SKIP2_BLOCK
struct _EFI_IFR_LOCKED EFI_IFR_LOCKED
struct _EFI_IFR_UINT8 EFI_IFR_UINT8
struct _EFI_HII_SIMPLE_FONT_PACKAGE_HDR EFI_HII_SIMPLE_FONT_PACKAGE_HDR
A simplified font package consists of a font header followed by a series of glyph structures.
struct _EFI_IFR_SUBTRACT EFI_IFR_SUBTRACT
struct _EFI_IFR_BITWISE_OR EFI_IFR_BITWISE_OR
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
Definition compiler.h:921
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
Definition compiler.h:951
#define u8
Definition igbvf_osdep.h:40
uint64_t u64
Definition stdint.h:26
The header found at the start of each package.
The header found at the start of each package list.
CHAR16 ShiftedAltGrUnicode
Unicode character code for the key with the Alt-GR and shift keys being held down.
EFI_KEY Key
Used to describe a physical key on a keyboard.
UINT16 Modifier
Modifier keys are defined to allow for special functionality that is not necessarily accomplished by ...
CHAR16 Unicode
Unicode character code for the Key.
CHAR16 AltGrUnicode
Unicode character code for the key with the Alt-GR being held down.
CHAR16 ShiftedUnicode
Unicode character code for the key with the shift key being held down.
The EFI_NARROW_GLYPH has a preferred dimension (w x h) of 8 x 19 pixels.
UINT8 Attributes
The data element containing the glyph definitions.
UINT8 GlyphCol1[EFI_GLYPH_HEIGHT]
The column major glyph representation of the character.
CHAR16 UnicodeWeight
The Unicode representation of the glyph.
The EFI_WIDE_GLYPH has a preferred dimension (w x h) of 16 x 19 pixels, which is large enough to acco...
UINT8 GlyphCol2[EFI_GLYPH_HEIGHT]
The column major glyph representation of the character.
CHAR16 UnicodeWeight
The Unicode representation of the glyph.
UINT8 Pad[3]
Ensures that sizeof (EFI_WIDE_GLYPH) is twice the sizeof (EFI_NARROW_GLYPH).
UINT8 GlyphCol1[EFI_GLYPH_HEIGHT]
The column major glyph representation of the character.
UINT8 Attributes
The data element containing the glyph definitions.
An animation block to describe an animation sequence that does not cycle, and where the logical windo...
EFI_HII_ANIMATION_CELL AnimationCell[1]
An array of CellCount animation cells.
EFI_IMAGE_ID DftImageId
This is image that is to be reference by the image protocols, if the animation function is not suppor...
EFI_HII_RGB_PIXEL BackgndColor
The color to clear the logical window to before displaying the indexed image.
UINT16 CellCount
The number of EFI_HII_ANIMATION_CELL contained in the animation sequence.
UINT16 Width
The overall width of the set of images (logical window width).
UINT16 Height
The overall height of the set of images (logical window height).
Assigns a new character value to a previously defined animation sequence.
EFI_ANIMATION_ID AnimationId
The previously defined animation ID with the exact same animation information.
Extended block headers used for variable sized animation records which need an explicit length.
EFI_HII_ANIMATION_BLOCK Header
Standard animation header, where Header.BlockType = EFI_HII_AIBT_EXT1.
UINT8 Length
Size of the animation block, in bytes, including the animation block header.
EFI_HII_ANIMATION_BLOCK Header
Standard animation header, where Header.BlockType = EFI_HII_AIBT_EXT2.
UINT16 Length
Size of the animation block, in bytes, including the animation block header.
EFI_HII_ANIMATION_BLOCK Header
Standard animation header, where Header.BlockType = EFI_HII_AIBT_EXT4.
UINT32 Length
Size of the animation block, in bytes, including the animation block header.
An animation block to describe an animation sequence that does not cycle, and where one image is simp...
EFI_HII_ANIMATION_CELL AnimationCell[1]
An array of CellCount animation cells.
UINT16 CellCount
The number of EFI_HII_ANIMATION_CELL contained in the animation sequence.
UINT16 Height
The overall height of the set of images (logical window height).
EFI_IMAGE_ID DftImageId
This is image that is to be reference by the image protocols, if the animation function is not suppor...
UINT16 Width
The overall width of the set of images (logical window width).
An animation block to describe an animation sequence that does not cycle, and where the screen is res...
UINT16 Height
The overall height of the set of images (logical window height).
UINT16 CellCount
The number of EFI_HII_ANIMATION_CELL contained in the animation sequence.
EFI_IMAGE_ID DftImageId
This is image that is to be reference by the image protocols, if the animation function is not suppor...
UINT16 Width
The overall width of the set of images (logical window width).
EFI_HII_ANIMATION_CELL AnimationCell[1]
An array of CellCount animation cells.
UINT8 SkipCount
The unsigned 8-bit value to add to AnimationIdCurrent.
UINT16 SkipCount
The unsigned 16-bit value to add to AnimationIdCurrent.
Animation information is encoded as a series of blocks, with each block prefixed by a single byte hea...
UINT16 Delay
The number of milliseconds to delay after displaying the indexed image and before continuing on to th...
EFI_IMAGE_ID ImageId
The image to display at the specified offset from the upper left hand corner of the logical window.
UINT16 OffsetY
The Y offset from the upper left hand corner of the logical window to position the indexed image.
UINT16 OffsetX
The X offset from the upper left hand corner of the logical window to position the indexed image.
UINT32 AnimationInfoOffset
Offset, relative to this header, of the animation information.
EFI_HII_PACKAGE_HEADER Header
Standard package header, where Header.Type = EFI_HII_PACKAGE_ANIMATIONS.
The device path package is used to carry a device path associated with the package list.
The fixed header consists of a standard record header, then the character values in this section,...
The Form package is used to carry form-based encoding data.
The GUID package is used to carry data where the format is defined by a GUID.
A simplified font package consists of a font header followed by a series of glyph structures.
The fixed header consists of a standard record header and then the string identifiers contained in th...
EFI_IFR_QUESTION_HEADER Question
EFI_IFR_QUESTION_HEADER Question
EFI_ANIMATION_ID Id
Animation identifier in the HII database.
EFI_IFR_OP_HEADER Header
Standard opcode header, where Header.OpCode is EFI_IFR_ANIMATION_OP.
EFI_IFR_QUESTION_HEADER Question
EFI_IFR_QUESTION_HEADER Question
EFI_GUID MethodIdentifier
Identifier which uniquely specifies the configuration methods associated with this standards map form...
EFI_STRING_ID MethodTitle
The string identifier which provides the human-readable name of the configuration method for this sta...
EFI_FORM_ID FormId
The unique identifier for this particular form.
EFI_IFR_OP_HEADER Header
The sequence that defines the type of opcode as well as the length of the opcode being defined.
EFI_VARSTORE_ID VarStoreId
Specifies the identifier of a previously declared variable store to use when retrieving the value.
UINT8 VarStoreType
Specifies the type used for storage.
EFI_IFR_OP_HEADER Header
The sequence that defines the type of opcode as well as the length of the opcode being defined.
UINT16 VarOffset
A Name Value or EFI Variable name (VarName).
union _EFI_IFR_GET::@057331140221305217137163215360174155306102160175 VarStoreInfo
EFI_STRING_ID VarName
A 16-bit Buffer Storage offset.
EFI_IFR_QUESTION_HEADER Question
EFI_IFR_QUESTION_HEADER Question
EFI_IFR_QUESTION_HEADER Question
union _EFI_IFR_QUESTION_HEADER::@270154056040045031072026335247250302177356064274 VarStoreInfo
EFI_IFR_QUESTION_HEADER Question
EFI_IFR_QUESTION_HEADER Question
EFI_IFR_QUESTION_HEADER Question
EFI_IFR_QUESTION_HEADER Question
EFI_IFR_QUESTION_HEADER Question
EFI_IFR_OP_HEADER Header
Standard opcode header, where Header.Op = EFI_IFR_SECURITY_OP.
EFI_GUID Permissions
Security permission level.
EFI_VARSTORE_ID VarStoreId
Specifies the identifier of a previously declared variable store to use when storing the question's v...
EFI_IFR_OP_HEADER Header
The sequence that defines the type of opcode as well as the length of the opcode being defined.
UINT8 VarStoreType
Specifies the type used for storage.
union _EFI_IFR_SET::@314043164323140155320147251373105272114363203257 VarStoreInfo
UINT16 VarOffset
A Name Value or EFI Variable name (VarName).
EFI_STRING_ID VarName
A 16-bit Buffer Storage offset.
EFI_IFR_QUESTION_HEADER Question
EFI_IFR_STATEMENT_HEADER Statement
EFI_IFR_STATEMENT_HEADER Statement
EFI_IFR_QUESTION_HEADER Question
EFI_STRING_ID string
EFI_IFR_TYPE_STRING, EFI_IFR_TYPE_ACTION.
EFI_HII_REF ref
EFI_IFR_TYPE_REF.
#define u16
Definition vga.h:20
#define u32
Definition vga.h:21