summaryrefslogtreecommitdiffstats
path: root/MdeModulePkg/Library/BootMaintenanceManagerUiLib/FormGuid.h
blob: 2bf233423dd0f33d40116c85681584b781736fdc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
/** @file
Formset guids, form id and VarStore data structure for Boot Maintenance Manager.

Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent

**/

#ifndef _FORM_GUID_H_
#define _FORM_GUID_H_

#define BOOT_MAINT_FORMSET_GUID \
  { \
  0x642237c7, 0x35d4, 0x472d, {0x83, 0x65, 0x12, 0xe0, 0xcc, 0xf2, 0x7a, 0x22} \
  }

#define FORM_MAIN_ID                         0x1001
#define FORM_BOOT_ADD_ID                     0x1002
#define FORM_BOOT_DEL_ID                     0x1003
#define FORM_BOOT_CHG_ID                     0x1004
#define FORM_DRV_ADD_ID                      0x1005
#define FORM_DRV_DEL_ID                      0x1006
#define FORM_DRV_CHG_ID                      0x1007
#define FORM_CON_MAIN_ID                     0x1008
#define FORM_CON_IN_ID                       0x1009
#define FORM_CON_OUT_ID                      0x100A
#define FORM_CON_ERR_ID                      0x100B
#define FORM_FILE_SEEK_ID                    0x100C
#define FORM_FILE_NEW_SEEK_ID                0x100D
#define FORM_DRV_ADD_FILE_ID                 0x100E
#define FORM_DRV_ADD_HANDLE_ID               0x100F
#define FORM_DRV_ADD_HANDLE_DESC_ID          0x1010
#define FORM_BOOT_NEXT_ID                    0x1011
#define FORM_TIME_OUT_ID                     0x1012
#define FORM_BOOT_SETUP_ID                   0x1014
#define FORM_DRIVER_SETUP_ID                 0x1015
#define FORM_BOOT_LEGACY_DEVICE_ID           0x1016
#define FORM_CON_COM_ID                      0x1017
#define FORM_CON_COM_SETUP_ID                0x1018
#define FORM_BOOT_ADD_DESCRIPTION_ID         0x101F
#define FORM_DRIVER_ADD_FILE_DESCRIPTION_ID  0x1020
#define FORM_CON_MODE_ID                     0x1021
#define FORM_BOOT_FROM_FILE_ID               0x1024

#define MAXIMUM_FORM_ID  0x10FF

#define KEY_VALUE_COM_SET_BAUD_RATE         0x1101
#define KEY_VALUE_COM_SET_DATA_BITS         0x1102
#define KEY_VALUE_COM_SET_STOP_BITS         0x1103
#define KEY_VALUE_COM_SET_PARITY            0x1104
#define KEY_VALUE_COM_SET_TERMI_TYPE        0x1105
#define KEY_VALUE_MAIN_BOOT_NEXT            0x1106
#define KEY_VALUE_BOOT_ADD_DESC_DATA        0x1107
#define KEY_VALUE_BOOT_ADD_OPT_DATA         0x1108
#define KEY_VALUE_DRIVER_ADD_DESC_DATA      0x1109
#define KEY_VALUE_DRIVER_ADD_OPT_DATA       0x110A
#define KEY_VALUE_SAVE_AND_EXIT             0x110B
#define KEY_VALUE_NO_SAVE_AND_EXIT          0x110C
#define KEY_VALUE_BOOT_FROM_FILE            0x110D
#define FORM_RESET                          0x110E
#define KEY_VALUE_BOOT_DESCRIPTION          0x110F
#define KEY_VALUE_BOOT_OPTION               0x1110
#define KEY_VALUE_DRIVER_DESCRIPTION        0x1111
#define KEY_VALUE_DRIVER_OPTION             0x1112
#define KEY_VALUE_SAVE_AND_EXIT_BOOT        0x1113
#define KEY_VALUE_NO_SAVE_AND_EXIT_BOOT     0x1114
#define KEY_VALUE_SAVE_AND_EXIT_DRIVER      0x1115
#define KEY_VALUE_NO_SAVE_AND_EXIT_DRIVER   0x1116
#define KEY_VALUE_TRIGGER_FORM_OPEN_ACTION  0x1117

#define MAXIMUM_NORMAL_KEY_VALUE  0x11FF

//
// Varstore ID defined for Buffer Storage
//
#define VARSTORE_ID_BOOT_MAINT  0x1000

