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