]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Include/MdeModuleHii.h
Add the missing PI capsule architecture protocol.
[mirror_edk2.git] / MdeModulePkg / Include / MdeModuleHii.h
CommitLineData
d393bdda 1/** @file\r
e5618791 2 EDKII extented HII IFR guid opcodes.\r
93e3992d 3\r
d393bdda 4Copyright (c) 2006 - 2008, Intel Corporation. <BR>\r
93e3992d 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
5f597758
LG
15#ifndef __MDEMODULE_HII_H__\r
16#define __MDEMODULE_HII_H__\r
93e3992d 17\r
18#define NARROW_CHAR 0xFFF0\r
19#define WIDE_CHAR 0xFFF1\r
20#define NON_BREAKING_CHAR 0xFFF2\r
21\r
ebafc55b
LG
22///\r
23/// State defined for password statemachine \r
24///\r
93e3992d 25#define BROWSER_STATE_VALIDATE_PASSWORD 0\r
26#define BROWSER_STATE_SET_PASSWORD 1\r
27\r
28\r
ebafc55b
LG
29///\r
30/// HII specific Vendor Device Path Node definition.\r
31///\r
c7493fe5 32#pragma pack(1)\r
93e3992d 33typedef struct {\r
34 VENDOR_DEVICE_PATH VendorDevicePath;\r
c7493fe5 35 UINT32 Reserved;\r
36 UINT64 UniqueId;\r
93e3992d 37} HII_VENDOR_DEVICE_PATH_NODE;\r
c7493fe5 38#pragma pack()\r
93e3992d 39\r
ebafc55b
LG
40///\r
41/// HII specific Vendor Device Path definition.\r
42///\r
93e3992d 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
ebafc55b
LG
48///\r
49/// GUIDed opcodes defined for EDKII implementation\r
50///\r
93e3992d 51#define EFI_IFR_TIANO_GUID \\r
52 { 0xf0b1735, 0x87a0, 0x4193, {0xb2, 0x66, 0x53, 0x8c, 0x38, 0xaf, 0x48, 0xce} }\r
53\r
93e3992d 54#pragma pack(1)\r
55\r
ebafc55b
LG
56///\r
57/// EDKII implementation extension opcodes, new extension can be added here later.\r
58///\r
93e3992d 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
ebafc55b
LG
65///\r
66/// Label opcode\r
67///\r
93e3992d 68typedef struct _EFI_IFR_GUID_LABEL {\r
69 EFI_IFR_OP_HEADER Header;\r
ebafc55b
LG
70 ///\r
71 /// EFI_IFR_TIANO_GUID\r
72 ///\r
93e3992d 73 EFI_GUID Guid;\r
ebafc55b
LG
74 ///\r
75 /// EFI_IFR_EXTEND_OP_LABEL\r
76 ///\r
93e3992d 77 UINT8 ExtendOpCode;\r
ebafc55b
LG
78 ///\r
79 /// Label Number\r
80 ///\r
93e3992d 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
ebafc55b
LG
88///\r
89/// Banner opcode\r
90///\r
93e3992d 91typedef struct _EFI_IFR_GUID_BANNER {\r
92 EFI_IFR_OP_HEADER Header;\r
ebafc55b
LG
93 ///\r
94 /// EFI_IFR_TIANO_GUID\r
95 ///\r
93e3992d 96 EFI_GUID Guid;\r
ebafc55b
LG
97 ///\r
98 /// EFI_IFR_EXTEND_OP_BANNER\r
99 ///\r
100 UINT8 ExtendOpCode;\r
e5618791
LG
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
93e3992d 104} EFI_IFR_GUID_BANNER;\r
105\r
ebafc55b
LG
106///\r
107/// Timeout opcode\r
108///\r
93e3992d 109typedef struct _EFI_IFR_GUID_TIMEOUT {\r
110 EFI_IFR_OP_HEADER Header;\r
ebafc55b
LG
111 ///\r
112 /// EFI_IFR_TIANO_GUID\r
113 ///\r
93e3992d 114 EFI_GUID Guid;\r
ebafc55b
LG
115 ///\r
116 /// EFI_IFR_EXTEND_OP_TIMEOUT\r
117 ///\r
93e3992d 118 UINT8 ExtendOpCode;\r
e5618791 119 UINT16 TimeOut; ///< TimeOut Value\r
93e3992d 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
ebafc55b
LG
130///\r
131/// Device Class opcode\r
132///\r
93e3992d 133typedef struct _EFI_IFR_GUID_CLASS {\r
134 EFI_IFR_OP_HEADER Header;\r
ebafc55b
LG
135 ///\r
136 /// EFI_IFR_TIANO_GUID\r
137 ///\r
93e3992d 138 EFI_GUID Guid;\r
ebafc55b
LG
139 ///\r
140 /// EFI_IFR_EXTEND_OP_CLASS\r
141 ///\r
93e3992d 142 UINT8 ExtendOpCode;\r
e5618791 143 UINT16 Class; ///< Device Class from the above\r
93e3992d 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
ebafc55b
LG
151///\r
152/// SubClass opcode\r
153///\r
93e3992d 154typedef struct _EFI_IFR_GUID_SUBCLASS {\r
155 EFI_IFR_OP_HEADER Header;\r
ebafc55b
LG
156 ///\r
157 /// EFI_IFR_TIANO_GUID\r
158 ///\r
93e3992d 159 EFI_GUID Guid;\r
ebafc55b
LG
160 ///\r
161 /// EFI_IFR_EXTEND_OP_SUBCLASS\r
162 ///\r
93e3992d 163 UINT8 ExtendOpCode;\r
e5618791 164 UINT16 SubClass; ///< Sub Class type from the above\r
93e3992d 165} EFI_IFR_GUID_SUBCLASS;\r
166\r
ebafc55b
LG
167///\r
168/// GUIDed opcodes support for framework vfr.\r
169///\r
f2a05cc2 170#define EFI_IFR_FRAMEWORK_GUID \\r
171 { 0x31ca5d1a, 0xd511, 0x4931, { 0xb7, 0x82, 0xae, 0x6b, 0x2b, 0x17, 0x8c, 0xd7 } }\r
172\r
ebafc55b
LG
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
f2a05cc2 178#define EFI_IFR_EXTEND_OP_OPTIONKEY 0x0\r
179#define EFI_IFR_EXTEND_OP_VAREQNAME 0x1\r
180\r
ebafc55b
LG
181///\r
182/// Store the framework vfr option key value\r
183///\r
f02d0c0f
LG
184typedef struct _EFI_IFR_GUID_OPTIONKEY {\r
185 EFI_IFR_OP_HEADER Header;\r
ebafc55b
LG
186 ///\r
187 /// EFI_IFR_FRAMEWORK_GUID\r
188 ///\r
f02d0c0f 189 EFI_GUID Guid;\r
ebafc55b
LG
190 ///\r
191 /// EFI_IFR_EXTEND_OP_OPTIONKEY\r
192 ///\r
f02d0c0f 193 UINT8 ExtendOpCode;\r
ebafc55b
LG
194 ///\r
195 /// OneOf Questiond ID binded by OneOf Option\r
196 ///\r
f02d0c0f 197 EFI_QUESTION_ID QuestionId;\r
ebafc55b
LG
198 ///\r
199 /// The OneOf Option Value.\r
200 ///\r
f02d0c0f 201 EFI_IFR_TYPE_VALUE OptionValue;\r
ebafc55b
LG
202 ///\r
203 /// The Framework OneOf Option Key Value.\r
204 ///\r
f2a05cc2 205 UINT16 KeyValue;\r
f02d0c0f
LG
206} EFI_IFR_GUID_OPTIONKEY;\r
207\r
ebafc55b
LG
208///\r
209/// Store the framework vfr vareqval name number\r
210///\r
f2a05cc2 211typedef struct _EFI_IFR_GUID_VAREQNAME {\r
212 EFI_IFR_OP_HEADER Header;\r
ebafc55b
LG
213 ///\r
214 /// EFI_IFR_FRAMEWORK_GUID\r
215 ///\r
f2a05cc2 216 EFI_GUID Guid;\r
ebafc55b
LG
217 ///\r
218 /// EFI_IFR_EXTEND_OP_VAREQNAME\r
219 ///\r
f2a05cc2 220 UINT8 ExtendOpCode;\r
ebafc55b
LG
221 ///\r
222 /// Question ID of the Numeric Opcode created.\r
223 ///\r
f2a05cc2 224 EFI_QUESTION_ID QuestionId;\r
ebafc55b
LG
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
7b05e2c9 231 UINT16 NameId;\r
f2a05cc2 232} EFI_IFR_GUID_VAREQNAME;\r
233\r
93e3992d 234#pragma pack()\r
235\r
236#endif\r
237\r