]> git.proxmox.com Git - mirror_edk2.git/blob - IntelFrameworkModulePkg/Universal/BdsDxe/BootMaint/FormGuid.h
Enhance BDS to support Boot/Driver option whose option number >= 0xFF.
[mirror_edk2.git] / IntelFrameworkModulePkg / Universal / BdsDxe / BootMaint / FormGuid.h
1 /** @file
2 Formset guids, form id and VarStore data structure for Boot Maintenance Manager.
3
4 Copyright (c) 2004 - 2011, Intel Corporation. All rights reserved.<BR>
5 This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
9
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12
13 **/
14 #ifndef _FORM_GUID_H_
15 #define _FORM_GUID_H_
16
17 #define BOOT_MAINT_FORMSET_GUID \
18 { \
19 0x642237c7, 0x35d4, 0x472d, {0x83, 0x65, 0x12, 0xe0, 0xcc, 0xf2, 0x7a, 0x22} \
20 }
21
22 #define FILE_EXPLORE_FORMSET_GUID \
23 { \
24 0x1f2d63e1, 0xfebd, 0x4dc7, {0x9c, 0xc5, 0xba, 0x2b, 0x1c, 0xef, 0x9c, 0x5b} \
25 }
26
27 #define FORM_MAIN_ID 0x1001
28 #define FORM_BOOT_ADD_ID 0x1002
29 #define FORM_BOOT_DEL_ID 0x1003
30 #define FORM_BOOT_CHG_ID 0x1004
31 #define FORM_DRV_ADD_ID 0x1005
32 #define FORM_DRV_DEL_ID 0x1006
33 #define FORM_DRV_CHG_ID 0x1007
34 #define FORM_CON_MAIN_ID 0x1008
35 #define FORM_CON_IN_ID 0x1009
36 #define FORM_CON_OUT_ID 0x100A
37 #define FORM_CON_ERR_ID 0x100B
38 #define FORM_FILE_SEEK_ID 0x100C
39 #define FORM_FILE_NEW_SEEK_ID 0x100D
40 #define FORM_DRV_ADD_FILE_ID 0x100E
41 #define FORM_DRV_ADD_HANDLE_ID 0x100F
42 #define FORM_DRV_ADD_HANDLE_DESC_ID 0x1010
43 #define FORM_BOOT_NEXT_ID 0x1011
44 #define FORM_TIME_OUT_ID 0x1012
45 #define FORM_RESET 0x1013
46 #define FORM_BOOT_SETUP_ID 0x1014
47 #define FORM_DRIVER_SETUP_ID 0x1015
48 #define FORM_BOOT_LEGACY_DEVICE_ID 0x1016
49 #define FORM_CON_COM_ID 0x1017
50 #define FORM_CON_COM_SETUP_ID 0x1018
51 #define FORM_SET_FD_ORDER_ID 0x1019
52 #define FORM_SET_HD_ORDER_ID 0x101A
53 #define FORM_SET_CD_ORDER_ID 0x101B
54 #define FORM_SET_NET_ORDER_ID 0x101C
55 #define FORM_SET_BEV_ORDER_ID 0x101D
56 #define FORM_FILE_EXPLORER_ID 0x101E
57 #define FORM_BOOT_ADD_DESCRIPTION_ID 0x101F
58 #define FORM_DRIVER_ADD_FILE_DESCRIPTION_ID 0x1020
59 #define FORM_CON_MODE_ID 0x1021
60
61 #define MAXIMUM_FORM_ID 0x10FF
62
63 #define KEY_VALUE_COM_SET_BAUD_RATE 0x1101
64 #define KEY_VALUE_COM_SET_DATA_BITS 0x1102
65 #define KEY_VALUE_COM_SET_STOP_BITS 0x1103
66 #define KEY_VALUE_COM_SET_PARITY 0x1104
67 #define KEY_VALUE_COM_SET_TERMI_TYPE 0x1105
68 #define KEY_VALUE_MAIN_BOOT_NEXT 0x1106
69 #define KEY_VALUE_BOOT_ADD_DESC_DATA 0x1107
70 #define KEY_VALUE_BOOT_ADD_OPT_DATA 0x1108
71 #define KEY_VALUE_DRIVER_ADD_DESC_DATA 0x1109
72 #define KEY_VALUE_DRIVER_ADD_OPT_DATA 0x110A
73 #define KEY_VALUE_SAVE_AND_EXIT 0x110B
74 #define KEY_VALUE_NO_SAVE_AND_EXIT 0x110C
75 #define KEY_VALUE_BOOT_FROM_FILE 0x110D
76
77 #define MAXIMUM_NORMAL_KEY_VALUE 0x11FF
78
79 //
80 // Varstore ID defined for Buffer Storage
81 //
82 #define VARSTORE_ID_BOOT_MAINT 0x1000
83 #define VARSTORE_ID_FILE_EXPLORER 0x1001
84
85 //
86 // End Label
87 //
88 #define LABEL_END 0xffff
89 #define MAX_MENU_NUMBER 100
90
91 ///
92 /// This is the structure that will be used to store the
93 /// question's current value. Use it at initialize time to
94 /// set default value for each question. When using at run
95 /// time, this map is returned by the callback function,
96 /// so dynamically changing the question's value will be
97 /// possible through this mechanism
98 ///
99 typedef struct {
100 //
101 // Three questions displayed at the main page
102 // for Timeout, BootNext Variables respectively
103 //
104 UINT16 BootTimeOut;
105 UINT16 BootNext;
106
107 //
108 // This is the COM1 Attributes value storage
109 //
110 UINT8 COM1BaudRate;
111 UINT8 COM1DataRate;
112 UINT8 COM1StopBits;
113 UINT8 COM1Parity;
114 UINT8 COM1TerminalType;
115
116 //
117 // This is the COM2 Attributes value storage
118 //
119 UINT8 COM2BaudRate;
120 UINT8 COM2DataRate;
121 UINT8 COM2StopBits;
122 UINT8 COM2Parity;
123 UINT8 COM2TerminalType;
124
125 //
126 // Driver Option Add Handle page storage
127 //
128 UINT16 DriverAddHandleDesc[MAX_MENU_NUMBER];
129 UINT16 DriverAddHandleOptionalData[MAX_MENU_NUMBER];
130 UINT8 DriverAddActive;
131 UINT8 DriverAddForceReconnect;
132
133 //
134 // Console Input/Output/Errorout using COM port check storage
135 //
136 UINT8 ConsoleInputCOM1;
137 UINT8 ConsoleInputCOM2;
138 UINT8 ConsoleOutputCOM1;
139 UINT8 ConsoleOutputCOM2;
140 UINT8 ConsoleErrorCOM1;
141 UINT8 ConsoleErrorCOM2;
142
143 //
144 // At most 100 input/output/errorout device for console storage
145 //
146 UINT8 ConsoleCheck[MAX_MENU_NUMBER];
147
148 //
149 // Boot or Driver Option Order storage
150 // The value is the OptionNumber+1 because the order list value cannot be 0
151 // Use UINT32 to hold the potential value 0xFFFF+1=0x10000
152 //
153 UINT32 OptionOrder[MAX_MENU_NUMBER];
154
155 //
156 // Boot or Driver Option Delete storage
157 //
158 BOOLEAN OptionDel[MAX_MENU_NUMBER];
159
160 //
161 // This is the Terminal Attributes value storage
162 //
163 UINT8 COMBaudRate;
164 UINT8 COMDataRate;
165 UINT8 COMStopBits;
166 UINT8 COMParity;
167 UINT8 COMTerminalType;
168
169 //
170 // Legacy Device Order Selection Storage
171 //
172 UINT8 LegacyFD[MAX_MENU_NUMBER];
173 UINT8 LegacyHD[MAX_MENU_NUMBER];
174 UINT8 LegacyCD[MAX_MENU_NUMBER];
175 UINT8 LegacyNET[MAX_MENU_NUMBER];
176 UINT8 LegacyBEV[MAX_MENU_NUMBER];
177
178 //
179 // We use DisableMap array to record the enable/disable state of each boot device
180 // It should be taken as a bit array, from left to right there are totally 256 bits
181 // the most left one stands for BBS table item 0, and the most right one stands for item 256
182 // If the bit is 1, it means the boot device has been disabled.
183 //
184 UINT8 DisableMap[32];
185
186 //
187 // Console Output Text Mode
188 //
189 UINT16 ConsoleOutMode;
190
191 //
192 // UINT16 PadArea[10];
193 //
194 } BMM_FAKE_NV_DATA;
195
196 //
197 // Key used by File Explorer forms
198 //
199 #define KEY_VALUE_SAVE_AND_EXIT_BOOT 0x1000
200 #define KEY_VALUE_NO_SAVE_AND_EXIT_BOOT 0x1001
201 #define KEY_VALUE_SAVE_AND_EXIT_DRIVER 0x1002
202 #define KEY_VALUE_NO_SAVE_AND_EXIT_DRIVER 0x1003
203
204 ///
205 /// This is the data structure used by File Explorer formset
206 ///
207 typedef struct {
208 UINT16 DescriptionData[75];
209 UINT16 OptionalData[127];
210 UINT8 Active;
211 UINT8 ForceReconnect;
212 } FILE_EXPLORER_NV_DATA;
213
214 #endif
215