iPXE
MdeModuleHii.h
Go to the documentation of this file.
1 /** @file
2  EDKII extented HII IFR guid opcodes.
3 
4 Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
5 SPDX-License-Identifier: BSD-2-Clause-Patent
6 
7 **/
8 
9 #ifndef __MDEMODULE_HII_H__
10 #define __MDEMODULE_HII_H__
11 
12 FILE_LICENCE ( BSD2_PATENT );
13 FILE_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 ///
45 typedef 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 ///
68 typedef 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 ///
86 typedef 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 ///
110 typedef 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 ///
131 typedef struct _EFI_IFR_GUID_SUBCLASS {
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 ///
161 typedef struct _EFI_IFR_GUID_OPTIONKEY {
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 ///
188 typedef struct _EFI_IFR_GUID_VAREQNAME {
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
UINT16 NameId
For vareqval (0x100), NameId is 0x100.
Definition: MdeModuleHii.h:208
UINT16 SubClass
Sub Class type from the above.
Definition: MdeModuleHii.h:141
EFI_QUESTION_ID QuestionId
Question ID of the Numeric Opcode created.
Definition: MdeModuleHii.h:201
EFI_IFR_OP_HEADER Header
Definition: MdeModuleHii.h:87
128 bit buffer containing a unique identifier value.
Definition: Base.h:216
UINT8 ExtendOpCode
EFI_IFR_EXTEND_OP_SUBCLASS.
Definition: MdeModuleHii.h:140
EFI_IFR_OP_HEADER Header
Definition: MdeModuleHii.h:162
struct _EFI_IFR_GUID_SUBCLASS EFI_IFR_GUID_SUBCLASS
SubClass opcode.
UINT16 Class
Device Class from the above.
Definition: MdeModuleHii.h:120
EFI_GUID Guid
EFI_IFR_TIANO_GUID.
Definition: MdeModuleHii.h:73
struct _EFI_IFR_GUID_LABEL EFI_IFR_GUID_LABEL
Label opcode.
UINT8 ExtendOpCode
EFI_IFR_EXTEND_OP_CLASS.
Definition: MdeModuleHii.h:119
EFI_GUID Guid
EFI_IFR_TIANO_GUID.
Definition: MdeModuleHii.h:115
unsigned char UINT8
EFI_GUID Guid
EFI_IFR_TIANO_GUID.
Definition: MdeModuleHii.h:91
EFI_QUESTION_ID QuestionId
OneOf Questiond ID binded by OneOf Option.
Definition: MdeModuleHii.h:174
UINT8 ExtendOpCode
EFI_IFR_EXTEND_OP_OPTIONKEY.
Definition: MdeModuleHii.h:170
EFI_IFR_OP_HEADER Header
Definition: MdeModuleHii.h:189
struct _EFI_IFR_GUID_VAREQNAME EFI_IFR_GUID_VAREQNAME
Store the framework vfr vareqval name number.
Device Class opcode.
Definition: MdeModuleHii.h:110
UINT8 Alignment
left, center, or right-aligned.
Definition: MdeModuleHii.h:80
UINT16 Number
Label Number.
Definition: MdeModuleHii.h:58
UINT8 ExtendOpCode
EFI_IFR_EXTEND_OP_TIMEOUT.
Definition: MdeModuleHii.h:95
unsigned short UINT16
EFI_STRING_ID Title
The string token for the banner title.
Definition: MdeModuleHii.h:78
SubClass opcode.
Definition: MdeModuleHii.h:131
EFI_GUID gEdkiiIfrBitVarstoreGuid
struct _EFI_IFR_GUID_OPTIONKEY EFI_IFR_GUID_OPTIONKEY
Store the framework vfr option key value.
UINT8 ExtendOpCode
EFI_IFR_EXTEND_OP_VAREQNAME.
Definition: MdeModuleHii.h:197
struct _EFI_IFR_GUID_BANNER EFI_IFR_GUID_BANNER
Banner opcode.
Timeout opcode.
Definition: MdeModuleHii.h:86
Store the framework vfr vareqval name number.
Definition: MdeModuleHii.h:188
EFI_GUID Guid
EFI_IFR_FRAMEWORK_GUID.
Definition: MdeModuleHii.h:166
EFI_IFR_OP_HEADER Header
Definition: MdeModuleHii.h:69
EFI_GUID gEfiIfrFrameworkGuid
Banner opcode.
Definition: MdeModuleHii.h:68
EFI_IFR_OP_HEADER Header
Definition: MdeModuleHii.h:46
FILE_SECBOOT(PERMITTED)
UINT8 ExtendOpCode
EFI_IFR_EXTEND_OP_LABEL.
Definition: MdeModuleHii.h:54
EFI_IFR_TYPE_VALUE OptionValue
The OneOf Option Value.
Definition: MdeModuleHii.h:178
UINT16 LineNumber
1-based line number.
Definition: MdeModuleHii.h:79
struct _EFI_IFR_GUID_TIMEOUT EFI_IFR_GUID_TIMEOUT
Timeout opcode.
EFI_IFR_OP_HEADER Header
Definition: MdeModuleHii.h:132
struct _EFI_IFR_GUID_CLASS EFI_IFR_GUID_CLASS
Device Class opcode.
UINT16 EFI_STRING_ID
UINT16 TimeOut
TimeOut Value.
Definition: MdeModuleHii.h:96
EFI_IFR_OP_HEADER Header
Definition: MdeModuleHii.h:111
UINT16 EFI_QUESTION_ID
UINT16 KeyValue
The Framework OneOf Option Key Value.
Definition: MdeModuleHii.h:182
UINT8 ExtendOpCode
EFI_IFR_EXTEND_OP_BANNER.
Definition: MdeModuleHii.h:77
EFI_GUID gEfiIfrTianoGuid
FILE_LICENCE(BSD2_PATENT)
Label opcode.
Definition: MdeModuleHii.h:45
EFI_GUID Guid
EFI_IFR_TIANO_GUID.
Definition: MdeModuleHii.h:50
EFI_GUID Guid
EFI_IFR_TIANO_GUID.
Definition: MdeModuleHii.h:136
Store the framework vfr option key value.
Definition: MdeModuleHii.h:161
EFI_GUID Guid
EFI_IFR_FRAMEWORK_GUID.
Definition: MdeModuleHii.h:193