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