//
// End Label
//
#define LABEL_FORM_MAIN_START  0xfffc
#define LABEL_FORM_MAIN_END    0xfffd

#define LABEL_BMM_PLATFORM_INFORMATION  0xfffe
#define LABEL_END                       0xffff
#define MAX_MENU_NUMBER                 100

///
/// This is the structure that will be used to store the
/// question's current value. Use it at initialize time to
/// set default value for each question. When using at run
/// time, this map is returned by the callback function,
/// so dynamically changing the question's value will be
/// possible through this mechanism
///
typedef struct {
  //
  // Three questions displayed at the main page
  // for Timeout, BootNext, Variables respectively
  //
  UINT16     BootTimeOut;
  UINT32     BootNext;

  //
  // This is the COM1 Attributes value storage
  //
  UINT8      COM1BaudRate;
  UINT8      COM1DataRate;
  UINT8      COM1StopBits;
  UINT8      COM1Parity;
  UINT8      COM1TerminalType;

  //
  // This is the COM2 Attributes value storage
  //
  UINT8      COM2BaudRate;
  UINT8      COM2DataRate;
  UINT8      COM2StopBits;
  UINT8      COM2Parity;
  UINT8      COM2TerminalType;

  //
  // Driver Option Add Handle page storage
  //
  UINT16     DriverAddHandleDesc[MAX_MENU_NUMBER];
  UINT16     DriverAddHandleOptionalData[MAX_MENU_NUMBER];
  UINT8      DriverAddActive;
  UINT8      DriverAddForceReconnect;

  //
  // Console Input/Output/Errorout using COM port check storage
  //
  UINT8      ConsoleInputCOM1;
  UINT8      ConsoleInputCOM2;
  UINT8      ConsoleOutputCOM1;
  UINT8      ConsoleOutputCOM2;
  UINT8      ConsoleErrorCOM1;
  UINT8      ConsoleErrorCOM2;

  //
  // At most 100 input/output/errorout device for console storage
  //
  UINT8      ConsoleCheck[MAX_MENU_NUMBER];

  //
  // At most 100 input/output/errorout device for console storage
  //
  UINT8      ConsoleInCheck[MAX_MENU_NUMBER];
  UINT8      ConsoleOutCheck[MAX_MENU_NUMBER];
  UINT8      ConsoleErrCheck[MAX_MENU_NUMBER];

  //
  // Boot or Driver Option Order storage
  // The value is the OptionNumber+1 because the order list value cannot be 0
  // Use UINT32 to hold the potential value 0xFFFF+1=0x10000
  //
  UINT32     BootOptionOrder[MAX_MENU_NUMBER];
  UINT32     DriverOptionOrder[MAX_MENU_NUMBER];
  //
  // Boot or Driver Option Delete storage
  //
  BOOLEAN    BootOptionDel[MAX_MENU_NUMBER];
  BOOLEAN    DriverOptionDel[MAX_MENU_NUMBER];
  BOOLEAN    BootOptionDelMark[MAX_MENU_NUMBER];
  BOOLEAN    DriverOptionDelMark[MAX_MENU_NUMBER];

  //
  // This is the Terminal Attributes value storage
  //
  UINT8      COMBaudRate[MAX_MENU_NUMBER];
  UINT8      COMDataRate[MAX_MENU_NUMBER];
  UINT8      COMStopBits[MAX_MENU_NUMBER];
  UINT8      COMParity[MAX_MENU_NUMBER];
  UINT8      COMTerminalType[MAX_MENU_NUMBER];
  UINT8      COMFlowControl[MAX_MENU_NUMBER];

  //
  // We use DisableMap array to record the enable/disable state of each boot device
  // It should be taken as a bit array, from left to right there are totally 256 bits
  // the most left one stands for BBS table item 0, and the most right one stands for item 256
  // If the bit is 1, it means the boot device has been disabled.
  //
  UINT8      DisableMap[32];

  //
  // Console Output Text Mode
  //
  UINT16     ConsoleOutMode;

  //
  //  UINT16                    PadArea[10];
  //

  UINT16     BootDescriptionData[MAX_MENU_NUMBER];
  UINT16     BootOptionalData[127];
  UINT16     DriverDescriptionData[MAX_MENU_NUMBER];
  UINT16     DriverOptionalData[127];
  BOOLEAN    BootOptionChanged;
  BOOLEAN    DriverOptionChanged;
  UINT8      Active;
  UINT8      ForceReconnect;
} BMM_FAKE_NV_DATA;

#endif