iPXE
MdeModuleHii.h
Go to the documentation of this file.
1/** @file
2 EDKII extented HII IFR guid opcodes.
3
4Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
5SPDX-License-Identifier: BSD-2-Clause-Patent
6
7**/
8
9#ifndef __MDEMODULE_HII_H__
10#define __MDEMODULE_HII_H__
11
12FILE_LICENCE ( BSD2_PATENT );
13FILE_SECBOOT ( PERMITTED );
14
15#define NARROW_CHAR 0xFFF0
16#define WIDE_CHAR 0xFFF1
17#define NON_BREAKING_CHAR 0xFFF2
18
19///
20/// State defined for password statemachine .
21///
22#define BROWSER_STATE_VALIDATE_PASSWORD 0
23#define BROWSER_STATE_SET_PASSWORD 1
24
25///
26/// GUIDed opcodes defined for EDKII implementation.
27///
28#define EFI_IFR_TIANO_GUID \
29 { 0xf0b1735, 0x87a0, 0x4193, {0xb2, 0x66, 0x53, 0x8c, 0x38, 0xaf, 0x48, 0xce} }
30
31#pragma pack(1)
32
33///
34/// EDKII implementation extension opcodes, new extension can be added here later.
35///
36#define EFI_IFR_EXTEND_OP_LABEL 0x0
37#define EFI_IFR_EXTEND_OP_BANNER 0x1
38#define EFI_IFR_EXTEND_OP_TIMEOUT 0x2
39#define EFI_IFR_EXTEND_OP_CLASS 0x3
40#define EFI_IFR_EXTEND_OP_SUBCLASS 0x4
41
42///
43/// Label opcode.
44///
45typedef struct _EFI_IFR_GUID_LABEL {
47 ///
48 /// EFI_IFR_TIANO_GUID.
49 ///
51 ///
52 /// EFI_IFR_EXTEND_OP_LABEL.
53 ///
55 ///
56 /// Label Number.
57 ///
60
61#define EFI_IFR_BANNER_ALIGN_LEFT 0
62#define EFI_IFR_BANNER_ALIGN_CENTER 1
63#define EFI_IFR_BANNER_ALIGN_RIGHT 2
64
65///
66/// Banner opcode.
67///
68typedef struct _EFI_IFR_GUID_BANNER {
70 ///
71 /// EFI_IFR_TIANO_GUID.
72 ///
74 ///
75 /// EFI_IFR_EXTEND_OP_BANNER
76 ///
78 EFI_STRING_ID Title; ///< The string token for the banner title.
79 UINT16 LineNumber; ///< 1-based line number.
80 UINT8 Alignment; ///< left, center, or right-aligned.
82
83///
84/// Timeout opcode.
85///
86typedef struct _EFI_IFR_GUID_TIMEOUT {
88 ///
89 /// EFI_IFR_TIANO_GUID.
90 ///
92 ///
93 /// EFI_IFR_EXTEND_OP_TIMEOUT.
94 ///
96 UINT16 TimeOut; ///< TimeOut Value.
98
99#define EFI_NON_DEVICE_CLASS 0x00
100#define EFI_DISK_DEVICE_CLASS 0x01
101#define EFI_VIDEO_DEVICE_CLASS 0x02
102#define EFI_NETWORK_DEVICE_CLASS 0x04
103#define EFI_INPUT_DEVICE_CLASS 0x08
104#define EFI_ON_BOARD_DEVICE_CLASS 0x10
105#define EFI_OTHER_DEVICE_CLASS 0x20
106
107///
108/// Device Class opcode.
109///
110typedef struct _EFI_IFR_GUID_CLASS {
112 ///
113 /// EFI_IFR_TIANO_GUID.
114 ///
116 ///
117 /// EFI_IFR_EXTEND_OP_CLASS.
118 ///
120 UINT16 Class; ///< Device Class from the above.
122
123#define EFI_SETUP_APPLICATION_SUBCLASS 0x00
124#define EFI_GENERAL_APPLICATION_SUBCLASS 0x01
125#define EFI_FRONT_PAGE_SUBCLASS 0x02
126#define EFI_SINGLE_USE_SUBCLASS 0x03
127
128///
129/// SubClass opcode
130///
133 ///
134 /// EFI_IFR_TIANO_GUID.
135 ///
137 ///
138 /// EFI_IFR_EXTEND_OP_SUBCLASS.
139 ///
141 UINT16 SubClass; ///< Sub Class type from the above.
143
144///
145/// GUIDed opcodes support for framework vfr.
146///
147#define EFI_IFR_FRAMEWORK_GUID \
148 { 0x31ca5d1a, 0xd511, 0x4931, { 0xb7, 0x82, 0xae, 0x6b, 0x2b, 0x17, 0x8c, 0xd7 } }
149
150///
151/// Two extended opcodes are added, and new extensions can be added here later.
152/// One is for framework OneOf question Option Key value;
153/// another is for framework vareqval.
154///
155#define EFI_IFR_EXTEND_OP_OPTIONKEY 0x0
156#define EFI_IFR_EXTEND_OP_VAREQNAME 0x1
157
158///
159/// Store the framework vfr option key value.
160///
163 ///
164 /// EFI_IFR_FRAMEWORK_GUID.
165 ///
167 ///
168 /// EFI_IFR_EXTEND_OP_OPTIONKEY.
169 ///
171 ///
172 /// OneOf Questiond ID binded by OneOf Option.
173 ///
175 ///
176 /// The OneOf Option Value.
177 ///
179 ///
180 /// The Framework OneOf Option Key Value.
181 ///
184
185///
186/// Store the framework vfr vareqval name number.
187///
190 ///
191 /// EFI_IFR_FRAMEWORK_GUID.
192 ///
194 ///
195 /// EFI_IFR_EXTEND_OP_VAREQNAME.
196 ///
198 ///
199 /// Question ID of the Numeric Opcode created.
200 ///
202 ///
203 /// For vareqval (0x100), NameId is 0x100.
204 /// This value will convert to a Unicode String following this rule;
205 /// sprintf(StringBuffer, "%d", NameId) .
206 /// The the Unicode String will be used as a EFI Variable Name.
207 ///
210
211///
212/// EDKII implementation extension GUID, used to indaicate there are bit fields in the varstore.
213///
214#define EDKII_IFR_BIT_VARSTORE_GUID \
215 {0x82DDD68B, 0x9163, 0x4187, {0x9B, 0x27, 0x20, 0xA8, 0xFD, 0x60,0xA7, 0x1D}}
216
217///
218/// EDKII implementation extension flags, used to indaicate the disply style and bit width for bit filed storage.
219/// Two high bits for display style and the low six bits for bit width.
220///
221#define EDKII_IFR_DISPLAY_BIT 0xC0
222#define EDKII_IFR_DISPLAY_INT_DEC_BIT 0x00
223#define EDKII_IFR_DISPLAY_UINT_DEC_BIT 0x40
224#define EDKII_IFR_DISPLAY_UINT_HEX_BIT 0x80
225
226#define EDKII_IFR_NUMERIC_SIZE_BIT 0x3F
227
228#pragma pack()
229
233
234#endif
unsigned short UINT16
2-byte unsigned value.
unsigned char UINT8
1-byte unsigned value.
EFI_GUID gEdkiiIfrBitVarstoreGuid
struct _EFI_IFR_GUID_OPTIONKEY EFI_IFR_GUID_OPTIONKEY
Store the framework vfr option key value.
EFI_GUID gEfiIfrTianoGuid
struct _EFI_IFR_GUID_CLASS EFI_IFR_GUID_CLASS
Device Class opcode.
struct _EFI_IFR_GUID_SUBCLASS EFI_IFR_GUID_SUBCLASS
SubClass opcode.
struct _EFI_IFR_GUID_VAREQNAME EFI_IFR_GUID_VAREQNAME
Store the framework vfr vareqval name number.
struct _EFI_IFR_GUID_BANNER EFI_IFR_GUID_BANNER
Banner opcode.
struct _EFI_IFR_GUID_LABEL EFI_IFR_GUID_LABEL
Label opcode.
struct _EFI_IFR_GUID_TIMEOUT EFI_IFR_GUID_TIMEOUT
Timeout opcode.
EFI_GUID gEfiIfrFrameworkGuid
GUID EFI_GUID
128-bit buffer containing a unique identifier value.
struct _EFI_IFR_OP_HEADER EFI_IFR_OP_HEADER
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
Definition compiler.h:896
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
Definition compiler.h:926
Banner opcode.
UINT8 Alignment
left, center, or right-aligned.
EFI_STRING_ID Title
The string token for the banner title.
EFI_GUID Guid
EFI_IFR_TIANO_GUID.
UINT8 ExtendOpCode
EFI_IFR_EXTEND_OP_BANNER.
UINT16 LineNumber
1-based line number.
EFI_IFR_OP_HEADER Header
Device Class opcode.
UINT16 Class
Device Class from the above.
UINT8 ExtendOpCode
EFI_IFR_EXTEND_OP_CLASS.
EFI_IFR_OP_HEADER Header
EFI_GUID Guid
EFI_IFR_TIANO_GUID.
Label opcode.
UINT8 ExtendOpCode
EFI_IFR_EXTEND_OP_LABEL.
EFI_IFR_OP_HEADER Header
UINT16 Number
Label Number.
EFI_GUID Guid
EFI_IFR_TIANO_GUID.
Store the framework vfr option key value.
UINT8 ExtendOpCode
EFI_IFR_EXTEND_OP_OPTIONKEY.
EFI_IFR_TYPE_VALUE OptionValue
The OneOf Option Value.
EFI_QUESTION_ID QuestionId
OneOf Questiond ID binded by OneOf Option.
EFI_GUID Guid
EFI_IFR_FRAMEWORK_GUID.
EFI_IFR_OP_HEADER Header
UINT16 KeyValue
The Framework OneOf Option Key Value.
SubClass opcode.
UINT8 ExtendOpCode
EFI_IFR_EXTEND_OP_SUBCLASS.
EFI_IFR_OP_HEADER Header
UINT16 SubClass
Sub Class type from the above.
EFI_GUID Guid
EFI_IFR_TIANO_GUID.
Timeout opcode.
EFI_IFR_OP_HEADER Header
UINT16 TimeOut
TimeOut Value.
UINT8 ExtendOpCode
EFI_IFR_EXTEND_OP_TIMEOUT.
EFI_GUID Guid
EFI_IFR_TIANO_GUID.
Store the framework vfr vareqval name number.
EFI_IFR_OP_HEADER Header
EFI_GUID Guid
EFI_IFR_FRAMEWORK_GUID.
UINT8 ExtendOpCode
EFI_IFR_EXTEND_OP_VAREQNAME.
UINT16 NameId
For vareqval (0x100), NameId is 0x100.
EFI_QUESTION_ID QuestionId
Question ID of the Numeric Opcode created.