TianoCore EDK2 master
Loading...
Searching...
No Matches
BootMaintenanceManager.h
Go to the documentation of this file.
1
9#ifndef _BOOT_MAINT_H_
10#define _BOOT_MAINT_H_
11
12#include "FormGuid.h"
13
14#include <Guid/TtyTerm.h>
15#include <Guid/MdeModuleHii.h>
17#include <Guid/GlobalVariable.h>
19
20#include <Protocol/LoadFile.h>
23#include <Protocol/SerialIo.h>
26
27#include <Library/PrintLib.h>
28#include <Library/DebugLib.h>
31#include <Library/UefiLib.h>
35#include <Library/HiiLib.h>
40
41#pragma pack(1)
42
46typedef struct {
47 VENDOR_DEVICE_PATH VendorDevicePath;
50#pragma pack()
51
52//
53// Constants which are variable names used to access variables
54//
55
56#define VAR_CON_OUT_MODE L"ConOutMode"
57
58//
59// Variable created with this flag will be "Efi:...."
60//
61#define VAR_FLAG EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE
62
63extern EFI_GUID mBootMaintGuid;
64extern CHAR16 mBootMaintStorageName[];
65//
66// These are the VFR compiler generated data representing our VFR data.
67//
68extern UINT8 BootMaintenanceManagerBin[];
69
70//
71// Below are the number of options in Baudrate, Databits,
72// Parity and Stopbits selection for serial ports.
73//
74#define BM_COM_ATTR_BUADRATE 19
75#define BM_COM_ATTR_DATABITS 4
76#define BM_COM_ATTR_PARITY 5
77#define BM_COM_ATTR_STOPBITS 3
78
79//
80// Callback function helper
81//
82#define BMM_CALLBACK_DATA_SIGNATURE SIGNATURE_32 ('C', 'b', 'c', 'k')
83#define BMM_CALLBACK_DATA_FROM_THIS(a) CR (a, BMM_CALLBACK_DATA, BmmConfigAccess, BMM_CALLBACK_DATA_SIGNATURE)
84
85//
86// Enumeration type definition
87//
88typedef UINT8 BBS_TYPE;
89
90typedef enum _TYPE_OF_TERMINAL {
91 TerminalTypePcAnsi = 0,
92 TerminalTypeVt100,
93 TerminalTypeVt100Plus,
94 TerminalTypeVtUtf8,
95 TerminalTypeTtyTerm,
96 TerminalTypeLinux,
97 TerminalTypeXtermR6,
98 TerminalTypeVt400,
99 TerminalTypeSCO
100} TYPE_OF_TERMINAL;
101
102//
103// All of the signatures that will be used in list structure
104//
105#define BM_MENU_OPTION_SIGNATURE SIGNATURE_32 ('m', 'e', 'n', 'u')
106#define BM_LOAD_OPTION_SIGNATURE SIGNATURE_32 ('l', 'o', 'a', 'd')
107#define BM_CONSOLE_OPTION_SIGNATURE SIGNATURE_32 ('c', 'n', 's', 'l')
108#define BM_FILE_OPTION_SIGNATURE SIGNATURE_32 ('f', 'i', 'l', 'e')
109#define BM_HANDLE_OPTION_SIGNATURE SIGNATURE_32 ('h', 'n', 'd', 'l')
110#define BM_TERMINAL_OPTION_SIGNATURE SIGNATURE_32 ('t', 'r', 'm', 'l')
111#define BM_MENU_ENTRY_SIGNATURE SIGNATURE_32 ('e', 'n', 't', 'r')
112
113#define BM_LOAD_CONTEXT_SELECT 0x0
114#define BM_CONSOLE_CONTEXT_SELECT 0x1
115#define BM_FILE_CONTEXT_SELECT 0x2
116#define BM_HANDLE_CONTEXT_SELECT 0x3
117#define BM_TERMINAL_CONTEXT_SELECT 0x5
118
119#define BM_CONSOLE_IN_CONTEXT_SELECT 0x6
120#define BM_CONSOLE_OUT_CONTEXT_SELECT 0x7
121#define BM_CONSOLE_ERR_CONTEXT_SELECT 0x8
122
123//
124// Buffer size for update data
125//
126#define UPDATE_DATA_SIZE 0x100000
127
128//
129// Namespace of callback keys used in display and file system navigation
130//
131#define MAX_BBS_OFFSET 0xE000
132#define NET_OPTION_OFFSET 0xD800
133#define BEV_OPTION_OFFSET 0xD000
134#define FD_OPTION_OFFSET 0xC000
135#define HD_OPTION_OFFSET 0xB000
136#define CD_OPTION_OFFSET 0xA000
137#define FILE_OPTION_OFFSET 0x8000
138#define FILE_OPTION_MASK 0x7FFF
139#define HANDLE_OPTION_OFFSET 0x7000
140#define CONSOLE_OPTION_OFFSET 0x6000
141#define TERMINAL_OPTION_OFFSET 0x5000
142#define CONFIG_OPTION_OFFSET 0x1200
143#define KEY_VALUE_OFFSET 0x1100
144#define FORM_ID_OFFSET 0x1000
145
146//
147// VarOffset that will be used to create question
148// all these values are computed from the structure
149// defined below
150//
151#define VAR_OFFSET(Field) ((UINT16) ((UINTN) &(((BMM_FAKE_NV_DATA *) 0)->Field)))
152
153//
154// Question Id of Zero is invalid, so add an offset to it
155//
156#define QUESTION_ID(Field) (VAR_OFFSET (Field) + CONFIG_OPTION_OFFSET)
157
158#define BOOT_TIME_OUT_VAR_OFFSET VAR_OFFSET (BootTimeOut)
159#define BOOT_NEXT_VAR_OFFSET VAR_OFFSET (BootNext)
160#define COM1_BAUD_RATE_VAR_OFFSET VAR_OFFSET (COM1BaudRate)
161#define COM1_DATA_RATE_VAR_OFFSET VAR_OFFSET (COM1DataRate)
162#define COM1_STOP_BITS_VAR_OFFSET VAR_OFFSET (COM1StopBits)
163#define COM1_PARITY_VAR_OFFSET VAR_OFFSET (COM1Parity)
164#define COM1_TERMINAL_VAR_OFFSET VAR_OFFSET (COM2TerminalType)
165#define COM2_BAUD_RATE_VAR_OFFSET VAR_OFFSET (COM2BaudRate)
166#define COM2_DATA_RATE_VAR_OFFSET VAR_OFFSET (COM2DataRate)
167#define COM2_STOP_BITS_VAR_OFFSET VAR_OFFSET (COM2StopBits)
168#define COM2_PARITY_VAR_OFFSET VAR_OFFSET (COM2Parity)
169#define COM2_TERMINAL_VAR_OFFSET VAR_OFFSET (COM2TerminalType)
170#define DRV_ADD_HANDLE_DESC_VAR_OFFSET VAR_OFFSET (DriverAddHandleDesc)
171#define DRV_ADD_ACTIVE_VAR_OFFSET VAR_OFFSET (DriverAddActive)
172#define DRV_ADD_RECON_VAR_OFFSET VAR_OFFSET (DriverAddForceReconnect)
173#define CON_IN_COM1_VAR_OFFSET VAR_OFFSET (ConsoleInputCOM1)
174#define CON_IN_COM2_VAR_OFFSET VAR_OFFSET (ConsoleInputCOM2)
175#define CON_OUT_COM1_VAR_OFFSET VAR_OFFSET (ConsoleOutputCOM1)
176#define CON_OUT_COM2_VAR_OFFSET VAR_OFFSET (ConsoleOutputCOM2)
177#define CON_ERR_COM1_VAR_OFFSET VAR_OFFSET (ConsoleErrorCOM1)
178#define CON_ERR_COM2_VAR_OFFSET VAR_OFFSET (ConsoleErrorCOM2)
179#define CON_MODE_VAR_OFFSET VAR_OFFSET (ConsoleOutMode)
180#define CON_DEVICE_VAR_OFFSET VAR_OFFSET (ConsoleCheck)
181#define CON_IN_DEVICE_VAR_OFFSET VAR_OFFSET (ConsoleInCheck)
182#define CON_OUT_DEVICE_VAR_OFFSET VAR_OFFSET (ConsoleOutCheck)
183#define CON_ERR_DEVICE_VAR_OFFSET VAR_OFFSET (ConsoleErrCheck)
184#define BOOT_OPTION_ORDER_VAR_OFFSET VAR_OFFSET (BootOptionOrder)
185#define DRIVER_OPTION_ORDER_VAR_OFFSET VAR_OFFSET (DriverOptionOrder)
186#define BOOT_OPTION_DEL_VAR_OFFSET VAR_OFFSET (BootOptionDel)
187#define DRIVER_OPTION_DEL_VAR_OFFSET VAR_OFFSET (DriverOptionDel)
188#define DRIVER_ADD_OPTION_VAR_OFFSET VAR_OFFSET (DriverAddHandleOptionalData)
189#define COM_BAUD_RATE_VAR_OFFSET VAR_OFFSET (COMBaudRate)
190#define COM_DATA_RATE_VAR_OFFSET VAR_OFFSET (COMDataRate)
191#define COM_STOP_BITS_VAR_OFFSET VAR_OFFSET (COMStopBits)
192#define COM_PARITY_VAR_OFFSET VAR_OFFSET (COMParity)
193#define COM_TERMINAL_VAR_OFFSET VAR_OFFSET (COMTerminalType)
194#define COM_FLOWCONTROL_VAR_OFFSET VAR_OFFSET (COMFlowControl)
195
196#define BOOT_TIME_OUT_QUESTION_ID QUESTION_ID (BootTimeOut)
197#define BOOT_NEXT_QUESTION_ID QUESTION_ID (BootNext)
198#define COM1_BAUD_RATE_QUESTION_ID QUESTION_ID (COM1BaudRate)
199#define COM1_DATA_RATE_QUESTION_ID QUESTION_ID (COM1DataRate)
200#define COM1_STOP_BITS_QUESTION_ID QUESTION_ID (COM1StopBits)
201#define COM1_PARITY_QUESTION_ID QUESTION_ID (COM1Parity)
202#define COM1_TERMINAL_QUESTION_ID QUESTION_ID (COM2TerminalType)
203#define COM2_BAUD_RATE_QUESTION_ID QUESTION_ID (COM2BaudRate)
204#define COM2_DATA_RATE_QUESTION_ID QUESTION_ID (COM2DataRate)
205#define COM2_STOP_BITS_QUESTION_ID QUESTION_ID (COM2StopBits)
206#define COM2_PARITY_QUESTION_ID QUESTION_ID (COM2Parity)
207#define COM2_TERMINAL_QUESTION_ID QUESTION_ID (COM2TerminalType)
208#define DRV_ADD_HANDLE_DESC_QUESTION_ID QUESTION_ID (DriverAddHandleDesc)
209#define DRV_ADD_ACTIVE_QUESTION_ID QUESTION_ID (DriverAddActive)
210#define DRV_ADD_RECON_QUESTION_ID QUESTION_ID (DriverAddForceReconnect)
211#define CON_IN_COM1_QUESTION_ID QUESTION_ID (ConsoleInputCOM1)
212#define CON_IN_COM2_QUESTION_ID QUESTION_ID (ConsoleInputCOM2)
213#define CON_OUT_COM1_QUESTION_ID QUESTION_ID (ConsoleOutputCOM1)
214#define CON_OUT_COM2_QUESTION_ID QUESTION_ID (ConsoleOutputCOM2)
215#define CON_ERR_COM1_QUESTION_ID QUESTION_ID (ConsoleErrorCOM1)
216#define CON_ERR_COM2_QUESTION_ID QUESTION_ID (ConsoleErrorCOM2)
217#define CON_MODE_QUESTION_ID QUESTION_ID (ConsoleOutMode)
218#define CON_DEVICE_QUESTION_ID QUESTION_ID (ConsoleCheck)
219#define CON_IN_DEVICE_QUESTION_ID QUESTION_ID (ConsoleInCheck)
220#define CON_OUT_DEVICE_QUESTION_ID QUESTION_ID (ConsoleOutCheck)
221#define CON_ERR_DEVICE_QUESTION_ID QUESTION_ID (ConsoleErrCheck)
222#define BOOT_OPTION_ORDER_QUESTION_ID QUESTION_ID (BootOptionOrder)
223#define DRIVER_OPTION_ORDER_QUESTION_ID QUESTION_ID (DriverOptionOrder)
224#define BOOT_OPTION_DEL_QUESTION_ID QUESTION_ID (BootOptionDel)
225#define DRIVER_OPTION_DEL_QUESTION_ID QUESTION_ID (DriverOptionDel)
226#define DRIVER_ADD_OPTION_QUESTION_ID QUESTION_ID (DriverAddHandleOptionalData)
227#define COM_BAUD_RATE_QUESTION_ID QUESTION_ID (COMBaudRate)
228#define COM_DATA_RATE_QUESTION_ID QUESTION_ID (COMDataRate)
229#define COM_STOP_BITS_QUESTION_ID QUESTION_ID (COMStopBits)
230#define COM_PARITY_QUESTION_ID QUESTION_ID (COMParity)
231#define COM_TERMINAL_QUESTION_ID QUESTION_ID (COMTerminalType)
232#define COM_FLOWCONTROL_QUESTION_ID QUESTION_ID (COMFlowControl)
233
234#define STRING_DEPOSITORY_NUMBER 8
235
236#define NONE_BOOTNEXT_VALUE (0xFFFF + 1)
237
243typedef struct {
244 UINTN Value;
245 UINT16 StringToken;
246} COM_ATTR;
247
248typedef struct {
249 UINT64 BaudRate;
250 UINT8 DataBits;
251 UINT8 Parity;
252 UINT8 StopBits;
253
254 UINT8 BaudRateIndex;
255 UINT8 DataBitsIndex;
256 UINT8 ParityIndex;
257 UINT8 StopBitsIndex;
258
259 UINT8 FlowControl;
260
261 UINT8 IsConIn;
262 UINT8 IsConOut;
263 UINT8 IsStdErr;
264 UINT8 TerminalType;
265
266 EFI_DEVICE_PATH_PROTOCOL *DevicePath;
268
269typedef struct {
270 BOOLEAN IsBootNext;
271 BOOLEAN Deleted;
272
273 BOOLEAN IsLegacy;
274
275 UINT32 Attributes;
276 UINT16 FilePathListLength;
277 UINT16 *Description;
278 EFI_DEVICE_PATH_PROTOCOL *FilePathList;
279 UINT8 *OptionalData;
281
282typedef struct {
283 BOOLEAN IsActive;
284
285 BOOLEAN IsTerminal;
286
287 EFI_DEVICE_PATH_PROTOCOL *DevicePath;
289
290typedef struct {
291 UINTN Column;
292 UINTN Row;
294
295typedef struct {
296 EFI_HANDLE Handle;
297 EFI_DEVICE_PATH_PROTOCOL *DevicePath;
298 EFI_FILE_HANDLE FHandle;
299 UINT16 *FileName;
301
302 BOOLEAN IsRoot;
303 BOOLEAN IsDir;
304 BOOLEAN IsRemovableMedia;
305 BOOLEAN IsLoadFile;
306 BOOLEAN IsBootLegacy;
308
309typedef struct {
310 EFI_HANDLE Handle;
311 EFI_DEVICE_PATH_PROTOCOL *DevicePath;
313
314typedef struct {
315 UINTN Signature;
316 LIST_ENTRY Head;
317 UINTN MenuNumber;
319
320typedef struct {
321 UINTN Signature;
322 LIST_ENTRY Link;
323 UINTN OptionNumber;
324 UINT16 *DisplayString;
325 UINT16 *HelpString;
326 EFI_STRING_ID DisplayStringToken;
327 EFI_STRING_ID HelpStringToken;
328 UINTN ContextSelection;
329 VOID *VariableContext;
331
332typedef struct {
333 UINTN Signature;
334
335 EFI_HII_HANDLE BmmHiiHandle;
336 EFI_HANDLE BmmDriverHandle;
341 EFI_FORM_BROWSER2_PROTOCOL *FormBrowser2;
342
343 BM_MENU_ENTRY *MenuEntry;
344 BM_HANDLE_CONTEXT *HandleContext;
345 BM_FILE_CONTEXT *FileContext;
346 BM_LOAD_CONTEXT *LoadContext;
347 BM_TERMINAL_CONTEXT *TerminalContext;
348 UINTN CurrentTerminal;
349 BBS_TYPE BbsType;
350
351 //
352 // BMM main formset callback data.
353 //
354
355 EFI_FORM_ID BmmCurrentPageId;
356 EFI_FORM_ID BmmPreviousPageId;
357 BOOLEAN BmmAskSaveOrNot;
358 BMM_FAKE_NV_DATA BmmFakeNvData;
359 BMM_FAKE_NV_DATA BmmOldFakeNVData;
361
375 VOID
376 );
377
390 IN BMM_CALLBACK_DATA *CallbackData
391 );
392
406 IN BMM_CALLBACK_DATA *CallbackData
407 );
408
415VOID
417 BM_MENU_OPTION *FreeMenu
418 );
419
429UINT16
431 CHAR16 *Type
432 );
433
441UINT16
443 VOID
444 );
445
453UINT16
455 VOID
456 );
457
470 UINTN MenuType
471 );
472
479VOID
481 BM_MENU_ENTRY *MenuEntry
482 );
483
498 BM_MENU_OPTION *MenuOption,
499 UINTN MenuNumber
500 );
501
508VOID
510 IN BMM_CALLBACK_DATA *CallbackData
511 );
512
519VOID
521 IN BMM_CALLBACK_DATA *CallbackData
522 );
523
524//
525// Locate all serial io devices for console
526//
527
537 VOID
538 );
539
540//
541// Initializing Console menu
542//
543
552 VOID
553 );
554
555//
556// Get current mode information
557//
558
564VOID
566 IN BMM_CALLBACK_DATA *CallbackData
567 );
568
569//
570// Cleaning up console menu
571//
572
580 VOID
581 );
582
591VOID
594 );
595
610 IN OUT EFI_DEVICE_PATH_PROTOCOL *DevicePath,
611 IN BOOLEAN ChangeTerminal
612 );
613
614//
615// Variable operation by menu selection
616//
617
632 IN BMM_CALLBACK_DATA *CallbackData
633 );
634
645 VOID
646 );
647
666 IN BMM_CALLBACK_DATA *CallbackData,
667 IN EFI_HII_HANDLE HiiHandle,
668 IN UINT16 *DescriptionData,
669 IN UINT16 *OptionalData,
670 IN UINT8 ForceReconnect
671 );
672
683 VOID
684 );
685
695 VOID
696 );
697
706 VOID
707 );
708
717 VOID
718 );
719
730 IN UINT16 MenuIndex
731 );
732
746 IN BMM_CALLBACK_DATA *CallbackData
747 );
748
762 IN BMM_CALLBACK_DATA *CallbackData
763 );
764
779 IN BMM_CALLBACK_DATA *CallbackData
780 );
781
793 IN BMM_CALLBACK_DATA *CallbackData
794 );
795
796//
797// Following are page create and refresh functions
798//
799
804VOID
806 VOID
807 );
808
813VOID
815 VOID
816 );
817
827VOID
829 IN UINT16 LabelId,
830 IN BMM_CALLBACK_DATA *CallbackData
831 );
832
840VOID
842 IN BMM_CALLBACK_DATA *CallbackData
843 );
844
850VOID
852 IN BMM_CALLBACK_DATA *CallbackData
853 );
854
861VOID
863 IN BMM_CALLBACK_DATA *CallbackData
864 );
865
871VOID
873 IN BMM_CALLBACK_DATA *CallbackData
874 );
875
882VOID
884 IN UINT16 UpdatePageId,
885 IN BMM_CALLBACK_DATA *CallbackData
886 );
887
894VOID
896 IN BMM_CALLBACK_DATA *CallbackData
897 );
898
904VOID
906 IN BMM_CALLBACK_DATA *CallbackData
907 );
908
915VOID
917 IN BMM_CALLBACK_DATA *CallbackData
918 );
919
928VOID
930 IN BMM_CALLBACK_DATA *CallbackData,
931 IN EFI_FORM_ID FormId,
932 IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
933 );
934
952 IN CHAR16 *VarName,
953 IN EFI_GUID *VarGuid
954 );
955
967UINTN
969 IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
970 );
971
983UINT16 *
986 );
987
998VOID *
1000 IN UINTN DeviceType,
1001 OUT UINTN *OptionIndex,
1002 OUT UINTN *OptionSize
1003 );
1004
1013VOID
1015 IN BMM_CALLBACK_DATA *Private,
1016 IN BMM_FAKE_NV_DATA *CurrentFakeNVMap
1017 );
1018
1025VOID
1027 IN BMM_CALLBACK_DATA *Private
1028 );
1029
1037VOID
1039 BMM_CALLBACK_DATA *Private,
1040 UINT16 NewPageId
1041 );
1042
1047VOID
1049 VOID
1050 );
1051
1056VOID
1058 VOID
1059 );
1060
1069VOID
1071 IN BMM_CALLBACK_DATA *CallbackData
1072 );
1073
1082VOID
1084 IN BMM_CALLBACK_DATA *CallbackData
1085 );
1086
1095VOID
1097 IN BMM_CALLBACK_DATA *CallbackData
1098 );
1099
1108VOID
1110 IN BMM_CALLBACK_DATA *CallbackData
1111 );
1112
1125 BOOLEAN IsSetupMode
1126 );
1127
1136CHAR16 *
1139 );
1140
1150CHAR16 *
1152 IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
1153 );
1154
1177EFIAPI
1180 IN CONST EFI_STRING Request,
1181 OUT EFI_STRING *Progress,
1182 OUT EFI_STRING *Results
1183 );
1184
1219EFIAPI
1222 IN CONST EFI_STRING Configuration,
1223 OUT EFI_STRING *Progress
1224 );
1225
1245EFIAPI
1248 IN EFI_BROWSER_ACTION Action,
1249 IN EFI_QUESTION_ID QuestionId,
1250 IN UINT8 Type,
1251 IN EFI_IFR_TYPE_VALUE *Value,
1252 OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest
1253 );
1254
1264BOOLEAN
1265EFIAPI
1268 );
1269
1278BOOLEAN
1279EFIAPI
1282 );
1283
1293BOOLEAN
1294EFIAPI
1297 );
1298
1299//
1300// Global variable in this program (defined in data.c)
1301//
1308extern BM_MENU_OPTION TerminalMenu;
1309extern UINT16 TerminalType[9];
1310extern COM_ATTR BaudRateList[19];
1311extern COM_ATTR DataBitsList[4];
1312extern COM_ATTR ParityList[5];
1313extern COM_ATTR StopBitsList[3];
1314extern EFI_GUID TerminalTypeGuid[9];
1315extern EFI_DEVICE_PATH_PROTOCOL EndDevicePath[];
1316extern UINT16 mFlowControlType[2];
1317extern UINT32 mFlowControlValue[2];
1318
1319//
1320// Shared IFR form update data
1321//
1322extern VOID *mStartOpCodeHandle;
1323extern VOID *mEndOpCodeHandle;
1324extern EFI_IFR_GUID_LABEL *mStartLabel;
1325extern EFI_IFR_GUID_LABEL *mEndLabel;
1326extern BMM_CALLBACK_DATA gBootMaintenancePrivate;
1327extern BMM_CALLBACK_DATA *mBmmCallbackInfo;
1328
1329#endif
UINT64 UINTN
VOID BOpt_FreeMenu(BM_MENU_OPTION *FreeMenu)
Definition: BootOption.c:256
VOID ChangeVariableDevicePath(IN OUT EFI_DEVICE_PATH_PROTOCOL *DevicePath)
UINTN EfiDevicePathInstanceCount(IN EFI_DEVICE_PATH_PROTOCOL *DevicePath)
Definition: BmLib.c:51
UINT16 BOpt_GetOptionNumber(CHAR16 *Type)
Definition: BootOption.c:586
BM_MENU_ENTRY * BOpt_GetMenuEntry(BM_MENU_OPTION *MenuOption, UINTN MenuNumber)
Definition: BootOption.c:229
UINT16 BOpt_GetDriverOptionNumber(VOID)
Definition: BootOption.c:659
EFI_STATUS Var_DelBootOption(VOID)
Definition: Variable.c:21
VOID UpdateConModePage(IN BMM_CALLBACK_DATA *CallbackData)
Definition: UpdatePage.c:678
EFI_STATUS EFIAPI BootMaintCallback(IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN EFI_BROWSER_ACTION Action, IN EFI_QUESTION_ID QuestionId, IN UINT8 Type, IN EFI_IFR_TYPE_VALUE *Value, OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest)
UINT16 TerminalType[9]
Definition: Data.c:19
VOID DiscardChangeHandler(IN BMM_CALLBACK_DATA *Private, IN BMM_FAKE_NV_DATA *CurrentFakeNVMap)
BM_MENU_OPTION DriverMenu
Definition: Data.c:92
VOID CleanUpPage(IN UINT16 LabelId, IN BMM_CALLBACK_DATA *CallbackData)
Definition: UpdatePage.c:165
VOID UpdateConCOMPage(IN BMM_CALLBACK_DATA *CallbackData)
Definition: UpdatePage.c:192
VOID BOpt_DestroyMenuEntry(BM_MENU_ENTRY *MenuEntry)
Definition: BootOption.c:141
EFI_STATUS Var_UpdateDriverOption(IN BMM_CALLBACK_DATA *CallbackData, IN EFI_HII_HANDLE HiiHandle, IN UINT16 *DescriptionData, IN UINT16 *OptionalData, IN UINT8 ForceReconnect)
Definition: Variable.c:289
UINT16 * EfiLibStrFromDatahub(IN EFI_DEVICE_PATH_PROTOCOL *DevPath)
Definition: BmLib.c:78
EFI_STATUS GetAllConsoles(VOID)
EFI_STATUS EFIAPI BootMaintExtractConfig(IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN CONST EFI_STRING Request, OUT EFI_STRING *Progress, OUT EFI_STRING *Results)
COM_ATTR DataBitsList[4]
Definition: Data.c:189
VOID GetTerminalAttribute(IN BMM_CALLBACK_DATA *CallbackData)
BM_MENU_ENTRY * BOpt_CreateMenuEntry(UINTN MenuType)
Definition: BootOption.c:75
COM_ATTR BaudRateList[19]
Definition: Data.c:107
COM_ATTR ParityList[5]
Definition: Data.c:211
VOID UpdateDrvAddHandlePage(IN BMM_CALLBACK_DATA *CallbackData)
Definition: UpdatePage.c:283
VOID GetConsoleOutCheck(IN BMM_CALLBACK_DATA *CallbackData)
EFI_STATUS Var_UpdateErrorOutOption(VOID)
Definition: Variable.c:263
EFI_STATUS BOpt_GetDriverOptions(IN BMM_CALLBACK_DATA *CallbackData)
Definition: BootOption.c:678
VOID RefreshUpdateData(VOID)
Definition: UpdatePage.c:48
VOID GetConsoleOutMode(IN BMM_CALLBACK_DATA *CallbackData)
VOID InitBootMaintenance(VOID)
VOID UpdateBootDelPage(IN BMM_CALLBACK_DATA *CallbackData)
Definition: UpdatePage.c:227
BOOLEAN EFIAPI CreateDriverOptionFromFile(IN EFI_DEVICE_PATH_PROTOCOL *FilePath)
Definition: BootOption.c:1012
EFI_STATUS LocateSerialIo(VOID)
VOID CreateUpdateData(VOID)
Definition: UpdatePage.c:16
EFI_STATUS Var_UpdateBootOrder(IN BMM_CALLBACK_DATA *CallbackData)
Definition: Variable.c:590
VOID GetConsoleErrCheck(IN BMM_CALLBACK_DATA *CallbackData)
VOID CleanUselessBeforeSubmit(IN BMM_CALLBACK_DATA *Private)
EFI_STATUS Var_UpdateBootNext(IN BMM_CALLBACK_DATA *CallbackData)
Definition: Variable.c:533
VOID UpdatePageBody(IN UINT16 UpdatePageId, IN BMM_CALLBACK_DATA *CallbackData)
Definition: UpdatePage.c:1103
VOID UpdateTerminalPage(IN BMM_CALLBACK_DATA *CallbackData)
Definition: UpdatePage.c:805
UINT16 BOpt_GetBootOptionNumber(VOID)
Definition: BootOption.c:644
CHAR16 * UiDevicePathToStr(IN EFI_DEVICE_PATH_PROTOCOL *DevPath)
BOOLEAN EFIAPI CreateBootOptionFromFile(IN EFI_DEVICE_PATH_PROTOCOL *FilePath)
Definition: BootOption.c:994
EFI_STATUS EfiLibDeleteVariable(IN CHAR16 *VarName, IN EFI_GUID *VarGuid)
Definition: BmLib.c:25
VOID FreeBMPackage(VOID)
EFI_STATUS Var_UpdateConMode(IN BMM_CALLBACK_DATA *CallbackData)
Definition: Variable.c:714
EFI_STATUS Var_UpdateOutOfBandOption(IN UINT16 MenuIndex)
UINT16 mFlowControlType[2]
Definition: Data.c:34
BM_MENU_OPTION ConsoleErrMenu
Definition: Data.c:65
BM_MENU_OPTION DriverOptionMenu
Definition: Data.c:83
EFI_STATUS BOpt_FindDrivers(VOID)
Definition: BootOption.c:492
VOID GetBootOrder(IN BMM_CALLBACK_DATA *CallbackData)
Definition: BootOption.c:811
BM_MENU_OPTION ConsoleOutMenu
Definition: Data.c:56
EFI_STATUS Var_UpdateConsoleInpOption(VOID)
Definition: Variable.c:233
EFI_STATUS Var_UpdateDriverOrder(IN BMM_CALLBACK_DATA *CallbackData)
Definition: Variable.c:652
EFI_STATUS EFIAPI BootMaintRouteConfig(IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN CONST EFI_STRING Configuration, OUT EFI_STRING *Progress)
BM_MENU_OPTION BootOptionMenu
Definition: Data.c:74
EFI_STATUS FreeAllConsoles(VOID)
VOID GetConsoleInCheck(IN BMM_CALLBACK_DATA *CallbackData)
VOID UpdateDriverAddHandleDescPage(IN BMM_CALLBACK_DATA *CallbackData)
Definition: UpdatePage.c:372
VOID * GetLegacyBootOptionVar(IN UINTN DeviceType, OUT UINTN *OptionIndex, OUT UINTN *OptionSize)
EFI_STATUS ChangeTerminalDevicePath(IN OUT EFI_DEVICE_PATH_PROTOCOL *DevicePath, IN BOOLEAN ChangeTerminal)
VOID UpdatePageId(BMM_CALLBACK_DATA *Private, UINT16 NewPageId)
Definition: UpdatePage.c:1143
EFI_STATUS Var_UpdateBootOption(IN BMM_CALLBACK_DATA *CallbackData)
Definition: Variable.c:414
VOID GetDriverOrder(IN BMM_CALLBACK_DATA *CallbackData)
Definition: BootOption.c:858
BM_MENU_OPTION ConsoleInpMenu
Definition: Data.c:47
COM_ATTR StopBitsList[3]
Definition: Data.c:237
EFI_STATUS Var_UpdateConsoleOutOption(VOID)
Definition: Variable.c:248
VOID UpdateDrvDelPage(IN BMM_CALLBACK_DATA *CallbackData)
Definition: UpdatePage.c:318
EFI_STATUS Var_DelDriverOption(VOID)
Definition: Variable.c:78
EFI_GUID TerminalTypeGuid[9]
Definition: Data.c:255
BOOLEAN EFIAPI BootFromFile(IN EFI_DEVICE_PATH_PROTOCOL *FilePath)
Definition: BootOption.c:908
CHAR16 * ExtractFileNameFromDevicePath(IN EFI_DEVICE_PATH_PROTOCOL *DevicePath)
EFI_STATUS BOpt_GetBootOptions(IN BMM_CALLBACK_DATA *CallbackData)
Definition: BootOption.c:288
VOID UpdateOptionPage(IN BMM_CALLBACK_DATA *CallbackData, IN EFI_FORM_ID FormId, IN EFI_DEVICE_PATH_PROTOCOL *DevicePath)
Definition: UpdatePage.c:1035
EFI_STATUS BmmSetConsoleMode(BOOLEAN IsSetupMode)
#define CONST
Definition: Base.h:259
#define IN
Definition: Base.h:279
#define OUT
Definition: Base.h:284
RETURN_STATUS EFI_STATUS
Definition: UefiBaseType.h:29
VOID * EFI_HANDLE
Definition: UefiBaseType.h:33
VOID * EFI_HII_HANDLE
EFI_HII_CONFIG_ACCESS_PROTOCOL BmmConfigAccess
Definition: Base.h:213