]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Include/Guid/MdeModuleHii.h
MdeModulePkg: Apply uncrustify changes
[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
d1102dba 4Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
9d510e61 5SPDX-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 42typedef 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 65typedef 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 83typedef 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 107typedef 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 128typedef 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 158typedef 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 185typedef 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
227extern EFI_GUID gEfiIfrTianoGuid;\r
228extern EFI_GUID gEfiIfrFrameworkGuid;\r
229extern EFI_GUID gEdkiiIfrBitVarstoreGuid;\r
5c526736 230\r
93e3992d 231#endif\r