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