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