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