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