]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Include/Guid/MdeModuleHii.h
Committing changes to the comments, to improve code documentation.
[mirror_edk2.git] / MdeModulePkg / Include / Guid / 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
ebafc55b
LG
28///\r
29/// GUIDed opcodes defined for EDKII implementation\r
30///\r
93e3992d 31#define EFI_IFR_TIANO_GUID \\r
32 { 0xf0b1735, 0x87a0, 0x4193, {0xb2, 0x66, 0x53, 0x8c, 0x38, 0xaf, 0x48, 0xce} }\r
33\r
93e3992d 34#pragma pack(1)\r
35\r
ebafc55b
LG
36///\r
37/// EDKII implementation extension opcodes, new extension can be added here later.\r
38///\r
93e3992d 39#define EFI_IFR_EXTEND_OP_LABEL 0x0\r
40#define EFI_IFR_EXTEND_OP_BANNER 0x1\r
41#define EFI_IFR_EXTEND_OP_TIMEOUT 0x2\r
42#define EFI_IFR_EXTEND_OP_CLASS 0x3\r
43#define EFI_IFR_EXTEND_OP_SUBCLASS 0x4\r
44\r
ebafc55b
LG
45///\r
46/// Label opcode\r
47///\r
93e3992d 48typedef struct _EFI_IFR_GUID_LABEL {\r
49 EFI_IFR_OP_HEADER Header;\r
ebafc55b
LG
50 ///\r
51 /// EFI_IFR_TIANO_GUID\r
52 ///\r
93e3992d 53 EFI_GUID Guid;\r
ebafc55b
LG
54 ///\r
55 /// EFI_IFR_EXTEND_OP_LABEL\r
56 ///\r
93e3992d 57 UINT8 ExtendOpCode;\r
ebafc55b
LG
58 ///\r
59 /// Label Number\r
60 ///\r
93e3992d 61 UINT16 Number;\r
62} EFI_IFR_GUID_LABEL;\r
63\r
64#define EFI_IFR_BANNER_ALIGN_LEFT 0\r
65#define EFI_IFR_BANNER_ALIGN_CENTER 1\r
66#define EFI_IFR_BANNER_ALIGN_RIGHT 2\r
67\r
ebafc55b
LG
68///\r
69/// Banner opcode\r
70///\r
93e3992d 71typedef struct _EFI_IFR_GUID_BANNER {\r
72 EFI_IFR_OP_HEADER Header;\r
ebafc55b
LG
73 ///\r
74 /// EFI_IFR_TIANO_GUID\r
75 ///\r
93e3992d 76 EFI_GUID Guid;\r
ebafc55b
LG
77 ///\r
78 /// EFI_IFR_EXTEND_OP_BANNER\r
79 ///\r
80 UINT8 ExtendOpCode;\r
e5618791
LG
81 EFI_STRING_ID Title; ///< The string token for the banner title\r
82 UINT16 LineNumber; ///< 1-based line number\r
83 UINT8 Alignment; ///< left, center, or right-aligned\r
93e3992d 84} EFI_IFR_GUID_BANNER;\r
85\r
ebafc55b
LG
86///\r
87/// Timeout opcode\r
88///\r
93e3992d 89typedef struct _EFI_IFR_GUID_TIMEOUT {\r
90 EFI_IFR_OP_HEADER Header;\r
ebafc55b
LG
91 ///\r
92 /// EFI_IFR_TIANO_GUID\r
93 ///\r
93e3992d 94 EFI_GUID Guid;\r
ebafc55b
LG
95 ///\r
96 /// EFI_IFR_EXTEND_OP_TIMEOUT\r
97 ///\r
93e3992d 98 UINT8 ExtendOpCode;\r
e5618791 99 UINT16 TimeOut; ///< TimeOut Value\r
93e3992d 100} EFI_IFR_GUID_TIMEOUT;\r
101\r
102#define EFI_NON_DEVICE_CLASS 0x00\r
103#define EFI_DISK_DEVICE_CLASS 0x01\r
104#define EFI_VIDEO_DEVICE_CLASS 0x02\r
105#define EFI_NETWORK_DEVICE_CLASS 0x04\r
106#define EFI_INPUT_DEVICE_CLASS 0x08\r
107#define EFI_ON_BOARD_DEVICE_CLASS 0x10\r
108#define EFI_OTHER_DEVICE_CLASS 0x20\r
109\r
ebafc55b
LG
110///\r
111/// Device Class opcode\r
112///\r
93e3992d 113typedef struct _EFI_IFR_GUID_CLASS {\r
114 EFI_IFR_OP_HEADER Header;\r
ebafc55b
LG
115 ///\r
116 /// EFI_IFR_TIANO_GUID\r
117 ///\r
93e3992d 118 EFI_GUID Guid;\r
ebafc55b
LG
119 ///\r
120 /// EFI_IFR_EXTEND_OP_CLASS\r
121 ///\r
93e3992d 122 UINT8 ExtendOpCode;\r
e5618791 123 UINT16 Class; ///< Device Class from the above\r
93e3992d 124} EFI_IFR_GUID_CLASS;\r
125\r
126#define EFI_SETUP_APPLICATION_SUBCLASS 0x00\r
127#define EFI_GENERAL_APPLICATION_SUBCLASS 0x01\r
128#define EFI_FRONT_PAGE_SUBCLASS 0x02\r
129#define EFI_SINGLE_USE_SUBCLASS 0x03\r
130\r
ebafc55b
LG
131///\r
132/// SubClass opcode\r
133///\r
93e3992d 134typedef struct _EFI_IFR_GUID_SUBCLASS {\r
135 EFI_IFR_OP_HEADER Header;\r
ebafc55b
LG
136 ///\r
137 /// EFI_IFR_TIANO_GUID\r
138 ///\r
93e3992d 139 EFI_GUID Guid;\r
ebafc55b
LG
140 ///\r
141 /// EFI_IFR_EXTEND_OP_SUBCLASS\r
142 ///\r
93e3992d 143 UINT8 ExtendOpCode;\r
e5618791 144 UINT16 SubClass; ///< Sub Class type from the above\r
93e3992d 145} EFI_IFR_GUID_SUBCLASS;\r
146\r
ebafc55b
LG
147///\r
148/// GUIDed opcodes support for framework vfr.\r
149///\r
f2a05cc2 150#define EFI_IFR_FRAMEWORK_GUID \\r
151 { 0x31ca5d1a, 0xd511, 0x4931, { 0xb7, 0x82, 0xae, 0x6b, 0x2b, 0x17, 0x8c, 0xd7 } }\r
152\r
ebafc55b 153///\r
e9b67286 154/// Two extended opcodes are added, and new extensions can be added here later.\r
ebafc55b
LG
155/// One is for framework OneOf question Option Key value,\r
156/// Another is for framework vareqval.\r
157///\r
f2a05cc2 158#define EFI_IFR_EXTEND_OP_OPTIONKEY 0x0\r
159#define EFI_IFR_EXTEND_OP_VAREQNAME 0x1\r
160\r
ebafc55b
LG
161///\r
162/// Store the framework vfr option key value\r
163///\r
f02d0c0f
LG
164typedef struct _EFI_IFR_GUID_OPTIONKEY {\r
165 EFI_IFR_OP_HEADER Header;\r
ebafc55b
LG
166 ///\r
167 /// EFI_IFR_FRAMEWORK_GUID\r
168 ///\r
f02d0c0f 169 EFI_GUID Guid;\r
ebafc55b
LG
170 ///\r
171 /// EFI_IFR_EXTEND_OP_OPTIONKEY\r
172 ///\r
f02d0c0f 173 UINT8 ExtendOpCode;\r
ebafc55b
LG
174 ///\r
175 /// OneOf Questiond ID binded by OneOf Option\r
176 ///\r
f02d0c0f 177 EFI_QUESTION_ID QuestionId;\r
ebafc55b
LG
178 ///\r
179 /// The OneOf Option Value.\r
180 ///\r
f02d0c0f 181 EFI_IFR_TYPE_VALUE OptionValue;\r
ebafc55b
LG
182 ///\r
183 /// The Framework OneOf Option Key Value.\r
184 ///\r
f2a05cc2 185 UINT16 KeyValue;\r
f02d0c0f
LG
186} EFI_IFR_GUID_OPTIONKEY;\r
187\r
ebafc55b
LG
188///\r
189/// Store the framework vfr vareqval name number\r
190///\r
f2a05cc2 191typedef struct _EFI_IFR_GUID_VAREQNAME {\r
192 EFI_IFR_OP_HEADER Header;\r
ebafc55b
LG
193 ///\r
194 /// EFI_IFR_FRAMEWORK_GUID\r
195 ///\r
f2a05cc2 196 EFI_GUID Guid;\r
ebafc55b
LG
197 ///\r
198 /// EFI_IFR_EXTEND_OP_VAREQNAME\r
199 ///\r
f2a05cc2 200 UINT8 ExtendOpCode;\r
ebafc55b
LG
201 ///\r
202 /// Question ID of the Numeric Opcode created.\r
203 ///\r
f2a05cc2 204 EFI_QUESTION_ID QuestionId;\r
ebafc55b
LG
205 ///\r
206 /// For vareqval (0x100), NameId is 0x100.\r
207 /// This value will converte to a Unicode String following this rule.\r
208 /// sprintf(StringBuffer, "%d", NameId)\r
209 /// The the Unicode String will be used as a EFI Variable Name.\r
210 ///\r
7b05e2c9 211 UINT16 NameId;\r
f2a05cc2 212} EFI_IFR_GUID_VAREQNAME;\r
213\r
93e3992d 214#pragma pack()\r
215\r
5c526736
LG
216extern EFI_GUID gEfiIfrTianoGuid;\r
217extern EFI_GUID gEfiIfrFrameworkGuid;\r
218\r
93e3992d 219#endif\r
220\r