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#pragma once
10
11FILE_LICENCE ( BSD2_PATENT );
12FILE_SECBOOT ( PERMITTED );
13
14#define NARROW_CHAR 0xFFF0
15#define WIDE_CHAR 0xFFF1
16#define NON_BREAKING_CHAR 0xFFF2
17
18///
19/// State defined for password statemachine .
20///
21#define BROWSER_STATE_VALIDATE_PASSWORD 0
22#define BROWSER_STATE_SET_PASSWORD 1
23
24///
25/// GUIDed opcodes defined for EDKII implementation.
26///
27#define EFI_IFR_TIANO_GUID \
28 { 0xf0b1735, 0x87a0, 0x4193, {0xb2, 0x66, 0x53, 0x8c, 0x38, 0xaf, 0x48, 0xce} }
29
30#pragma pack(1)
31
32///
33/// EDKII implementation extension opcodes, new extension can be added here later.
34///
35#define EFI_IFR_EXTEND_OP_LABEL 0x0
36#define EFI_IFR_EXTEND_OP_BANNER 0x1
37#define EFI_IFR_EXTEND_OP_TIMEOUT 0x2
38#define EFI_IFR_EXTEND_OP_CLASS 0x3
39#define EFI_IFR_EXTEND_OP_SUBCLASS 0x4
40
41///
42/// Label opcode.
43///
44typedef struct _EFI_IFR_GUID_LABEL {
46 ///
47 /// EFI_IFR_TIANO_GUID.
48 ///
50 ///
51 /// EFI_IFR_EXTEND_OP_LABEL.
52 ///
54 ///
55 /// Label Number.
56 ///
59
60#define EFI_IFR_BANNER_ALIGN_LEFT 0
61#define EFI_IFR_BANNER_ALIGN_CENTER 1
62#define EFI_IFR_BANNER_ALIGN_RIGHT 2
63
64///
65/// Banner opcode.
66///
67typedef struct _EFI_IFR_GUID_BANNER {
69 ///
70 /// EFI_IFR_TIANO_GUID.
71 ///
73 ///
74 /// EFI_IFR_EXTEND_OP_BANNER
75 ///
77 EFI_STRING_ID Title; ///< The string token for the banner title.
78 UINT16 LineNumber; ///< 1-based line number.
79 UINT8 Alignment; ///< left, center, or right-aligned.
81
82///
83/// Timeout opcode.
84///
85typedef struct _EFI_IFR_GUID_TIMEOUT {
87 ///
88 /// EFI_IFR_TIANO_GUID.
89 ///
91 ///
92 /// EFI_IFR_EXTEND_OP_TIMEOUT.
93 ///
95 UINT16 TimeOut; ///< TimeOut Value.
97
98#define EFI_NON_DEVICE_CLASS 0x00
99#define EFI_DISK_DEVICE_CLASS 0x01
100#define EFI_VIDEO_DEVICE_CLASS 0x02
101#define EFI_NETWORK_DEVICE_CLASS 0x04
102#define EFI_INPUT_DEVICE_CLASS 0x08
103#define EFI_ON_BOARD_DEVICE_CLASS 0x10
104#define EFI_OTHER_DEVICE_CLASS 0x20
105
106///
107/// Device Class opcode.
108///
109typedef struct _EFI_IFR_GUID_CLASS {
111 ///
112 /// EFI_IFR_TIANO_GUID.
113 ///
115 ///
116 /// EFI_IFR_EXTEND_OP_CLASS.
117 ///
119 UINT16 Class; ///< Device Class from the above.
121
122#define EFI_SETUP_APPLICATION_SUBCLASS 0x00
123#define EFI_GENERAL_APPLICATION_SUBCLASS 0x01
124#define EFI_FRONT_PAGE_SUBCLASS 0x02
125#define EFI_SINGLE_USE_SUBCLASS 0x03
126
127///
128/// SubClass opcode
129///
132 ///
133 /// EFI_IFR_TIANO_GUID.
134 ///
136 ///
137 /// EFI_IFR_EXTEND_OP_SUBCLASS.
138 ///
140 UINT16 SubClass; ///< Sub Class type from the above.
142
143///
144/// GUIDed opcodes support for framework vfr.
145///
146#define EFI_IFR_FRAMEWORK_GUID \
147 { 0x31ca5d1a, 0xd511, 0x4931, { 0xb7, 0x82, 0xae, 0x6b, 0x2b, 0x17, 0x8c, 0xd7 } }
148
149///
150/// Two extended opcodes are added, and new extensions can be added here later.
151/// One is for framework OneOf question Option Key value;
152/// another is for framework vareqval.
153///
154#define EFI_IFR_EXTEND_OP_OPTIONKEY 0x0
155#define EFI_IFR_EXTEND_OP_VAREQNAME 0x1
156
157///
158/// Store the framework vfr option key value.
159///
162 ///
163 /// EFI_IFR_FRAMEWORK_GUID.
164 ///
166 ///
167 /// EFI_IFR_EXTEND_OP_OPTIONKEY.
168 ///
170 ///
171 /// OneOf Questiond ID binded by OneOf Option.
172 ///
174 ///
175 /// The OneOf Option Value.
176 ///
178 ///
179 /// The Framework OneOf Option Key Value.
180 ///
183
184///
185/// Store the framework vfr vareqval name number.
186///
189 ///
190 /// EFI_IFR_FRAMEWORK_GUID.
191 ///
193 ///
194 /// EFI_IFR_EXTEND_OP_VAREQNAME.
195 ///
197 ///
198 /// Question ID of the Numeric Opcode created.
199 ///
201 ///
202 /// For vareqval (0x100), NameId is 0x100.
203 /// This value will convert to a Unicode String following this rule;
204 /// sprintf(StringBuffer, "%d", NameId) .
205 /// The the Unicode String will be used as a EFI Variable Name.
206 ///
209
210///
211/// EDKII implementation extension GUID, used to indaicate there are bit fields in the varstore.
212///
213#define EDKII_IFR_BIT_VARSTORE_GUID \
214 {0x82DDD68B, 0x9163, 0x4187, {0x9B, 0x27, 0x20, 0xA8, 0xFD, 0x60,0xA7, 0x1D}}
215
216///
217/// EDKII implementation extension flags, used to indaicate the disply style and bit width for bit filed storage.
218/// Two high bits for display style and the low six bits for bit width.
219///
220#define EDKII_IFR_DISPLAY_BIT 0xC0
221#define EDKII_IFR_DISPLAY_INT_DEC_BIT 0x00
222#define EDKII_IFR_DISPLAY_UINT_DEC_BIT 0x40
223#define EDKII_IFR_DISPLAY_UINT_HEX_BIT 0x80
224
225#define EDKII_IFR_NUMERIC_SIZE_BIT 0x3F
226
227#pragma pack()
228
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:921
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
Definition compiler.h:951
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.