Revert last commit about "Clean up MdeModuleHii.h to remove HII_VENDOR_DEVICE_PATH...
[mirror_edk2.git] / BaseTools / Source / C / Include / Common / MdeModuleHii.h
CommitLineData
30fdf114
LG
1/** @file\r
2 EDK II specific HII relative definition.\r
3\r
1c978f48 4 Copyright (c) 2006 - 2007, Intel Corporation. All rights reserved.<BR>\r
30fdf114
LG
5\r
6 This program and the accompanying materials are licensed and made available\r
7 under the terms and conditions of the BSD License which accompanies this\r
8 distribution. The full text of the license may be found at:\r
9 http://opensource.org/licenses/bsd-license.php\r
10\r
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
13\r
14 File Name: MdeModuleHii.h\r
15\r
16**/\r
17\r
18#ifndef _MDEMODULE_HII_H\r
19#define _MDEMODULE_HII_H\r
20\r
21#define NARROW_CHAR 0xFFF0\r
22#define WIDE_CHAR 0xFFF1\r
23#define NON_BREAKING_CHAR 0xFFF2\r
24\r
1c978f48 25#define GLYPH_WIDTH EFI_GLYPH_WIDTH\r
26#define GLYPH_HEIGHT EFI_GLYPH_HEIGHT\r
27\r
28//\r
29// State defined for password statemachine \r
30//\r
30fdf114
LG
31#define BROWSER_STATE_VALIDATE_PASSWORD 0\r
32#define BROWSER_STATE_SET_PASSWORD 1\r
33\r
1c978f48 34\r
35//\r
36// Tiano Implementation specific Device Path definition.\r
37//\r
38#pragma pack(1)\r
39typedef struct {\r
40 VENDOR_DEVICE_PATH VendorDevicePath;\r
41 UINT32 Reserved;\r
42 UINT64 UniqueId;\r
43} HII_VENDOR_DEVICE_PATH_NODE;\r
44#pragma pack()\r
45\r
46typedef struct {\r
47 HII_VENDOR_DEVICE_PATH_NODE Node;\r
48 EFI_DEVICE_PATH_PROTOCOL End;\r
49} HII_VENDOR_DEVICE_PATH;\r
50\r
51\r
52//\r
53// GUIDed opcodes defined for Tiano\r
54//\r
30fdf114
LG
55#define EFI_IFR_TIANO_GUID \\r
56 { 0xf0b1735, 0x87a0, 0x4193, {0xb2, 0x66, 0x53, 0x8c, 0x38, 0xaf, 0x48, 0xce} }\r
57\r
58#pragma pack(1)\r
59\r
60#define EFI_IFR_EXTEND_OP_LABEL 0x0\r
61#define EFI_IFR_EXTEND_OP_BANNER 0x1\r
62#define EFI_IFR_EXTEND_OP_TIMEOUT 0x2\r
63#define EFI_IFR_EXTEND_OP_CLASS 0x3\r
64#define EFI_IFR_EXTEND_OP_SUBCLASS 0x4\r
65\r
66typedef struct _EFI_IFR_GUID_LABEL {\r
67 EFI_IFR_OP_HEADER Header;\r
68 EFI_GUID Guid;\r
69 UINT8 ExtendOpCode;\r
70 UINT16 Number;\r
71} EFI_IFR_GUID_LABEL;\r
72\r
73#define EFI_IFR_BANNER_ALIGN_LEFT 0\r
74#define EFI_IFR_BANNER_ALIGN_CENTER 1\r
75#define EFI_IFR_BANNER_ALIGN_RIGHT 2\r
76\r
77typedef struct _EFI_IFR_GUID_BANNER {\r
78 EFI_IFR_OP_HEADER Header;\r
79 EFI_GUID Guid;\r
1c978f48 80 UINT8 ExtendOpCode; // Extended opcode is EFI_IFR_EXTEND_OP_BANNER\r
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
30fdf114
LG
84} EFI_IFR_GUID_BANNER;\r
85\r
86typedef struct _EFI_IFR_GUID_TIMEOUT {\r
87 EFI_IFR_OP_HEADER Header;\r
88 EFI_GUID Guid;\r
89 UINT8 ExtendOpCode;\r
1c978f48 90 UINT16 TimeOut;\r
30fdf114
LG
91} EFI_IFR_GUID_TIMEOUT;\r
92\r
93#define EFI_NON_DEVICE_CLASS 0x00\r
94#define EFI_DISK_DEVICE_CLASS 0x01\r
95#define EFI_VIDEO_DEVICE_CLASS 0x02\r
96#define EFI_NETWORK_DEVICE_CLASS 0x04\r
97#define EFI_INPUT_DEVICE_CLASS 0x08\r
98#define EFI_ON_BOARD_DEVICE_CLASS 0x10\r
99#define EFI_OTHER_DEVICE_CLASS 0x20\r
100\r
101typedef struct _EFI_IFR_GUID_CLASS {\r
102 EFI_IFR_OP_HEADER Header;\r
103 EFI_GUID Guid;\r
104 UINT8 ExtendOpCode;\r
1c978f48 105 UINT16 Class;\r
30fdf114
LG
106} EFI_IFR_GUID_CLASS;\r
107\r
108#define EFI_SETUP_APPLICATION_SUBCLASS 0x00\r
109#define EFI_GENERAL_APPLICATION_SUBCLASS 0x01\r
110#define EFI_FRONT_PAGE_SUBCLASS 0x02\r
111#define EFI_SINGLE_USE_SUBCLASS 0x03\r
112\r
113typedef struct _EFI_IFR_GUID_SUBCLASS {\r
114 EFI_IFR_OP_HEADER Header;\r
115 EFI_GUID Guid;\r
116 UINT8 ExtendOpCode;\r
1c978f48 117 UINT16 SubClass;\r
30fdf114
LG
118} EFI_IFR_GUID_SUBCLASS;\r
119\r
1c978f48 120//\r
121// GUIDed opcodes defined for Tiano\r
122//\r
30fdf114
LG
123#define EFI_IFR_FRAMEWORK_GUID \\r
124 { 0x31ca5d1a, 0xd511, 0x4931, { 0xb7, 0x82, 0xae, 0x6b, 0x2b, 0x17, 0x8c, 0xd7 } }\r
125\r
126#define EFI_IFR_EXTEND_OP_OPTIONKEY 0x0\r
127#define EFI_IFR_EXTEND_OP_VAREQNAME 0x1\r
1c978f48 128//\r
129// Store the framework vfr option key value\r
130//\r
30fdf114
LG
131typedef struct _EFI_IFR_GUID_OPTIONKEY {\r
132 EFI_IFR_OP_HEADER Header;\r
133 EFI_GUID Guid;\r
134 UINT8 ExtendOpCode;\r
135 EFI_QUESTION_ID QuestionId;\r
136 EFI_IFR_TYPE_VALUE OptionValue;\r
1c978f48 137 EFI_QUESTION_ID KeyValue;\r
30fdf114
LG
138} EFI_IFR_GUID_OPTIONKEY;\r
139\r
1c978f48 140//\r
141// Store the framework vfr vareqval name number\r
142//\r
30fdf114
LG
143typedef struct _EFI_IFR_GUID_VAREQNAME {\r
144 EFI_IFR_OP_HEADER Header;\r
145 EFI_GUID Guid;\r
146 UINT8 ExtendOpCode;\r
147 EFI_QUESTION_ID QuestionId;\r
1c978f48 148 EFI_STRING_ID NameId;\r
30fdf114
LG
149} EFI_IFR_GUID_VAREQNAME;\r
150\r
151#pragma pack()\r
152\r
153#endif\r
154\r