/** @file\r
Header file for boot maintenance module.\r
\r
-Copyright (c) 2004 - 2015, Intel Corporation. All rights reserved.<BR>\r
-This program and the accompanying materials\r
-are licensed and made available under the terms and conditions of the BSD License\r
-which accompanies this distribution. The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+Copyright (c) 2004 - 2019, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
\r
#include <Protocol/SimpleFileSystem.h>\r
#include <Protocol/SerialIo.h>\r
#include <Protocol/DevicePathToText.h>\r
+#include <Protocol/FormBrowserEx2.h>\r
\r
#include <Library/PrintLib.h>\r
#include <Library/DebugLib.h>\r
#include <Library/UefiHiiServicesLib.h>\r
#include <Library/UefiBootManagerLib.h>\r
#include <Library/FileExplorerLib.h>\r
+#include "BootMaintenanceManagerCustomizedUi.h"\r
\r
#pragma pack(1)\r
\r
/// HII specific Vendor Device Path definition.\r
///\r
typedef struct {\r
- VENDOR_DEVICE_PATH VendorDevicePath;\r
- EFI_DEVICE_PATH_PROTOCOL End;\r
+ VENDOR_DEVICE_PATH VendorDevicePath;\r
+ EFI_DEVICE_PATH_PROTOCOL End;\r
} HII_VENDOR_DEVICE_PATH;\r
#pragma pack()\r
\r
// Constants which are variable names used to access variables\r
//\r
\r
-#define VAR_CON_OUT_MODE L"ConOutMode"\r
+#define VAR_CON_OUT_MODE L"ConOutMode"\r
\r
//\r
// Variable created with this flag will be "Efi:...."\r
//\r
#define VAR_FLAG EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE\r
\r
-extern EFI_GUID mBootMaintGuid;\r
-extern CHAR16 mBootMaintStorageName[];\r
+extern EFI_GUID mBootMaintGuid;\r
+extern CHAR16 mBootMaintStorageName[];\r
//\r
// These are the VFR compiler generated data representing our VFR data.\r
//\r
-extern UINT8 BootMaintenanceManagerBin[];\r
+extern UINT8 BootMaintenanceManagerBin[];\r
\r
//\r
// Below are the number of options in Baudrate, Databits,\r
//\r
// Callback function helper\r
//\r
-#define BMM_CALLBACK_DATA_SIGNATURE SIGNATURE_32 ('C', 'b', 'c', 'k')\r
+#define BMM_CALLBACK_DATA_SIGNATURE SIGNATURE_32 ('C', 'b', 'c', 'k')\r
#define BMM_CALLBACK_DATA_FROM_THIS(a) CR (a, BMM_CALLBACK_DATA, BmmConfigAccess, BMM_CALLBACK_DATA_SIGNATURE)\r
\r
//\r
typedef UINT8 BBS_TYPE;\r
\r
typedef enum _TYPE_OF_TERMINAL {\r
- TerminalTypePcAnsi = 0,\r
+ TerminalTypePcAnsi = 0,\r
TerminalTypeVt100,\r
TerminalTypeVt100Plus,\r
TerminalTypeVtUtf8,\r
- TerminalTypeTtyTerm\r
+ TerminalTypeTtyTerm,\r
+ TerminalTypeLinux,\r
+ TerminalTypeXtermR6,\r
+ TerminalTypeVt400,\r
+ TerminalTypeSCO\r
} TYPE_OF_TERMINAL;\r
\r
//\r
#define BM_TERMINAL_OPTION_SIGNATURE SIGNATURE_32 ('t', 'r', 'm', 'l')\r
#define BM_MENU_ENTRY_SIGNATURE SIGNATURE_32 ('e', 'n', 't', 'r')\r
\r
-#define BM_LOAD_CONTEXT_SELECT 0x0\r
-#define BM_CONSOLE_CONTEXT_SELECT 0x1\r
-#define BM_FILE_CONTEXT_SELECT 0x2\r
-#define BM_HANDLE_CONTEXT_SELECT 0x3\r
-#define BM_TERMINAL_CONTEXT_SELECT 0x5\r
+#define BM_LOAD_CONTEXT_SELECT 0x0\r
+#define BM_CONSOLE_CONTEXT_SELECT 0x1\r
+#define BM_FILE_CONTEXT_SELECT 0x2\r
+#define BM_HANDLE_CONTEXT_SELECT 0x3\r
+#define BM_TERMINAL_CONTEXT_SELECT 0x5\r
\r
-#define BM_CONSOLE_IN_CONTEXT_SELECT 0x6\r
-#define BM_CONSOLE_OUT_CONTEXT_SELECT 0x7\r
-#define BM_CONSOLE_ERR_CONTEXT_SELECT 0x8\r
+#define BM_CONSOLE_IN_CONTEXT_SELECT 0x6\r
+#define BM_CONSOLE_OUT_CONTEXT_SELECT 0x7\r
+#define BM_CONSOLE_ERR_CONTEXT_SELECT 0x8\r
\r
//\r
// Buffer size for update data\r
//\r
-#define UPDATE_DATA_SIZE 0x100000\r
+#define UPDATE_DATA_SIZE 0x100000\r
\r
//\r
// Namespace of callback keys used in display and file system navigation\r
// all these values are computed from the structure\r
// defined below\r
//\r
-#define VAR_OFFSET(Field) ((UINT16) ((UINTN) &(((BMM_FAKE_NV_DATA *) 0)->Field)))\r
+#define VAR_OFFSET(Field) ((UINT16) ((UINTN) &(((BMM_FAKE_NV_DATA *) 0)->Field)))\r
\r
//\r
// Question Id of Zero is invalid, so add an offset to it\r
//\r
-#define QUESTION_ID(Field) (VAR_OFFSET (Field) + CONFIG_OPTION_OFFSET)\r
+#define QUESTION_ID(Field) (VAR_OFFSET (Field) + CONFIG_OPTION_OFFSET)\r
\r
#define BOOT_TIME_OUT_VAR_OFFSET VAR_OFFSET (BootTimeOut)\r
#define BOOT_NEXT_VAR_OFFSET VAR_OFFSET (BootNext)\r
#define COM_TERMINAL_VAR_OFFSET VAR_OFFSET (COMTerminalType)\r
#define COM_FLOWCONTROL_VAR_OFFSET VAR_OFFSET (COMFlowControl)\r
\r
-#define BOOT_TIME_OUT_QUESTION_ID QUESTION_ID (BootTimeOut)\r
-#define BOOT_NEXT_QUESTION_ID QUESTION_ID (BootNext)\r
-#define COM1_BAUD_RATE_QUESTION_ID QUESTION_ID (COM1BaudRate)\r
-#define COM1_DATA_RATE_QUESTION_ID QUESTION_ID (COM1DataRate)\r
-#define COM1_STOP_BITS_QUESTION_ID QUESTION_ID (COM1StopBits)\r
-#define COM1_PARITY_QUESTION_ID QUESTION_ID (COM1Parity)\r
-#define COM1_TERMINAL_QUESTION_ID QUESTION_ID (COM2TerminalType)\r
-#define COM2_BAUD_RATE_QUESTION_ID QUESTION_ID (COM2BaudRate)\r
-#define COM2_DATA_RATE_QUESTION_ID QUESTION_ID (COM2DataRate)\r
-#define COM2_STOP_BITS_QUESTION_ID QUESTION_ID (COM2StopBits)\r
-#define COM2_PARITY_QUESTION_ID QUESTION_ID (COM2Parity)\r
-#define COM2_TERMINAL_QUESTION_ID QUESTION_ID (COM2TerminalType)\r
-#define DRV_ADD_HANDLE_DESC_QUESTION_ID QUESTION_ID (DriverAddHandleDesc)\r
-#define DRV_ADD_ACTIVE_QUESTION_ID QUESTION_ID (DriverAddActive)\r
-#define DRV_ADD_RECON_QUESTION_ID QUESTION_ID (DriverAddForceReconnect)\r
-#define CON_IN_COM1_QUESTION_ID QUESTION_ID (ConsoleInputCOM1)\r
-#define CON_IN_COM2_QUESTION_ID QUESTION_ID (ConsoleInputCOM2)\r
-#define CON_OUT_COM1_QUESTION_ID QUESTION_ID (ConsoleOutputCOM1)\r
-#define CON_OUT_COM2_QUESTION_ID QUESTION_ID (ConsoleOutputCOM2)\r
-#define CON_ERR_COM1_QUESTION_ID QUESTION_ID (ConsoleErrorCOM1)\r
-#define CON_ERR_COM2_QUESTION_ID QUESTION_ID (ConsoleErrorCOM2)\r
-#define CON_MODE_QUESTION_ID QUESTION_ID (ConsoleOutMode)\r
-#define CON_DEVICE_QUESTION_ID QUESTION_ID (ConsoleCheck)\r
-#define CON_IN_DEVICE_QUESTION_ID QUESTION_ID (ConsoleInCheck)\r
-#define CON_OUT_DEVICE_QUESTION_ID QUESTION_ID (ConsoleOutCheck)\r
-#define CON_ERR_DEVICE_QUESTION_ID QUESTION_ID (ConsoleErrCheck)\r
-#define BOOT_OPTION_ORDER_QUESTION_ID QUESTION_ID (BootOptionOrder)\r
-#define DRIVER_OPTION_ORDER_QUESTION_ID QUESTION_ID (DriverOptionOrder)\r
-#define BOOT_OPTION_DEL_QUESTION_ID QUESTION_ID (BootOptionDel)\r
-#define DRIVER_OPTION_DEL_QUESTION_ID QUESTION_ID (DriverOptionDel)\r
-#define DRIVER_ADD_OPTION_QUESTION_ID QUESTION_ID (DriverAddHandleOptionalData)\r
-#define COM_BAUD_RATE_QUESTION_ID QUESTION_ID (COMBaudRate)\r
-#define COM_DATA_RATE_QUESTION_ID QUESTION_ID (COMDataRate)\r
-#define COM_STOP_BITS_QUESTION_ID QUESTION_ID (COMStopBits)\r
-#define COM_PARITY_QUESTION_ID QUESTION_ID (COMParity)\r
-#define COM_TERMINAL_QUESTION_ID QUESTION_ID (COMTerminalType)\r
-#define COM_FLOWCONTROL_QUESTION_ID QUESTION_ID (COMFlowControl)\r
-\r
-#define STRING_DEPOSITORY_NUMBER 8\r
-\r
-#define NONE_BOOTNEXT_VALUE (0xFFFF + 1)\r
+#define BOOT_TIME_OUT_QUESTION_ID QUESTION_ID (BootTimeOut)\r
+#define BOOT_NEXT_QUESTION_ID QUESTION_ID (BootNext)\r
+#define COM1_BAUD_RATE_QUESTION_ID QUESTION_ID (COM1BaudRate)\r
+#define COM1_DATA_RATE_QUESTION_ID QUESTION_ID (COM1DataRate)\r
+#define COM1_STOP_BITS_QUESTION_ID QUESTION_ID (COM1StopBits)\r
+#define COM1_PARITY_QUESTION_ID QUESTION_ID (COM1Parity)\r
+#define COM1_TERMINAL_QUESTION_ID QUESTION_ID (COM2TerminalType)\r
+#define COM2_BAUD_RATE_QUESTION_ID QUESTION_ID (COM2BaudRate)\r
+#define COM2_DATA_RATE_QUESTION_ID QUESTION_ID (COM2DataRate)\r
+#define COM2_STOP_BITS_QUESTION_ID QUESTION_ID (COM2StopBits)\r
+#define COM2_PARITY_QUESTION_ID QUESTION_ID (COM2Parity)\r
+#define COM2_TERMINAL_QUESTION_ID QUESTION_ID (COM2TerminalType)\r
+#define DRV_ADD_HANDLE_DESC_QUESTION_ID QUESTION_ID (DriverAddHandleDesc)\r
+#define DRV_ADD_ACTIVE_QUESTION_ID QUESTION_ID (DriverAddActive)\r
+#define DRV_ADD_RECON_QUESTION_ID QUESTION_ID (DriverAddForceReconnect)\r
+#define CON_IN_COM1_QUESTION_ID QUESTION_ID (ConsoleInputCOM1)\r
+#define CON_IN_COM2_QUESTION_ID QUESTION_ID (ConsoleInputCOM2)\r
+#define CON_OUT_COM1_QUESTION_ID QUESTION_ID (ConsoleOutputCOM1)\r
+#define CON_OUT_COM2_QUESTION_ID QUESTION_ID (ConsoleOutputCOM2)\r
+#define CON_ERR_COM1_QUESTION_ID QUESTION_ID (ConsoleErrorCOM1)\r
+#define CON_ERR_COM2_QUESTION_ID QUESTION_ID (ConsoleErrorCOM2)\r
+#define CON_MODE_QUESTION_ID QUESTION_ID (ConsoleOutMode)\r
+#define CON_DEVICE_QUESTION_ID QUESTION_ID (ConsoleCheck)\r
+#define CON_IN_DEVICE_QUESTION_ID QUESTION_ID (ConsoleInCheck)\r
+#define CON_OUT_DEVICE_QUESTION_ID QUESTION_ID (ConsoleOutCheck)\r
+#define CON_ERR_DEVICE_QUESTION_ID QUESTION_ID (ConsoleErrCheck)\r
+#define BOOT_OPTION_ORDER_QUESTION_ID QUESTION_ID (BootOptionOrder)\r
+#define DRIVER_OPTION_ORDER_QUESTION_ID QUESTION_ID (DriverOptionOrder)\r
+#define BOOT_OPTION_DEL_QUESTION_ID QUESTION_ID (BootOptionDel)\r
+#define DRIVER_OPTION_DEL_QUESTION_ID QUESTION_ID (DriverOptionDel)\r
+#define DRIVER_ADD_OPTION_QUESTION_ID QUESTION_ID (DriverAddHandleOptionalData)\r
+#define COM_BAUD_RATE_QUESTION_ID QUESTION_ID (COMBaudRate)\r
+#define COM_DATA_RATE_QUESTION_ID QUESTION_ID (COMDataRate)\r
+#define COM_STOP_BITS_QUESTION_ID QUESTION_ID (COMStopBits)\r
+#define COM_PARITY_QUESTION_ID QUESTION_ID (COMParity)\r
+#define COM_TERMINAL_QUESTION_ID QUESTION_ID (COMTerminalType)\r
+#define COM_FLOWCONTROL_QUESTION_ID QUESTION_ID (COMFlowControl)\r
+\r
+#define STRING_DEPOSITORY_NUMBER 8\r
+\r
+#define NONE_BOOTNEXT_VALUE (0xFFFF + 1)\r
\r
///\r
/// Serial Ports attributes, first one is the value for\r
/// display the value properly\r
///\r
typedef struct {\r
- UINTN Value;\r
- UINT16 StringToken;\r
+ UINTN Value;\r
+ UINT16 StringToken;\r
} COM_ATTR;\r
\r
typedef struct {\r
- UINT64 BaudRate;\r
- UINT8 DataBits;\r
- UINT8 Parity;\r
- UINT8 StopBits;\r
+ UINT64 BaudRate;\r
+ UINT8 DataBits;\r
+ UINT8 Parity;\r
+ UINT8 StopBits;\r
\r
- UINT8 BaudRateIndex;\r
- UINT8 DataBitsIndex;\r
- UINT8 ParityIndex;\r
- UINT8 StopBitsIndex;\r
+ UINT8 BaudRateIndex;\r
+ UINT8 DataBitsIndex;\r
+ UINT8 ParityIndex;\r
+ UINT8 StopBitsIndex;\r
\r
- UINT8 FlowControl;\r
+ UINT8 FlowControl;\r
\r
- UINT8 IsConIn;\r
- UINT8 IsConOut;\r
- UINT8 IsStdErr;\r
- UINT8 TerminalType;\r
+ UINT8 IsConIn;\r
+ UINT8 IsConOut;\r
+ UINT8 IsStdErr;\r
+ UINT8 TerminalType;\r
\r
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
} BM_TERMINAL_CONTEXT;\r
\r
typedef struct {\r
- BOOLEAN IsBootNext;\r
- BOOLEAN LoadOptionModified;\r
- BOOLEAN Deleted;\r
-\r
- BOOLEAN IsLegacy;\r
- BOOLEAN IsActive;\r
- BOOLEAN ForceReconnect;\r
- UINTN OptionalDataSize;\r
-\r
- UINTN LoadOptionSize;\r
- UINT8 *LoadOption;\r
+ BOOLEAN IsBootNext;\r
+ BOOLEAN Deleted;\r
\r
- UINT32 Attributes;\r
- UINT16 FilePathListLength;\r
- UINT16 *Description;\r
- EFI_DEVICE_PATH_PROTOCOL *FilePathList;\r
- UINT8 *OptionalData;\r
+ BOOLEAN IsLegacy;\r
\r
- UINT16 BbsIndex;\r
+ UINT32 Attributes;\r
+ UINT16 FilePathListLength;\r
+ UINT16 *Description;\r
+ EFI_DEVICE_PATH_PROTOCOL *FilePathList;\r
+ UINT8 *OptionalData;\r
} BM_LOAD_CONTEXT;\r
\r
typedef struct {\r
+ BOOLEAN IsActive;\r
\r
- BOOLEAN IsActive;\r
+ BOOLEAN IsTerminal;\r
\r
- BOOLEAN IsTerminal;\r
-\r
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
} BM_CONSOLE_CONTEXT;\r
\r
typedef struct {\r
- UINTN Column;\r
- UINTN Row;\r
+ UINTN Column;\r
+ UINTN Row;\r
} CONSOLE_OUT_MODE;\r
\r
typedef struct {\r
- EFI_HANDLE Handle;\r
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
- EFI_FILE_HANDLE FHandle;\r
- UINT16 *FileName;\r
- EFI_FILE_SYSTEM_VOLUME_LABEL *Info;\r
-\r
- BOOLEAN IsRoot;\r
- BOOLEAN IsDir;\r
- BOOLEAN IsRemovableMedia;\r
- BOOLEAN IsLoadFile;\r
- BOOLEAN IsBootLegacy;\r
+ EFI_HANDLE Handle;\r
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
+ EFI_FILE_HANDLE FHandle;\r
+ UINT16 *FileName;\r
+ EFI_FILE_SYSTEM_VOLUME_LABEL *Info;\r
+\r
+ BOOLEAN IsRoot;\r
+ BOOLEAN IsDir;\r
+ BOOLEAN IsRemovableMedia;\r
+ BOOLEAN IsLoadFile;\r
+ BOOLEAN IsBootLegacy;\r
} BM_FILE_CONTEXT;\r
\r
typedef struct {\r
- EFI_HANDLE Handle;\r
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
+ EFI_HANDLE Handle;\r
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
} BM_HANDLE_CONTEXT;\r
\r
typedef struct {\r
- UINTN Signature;\r
- LIST_ENTRY Head;\r
- UINTN MenuNumber;\r
+ UINTN Signature;\r
+ LIST_ENTRY Head;\r
+ UINTN MenuNumber;\r
} BM_MENU_OPTION;\r
\r
typedef struct {\r
- UINTN Signature;\r
- LIST_ENTRY Link;\r
- UINTN OptionNumber;\r
- UINT16 *DisplayString;\r
- UINT16 *HelpString;\r
- EFI_STRING_ID DisplayStringToken;\r
- EFI_STRING_ID HelpStringToken;\r
- UINTN ContextSelection;\r
- VOID *VariableContext;\r
+ UINTN Signature;\r
+ LIST_ENTRY Link;\r
+ UINTN OptionNumber;\r
+ UINT16 *DisplayString;\r
+ UINT16 *HelpString;\r
+ EFI_STRING_ID DisplayStringToken;\r
+ EFI_STRING_ID HelpStringToken;\r
+ UINTN ContextSelection;\r
+ VOID *VariableContext;\r
} BM_MENU_ENTRY;\r
\r
typedef struct {\r
- \r
- UINTN Signature;\r
+ UINTN Signature;\r
\r
- EFI_HII_HANDLE BmmHiiHandle;\r
- EFI_HANDLE BmmDriverHandle;\r
+ EFI_HII_HANDLE BmmHiiHandle;\r
+ EFI_HANDLE BmmDriverHandle;\r
///\r
/// Boot Maintenance Manager Produced protocols\r
///\r
- EFI_HII_CONFIG_ACCESS_PROTOCOL BmmConfigAccess;\r
- EFI_FORM_BROWSER2_PROTOCOL *FormBrowser2;\r
+ EFI_HII_CONFIG_ACCESS_PROTOCOL BmmConfigAccess;\r
+ EFI_FORM_BROWSER2_PROTOCOL *FormBrowser2;\r
\r
- BM_MENU_ENTRY *MenuEntry;\r
- BM_HANDLE_CONTEXT *HandleContext;\r
- BM_FILE_CONTEXT *FileContext;\r
- BM_LOAD_CONTEXT *LoadContext;\r
- BM_TERMINAL_CONTEXT *TerminalContext;\r
- UINTN CurrentTerminal;\r
- BBS_TYPE BbsType;\r
+ BM_MENU_ENTRY *MenuEntry;\r
+ BM_HANDLE_CONTEXT *HandleContext;\r
+ BM_FILE_CONTEXT *FileContext;\r
+ BM_LOAD_CONTEXT *LoadContext;\r
+ BM_TERMINAL_CONTEXT *TerminalContext;\r
+ UINTN CurrentTerminal;\r
+ BBS_TYPE BbsType;\r
\r
//\r
// BMM main formset callback data.\r
//\r
- \r
- EFI_FORM_ID BmmCurrentPageId;\r
- EFI_FORM_ID BmmPreviousPageId;\r
- BOOLEAN BmmAskSaveOrNot;\r
- BMM_FAKE_NV_DATA BmmFakeNvData;\r
- BMM_FAKE_NV_DATA BmmOldFakeNVData;\r
\r
+ EFI_FORM_ID BmmCurrentPageId;\r
+ EFI_FORM_ID BmmPreviousPageId;\r
+ BOOLEAN BmmAskSaveOrNot;\r
+ BMM_FAKE_NV_DATA BmmFakeNvData;\r
+ BMM_FAKE_NV_DATA BmmOldFakeNVData;\r
} BMM_CALLBACK_DATA;\r
\r
/**\r
**/\r
EFI_STATUS\r
BOpt_GetBootOptions (\r
- IN BMM_CALLBACK_DATA *CallbackData\r
+ IN BMM_CALLBACK_DATA *CallbackData\r
);\r
\r
/**\r
\r
@return EFI_SUCESS The functin completes successfully.\r
@retval EFI_OUT_OF_RESOURCES Not enough memory to compete the operation.\r
- \r
+\r
\r
**/\r
EFI_STATUS\r
BOpt_GetDriverOptions (\r
- IN BMM_CALLBACK_DATA *CallbackData\r
+ IN BMM_CALLBACK_DATA *CallbackData\r
);\r
\r
/**\r
**/\r
VOID\r
BOpt_FreeMenu (\r
- BM_MENU_OPTION *FreeMenu\r
+ BM_MENU_OPTION *FreeMenu\r
);\r
\r
/**\r
**/\r
UINT16\r
BOpt_GetOptionNumber (\r
- CHAR16 *Type\r
+ CHAR16 *Type\r
);\r
\r
/**\r
**/\r
BM_MENU_ENTRY *\r
BOpt_CreateMenuEntry (\r
- UINTN MenuType\r
+ UINTN MenuType\r
);\r
\r
/**\r
**/\r
VOID\r
BOpt_DestroyMenuEntry (\r
- BM_MENU_ENTRY *MenuEntry\r
+ BM_MENU_ENTRY *MenuEntry\r
);\r
\r
/**\r
**/\r
BM_MENU_ENTRY *\r
BOpt_GetMenuEntry (\r
- BM_MENU_OPTION *MenuOption,\r
- UINTN MenuNumber\r
+ BM_MENU_OPTION *MenuOption,\r
+ UINTN MenuNumber\r
);\r
\r
/**\r
- Get option number according to Boot#### and BootOrder variable. \r
+ Get option number according to Boot#### and BootOrder variable.\r
The value is saved as #### + 1.\r
\r
@param CallbackData The BMM context data.\r
**/\r
-VOID \r
+VOID\r
GetBootOrder (\r
- IN BMM_CALLBACK_DATA *CallbackData\r
+ IN BMM_CALLBACK_DATA *CallbackData\r
);\r
\r
/**\r
Get driver option order from globalc DriverOptionMenu.\r
\r
@param CallbackData The BMM context data.\r
- \r
+\r
**/\r
-VOID \r
+VOID\r
GetDriverOrder (\r
- IN BMM_CALLBACK_DATA *CallbackData\r
+ IN BMM_CALLBACK_DATA *CallbackData\r
);\r
\r
//\r
// Locate all serial io devices for console\r
//\r
+\r
/**\r
Build a list containing all serial devices.\r
\r
//\r
// Initializing Console menu\r
//\r
+\r
/**\r
Build up ConsoleOutMenu, ConsoleInpMenu and ConsoleErrMenu\r
\r
\r
**/\r
EFI_STATUS\r
-GetAllConsoles(\r
+GetAllConsoles (\r
VOID\r
);\r
\r
//\r
// Get current mode information\r
//\r
+\r
/**\r
Get mode number according to column and row\r
\r
**/\r
VOID\r
GetConsoleOutMode (\r
- IN BMM_CALLBACK_DATA *CallbackData\r
+ IN BMM_CALLBACK_DATA *CallbackData\r
);\r
\r
//\r
// Cleaning up console menu\r
//\r
+\r
/**\r
Free ConsoleOutMenu, ConsoleInpMenu and ConsoleErrMenu\r
\r
\r
/**\r
Update the multi-instance device path of Terminal Device based on\r
- the global TerminalMenu. If ChangeTernimal is TRUE, the terminal \r
+ the global TerminalMenu. If ChangeTernimal is TRUE, the terminal\r
device path in the Terminal Device in TerminalMenu is also updated.\r
\r
@param DevicePath The multi-instance device path.\r
- @param ChangeTerminal TRUE, then device path in the Terminal Device \r
+ @param ChangeTerminal TRUE, then device path in the Terminal Device\r
in TerminalMenu is also updated; FALSE, no update.\r
\r
@return EFI_SUCCESS The function completes successfully.\r
EFI_STATUS\r
ChangeTerminalDevicePath (\r
IN OUT EFI_DEVICE_PATH_PROTOCOL *DevicePath,\r
- IN BOOLEAN ChangeTerminal\r
+ IN BOOLEAN ChangeTerminal\r
);\r
\r
//\r
// Variable operation by menu selection\r
//\r
+\r
/**\r
- This function create a currently loaded Boot Option from \r
- the BMM. It then appends this Boot Option to the end of \r
+ This function create a currently loaded Boot Option from\r
+ the BMM. It then appends this Boot Option to the end of\r
the "BootOrder" list. It also append this Boot Opotion to the end\r
of BootOptionMenu.\r
\r
**/\r
EFI_STATUS\r
Var_UpdateBootOption (\r
- IN BMM_CALLBACK_DATA *CallbackData\r
+ IN BMM_CALLBACK_DATA *CallbackData\r
);\r
\r
/**\r
Delete Boot Option that represent a Deleted state in BootOptionMenu.\r
- After deleting this boot option, call Var_ChangeBootOrder to\r
- make sure BootOrder is in valid state.\r
\r
- @retval EFI_SUCCESS If all boot load option EFI Variables corresponding to \r
+ @retval EFI_SUCCESS If all boot load option EFI Variables corresponding to\r
BM_LOAD_CONTEXT marked for deletion is deleted\r
- @return Others If failed to update the "BootOrder" variable after deletion. \r
+ @return Others If failed to update the "BootOrder" variable after deletion.\r
\r
**/\r
EFI_STATUS\r
);\r
\r
/**\r
- After any operation on Boot####, there will be a discrepancy in BootOrder.\r
- Since some are missing but in BootOrder, while some are present but are\r
- not reflected by BootOrder. Then a function rebuild BootOrder from\r
- scratch by content from BootOptionMenu is needed.\r
-\r
- @retval EFI_SUCCESS The boot order is updated successfully.\r
- @return other than EFI_SUCCESS if failed to change the "BootOrder" EFI Variable.\r
-\r
-**/\r
-EFI_STATUS\r
-Var_ChangeBootOrder (\r
- VOID\r
- );\r
-\r
-/**\r
- This function create a currently loaded Drive Option from \r
- the BMM. It then appends this Driver Option to the end of \r
+ This function create a currently loaded Drive Option from\r
+ the BMM. It then appends this Driver Option to the end of\r
the "DriverOrder" list. It append this Driver Opotion to the end\r
of DriverOptionMenu.\r
\r
**/\r
EFI_STATUS\r
Var_UpdateDriverOption (\r
- IN BMM_CALLBACK_DATA *CallbackData,\r
- IN EFI_HII_HANDLE HiiHandle,\r
- IN UINT16 *DescriptionData,\r
- IN UINT16 *OptionalData,\r
- IN UINT8 ForceReconnect\r
+ IN BMM_CALLBACK_DATA *CallbackData,\r
+ IN EFI_HII_HANDLE HiiHandle,\r
+ IN UINT16 *DescriptionData,\r
+ IN UINT16 *OptionalData,\r
+ IN UINT8 ForceReconnect\r
);\r
\r
/**\r
- Delete Load Option that represent a Deleted state in BootOptionMenu.\r
- After deleting this Driver option, call Var_ChangeDriverOrder to\r
- make sure DriverOrder is in valid state.\r
+ Delete Load Option that represent a Deleted state in DriverOptionMenu.\r
\r
@retval EFI_SUCCESS Load Option is successfully updated.\r
@return Other value than EFI_SUCCESS if failed to update "Driver Order" EFI\r
VOID\r
);\r
\r
-/**\r
- After any operation on Driver####, there will be a discrepancy in\r
- DriverOrder. Since some are missing but in DriverOrder, while some\r
- are present but are not reflected by DriverOrder. Then a function\r
- rebuild DriverOrder from scratch by content from DriverOptionMenu is\r
- needed.\r
-\r
- @retval EFI_SUCCESS The driver order is updated successfully.\r
- @return other than EFI_SUCCESS if failed to set the "DriverOrder" EFI Variable.\r
-\r
-**/\r
-EFI_STATUS\r
-Var_ChangeDriverOrder (\r
- VOID\r
- );\r
-\r
/**\r
This function delete and build multi-instance device path ConIn\r
console device.\r
\r
/**\r
This function delete and build Out of Band console device.\r
- \r
+\r
@param MenuIndex Menu index which user select in the terminal menu list.\r
- \r
+\r
@retval EFI_SUCCESS The function complete successfully.\r
- @return The EFI variable can not be saved. See gRT->SetVariable for detail return information. \r
+ @return The EFI variable can not be saved. See gRT->SetVariable for detail return information.\r
**/\r
EFI_STATUS\r
Var_UpdateOutOfBandOption (\r
- IN UINT16 MenuIndex\r
+ IN UINT16 MenuIndex\r
);\r
\r
/**\r
- Update the device path of "ConOut", "ConIn" and "ErrOut" based on the new BaudRate, Data Bits, \r
- parity and stop Bits set.\r
-\r
-**/\r
-VOID\r
-Var_UpdateAllConsoleOption (\r
- VOID\r
- );\r
-\r
-/**\r
- This function update the "BootNext" EFI Variable. If there is no "BootNex" specified in BMM, \r
+ This function update the "BootNext" EFI Variable. If there is no "BootNex" specified in BMM,\r
this EFI Variable is deleted.\r
It also update the BMM context data specified the "BootNext" value.\r
\r
**/\r
EFI_STATUS\r
Var_UpdateBootNext (\r
- IN BMM_CALLBACK_DATA *CallbackData\r
+ IN BMM_CALLBACK_DATA *CallbackData\r
);\r
\r
/**\r
- This function update the "BootOrder" EFI Variable based on BMM Formset's NV map. It then refresh \r
+ This function update the "BootOrder" EFI Variable based on BMM Formset's NV map. It then refresh\r
BootOptionMenu with the new "BootOrder" list.\r
\r
@param CallbackData The BMM context data.\r
**/\r
EFI_STATUS\r
Var_UpdateBootOrder (\r
- IN BMM_CALLBACK_DATA *CallbackData\r
+ IN BMM_CALLBACK_DATA *CallbackData\r
);\r
\r
/**\r
**/\r
EFI_STATUS\r
Var_UpdateDriverOrder (\r
- IN BMM_CALLBACK_DATA *CallbackData\r
+ IN BMM_CALLBACK_DATA *CallbackData\r
);\r
\r
/**\r
**/\r
EFI_STATUS\r
Var_UpdateConMode (\r
- IN BMM_CALLBACK_DATA *CallbackData\r
+ IN BMM_CALLBACK_DATA *CallbackData\r
);\r
\r
//\r
// Following are page create and refresh functions\r
//\r
+\r
/**\r
Create the global UpdateData structure.\r
\r
\r
/**\r
Clean up the dynamic opcode at label and form specified by\r
- both LabelId. \r
+ both LabelId.\r
\r
@param LabelId It is both the Form ID and Label ID for\r
opcode deletion.\r
**/\r
VOID\r
CleanUpPage (\r
- IN UINT16 LabelId,\r
- IN BMM_CALLBACK_DATA *CallbackData\r
+ IN UINT16 LabelId,\r
+ IN BMM_CALLBACK_DATA *CallbackData\r
);\r
\r
/**\r
**/\r
VOID\r
UpdateBootDelPage (\r
- IN BMM_CALLBACK_DATA *CallbackData\r
+ IN BMM_CALLBACK_DATA *CallbackData\r
);\r
\r
/**\r
**/\r
VOID\r
UpdateDrvAddHandlePage (\r
- IN BMM_CALLBACK_DATA *CallbackData\r
+ IN BMM_CALLBACK_DATA *CallbackData\r
);\r
\r
/**\r
**/\r
VOID\r
UpdateDrvDelPage (\r
- IN BMM_CALLBACK_DATA *CallbackData\r
+ IN BMM_CALLBACK_DATA *CallbackData\r
);\r
\r
/**\r
**/\r
VOID\r
UpdateDriverAddHandleDescPage (\r
- IN BMM_CALLBACK_DATA *CallbackData\r
+ IN BMM_CALLBACK_DATA *CallbackData\r
);\r
\r
/**\r
**/\r
VOID\r
UpdatePageBody (\r
- IN UINT16 UpdatePageId,\r
- IN BMM_CALLBACK_DATA *CallbackData\r
- );\r
-\r
-/**\r
- Create the dynamic page to allow user to set the "BootNext" vaule.\r
-\r
- @param CallbackData The BMM context data.\r
-**/\r
-VOID\r
-UpdateBootNextPage (\r
- IN BMM_CALLBACK_DATA *CallbackData\r
- );\r
-\r
-/**\r
- Create the dynamic page to allow user to set the "TimeOut" vaule.\r
-\r
- @param CallbackData The BMM context data.\r
-**/\r
-VOID\r
-UpdateTimeOutPage (\r
- IN BMM_CALLBACK_DATA *CallbackData\r
+ IN UINT16 UpdatePageId,\r
+ IN BMM_CALLBACK_DATA *CallbackData\r
);\r
\r
/**\r
**/\r
VOID\r
UpdateTerminalPage (\r
- IN BMM_CALLBACK_DATA *CallbackData\r
+ IN BMM_CALLBACK_DATA *CallbackData\r
);\r
\r
/**\r
**/\r
VOID\r
UpdateConModePage (\r
- IN BMM_CALLBACK_DATA *CallbackData\r
+ IN BMM_CALLBACK_DATA *CallbackData\r
);\r
\r
/**\r
**/\r
VOID\r
UpdateConCOMPage (\r
- IN BMM_CALLBACK_DATA *CallbackData\r
+ IN BMM_CALLBACK_DATA *CallbackData\r
);\r
\r
/**\r
\r
**/\r
VOID\r
-UpdateOptionPage(\r
- IN BMM_CALLBACK_DATA *CallbackData,\r
- IN EFI_FORM_ID FormId,\r
- IN EFI_DEVICE_PATH_PROTOCOL *DevicePath\r
+UpdateOptionPage (\r
+ IN BMM_CALLBACK_DATA *CallbackData,\r
+ IN EFI_FORM_ID FormId,\r
+ IN EFI_DEVICE_PATH_PROTOCOL *DevicePath\r
);\r
\r
/**\r
\r
@param VarName A Null-terminated Unicode string that is\r
the name of the vendor's variable.\r
- \r
+\r
@param VarGuid A unique identifier for the vendor.\r
\r
@retval EFI_SUCCESS The variable was found and removed\r
**/\r
EFI_STATUS\r
EfiLibDeleteVariable (\r
- IN CHAR16 *VarName,\r
- IN EFI_GUID *VarGuid\r
+ IN CHAR16 *VarName,\r
+ IN EFI_GUID *VarGuid\r
);\r
\r
/**\r
**/\r
UINTN\r
EfiDevicePathInstanceCount (\r
- IN EFI_DEVICE_PATH_PROTOCOL *DevicePath\r
+ IN EFI_DEVICE_PATH_PROTOCOL *DevicePath\r
);\r
\r
/**\r
- Get a string from the Data Hub record based on \r
+ Get a string from the Data Hub record based on\r
a device path.\r
\r
@param DevPath The device Path.\r
**/\r
UINT16 *\r
EfiLibStrFromDatahub (\r
- IN EFI_DEVICE_PATH_PROTOCOL *DevPath\r
+ IN EFI_DEVICE_PATH_PROTOCOL *DevPath\r
);\r
\r
/**\r
**/\r
VOID *\r
GetLegacyBootOptionVar (\r
- IN UINTN DeviceType,\r
- OUT UINTN *OptionIndex,\r
- OUT UINTN *OptionSize\r
+ IN UINTN DeviceType,\r
+ OUT UINTN *OptionIndex,\r
+ OUT UINTN *OptionSize\r
);\r
\r
/**\r
**/\r
VOID\r
DiscardChangeHandler (\r
- IN BMM_CALLBACK_DATA *Private,\r
- IN BMM_FAKE_NV_DATA *CurrentFakeNVMap\r
+ IN BMM_CALLBACK_DATA *Private,\r
+ IN BMM_FAKE_NV_DATA *CurrentFakeNVMap\r
+ );\r
+\r
+/**\r
+ This function is to clean some useless data before submit changes.\r
+\r
+ @param Private The BMM context data.\r
+\r
+**/\r
+VOID\r
+CleanUselessBeforeSubmit (\r
+ IN BMM_CALLBACK_DATA *Private\r
);\r
\r
/**\r
**/\r
VOID\r
UpdatePageId (\r
- BMM_CALLBACK_DATA *Private,\r
- UINT16 NewPageId\r
+ BMM_CALLBACK_DATA *Private,\r
+ UINT16 NewPageId\r
);\r
\r
/**\r
\r
**/\r
VOID\r
-FreeBMPackage(\r
+FreeBMPackage (\r
VOID\r
);\r
\r
\r
**/\r
VOID\r
-InitBootMaintenance(\r
+InitBootMaintenance (\r
VOID\r
);\r
\r
\r
@param CallbackData The BMM context data.\r
\r
-**/ \r
-VOID \r
+**/\r
+VOID\r
GetConsoleInCheck (\r
- IN BMM_CALLBACK_DATA *CallbackData\r
+ IN BMM_CALLBACK_DATA *CallbackData\r
);\r
\r
/**\r
**/\r
VOID\r
GetConsoleOutCheck (\r
- IN BMM_CALLBACK_DATA *CallbackData\r
+ IN BMM_CALLBACK_DATA *CallbackData\r
);\r
\r
/**\r
\r
@param CallbackData The BMM context data.\r
\r
-**/ \r
+**/\r
VOID\r
GetConsoleErrCheck (\r
- IN BMM_CALLBACK_DATA *CallbackData\r
+ IN BMM_CALLBACK_DATA *CallbackData\r
);\r
\r
/**\r
**/\r
VOID\r
GetTerminalAttribute (\r
- IN BMM_CALLBACK_DATA *CallbackData\r
+ IN BMM_CALLBACK_DATA *CallbackData\r
);\r
\r
/**\r
This function will change video resolution and text mode\r
- according to defined setup mode or defined boot mode \r
+ according to defined setup mode or defined boot mode\r
\r
- @param IsSetupMode Indicate mode is changed to setup mode or boot mode. \r
+ @param IsSetupMode Indicate mode is changed to setup mode or boot mode.\r
\r
@retval EFI_SUCCESS Mode is changed successfully.\r
@retval Others Mode failed to be changed.\r
\r
**/\r
EFI_STATUS\r
-EFIAPI\r
-BmmBdsSetConsoleMode (\r
+BmmSetConsoleMode (\r
BOOLEAN IsSetupMode\r
);\r
\r
-\r
/**\r
This function converts an input device structure to a Unicode string.\r
\r
**/\r
CHAR16 *\r
UiDevicePathToStr (\r
- IN EFI_DEVICE_PATH_PROTOCOL *DevPath\r
+ IN EFI_DEVICE_PATH_PROTOCOL *DevPath\r
);\r
\r
/**\r
**/\r
CHAR16 *\r
ExtractFileNameFromDevicePath (\r
- IN EFI_DEVICE_PATH_PROTOCOL *DevicePath\r
+ IN EFI_DEVICE_PATH_PROTOCOL *DevicePath\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
BootMaintExtractConfig (\r
- IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,\r
- IN CONST EFI_STRING Request,\r
- OUT EFI_STRING *Progress,\r
- OUT EFI_STRING *Results\r
+ IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,\r
+ IN CONST EFI_STRING Request,\r
+ OUT EFI_STRING *Progress,\r
+ OUT EFI_STRING *Results\r
);\r
\r
/**\r
\r
@param[in] This Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL.\r
@param[in] Configuration A null-terminated Unicode string in\r
- <ConfigString> format. \r
+ <ConfigString> format.\r
@param[out] Progress A pointer to a string filled in with the\r
offset of the most recent '&' before the\r
first failing name / value pair (or the\r
successful.\r
\r
@retval EFI_SUCCESS The results have been distributed or are\r
- awaiting distribution. \r
+ awaiting distribution.\r
@retval EFI_OUT_OF_RESOURCES Not enough memory to store the\r
parts of the results that must be\r
stored awaiting possible future\r
EFI_STATUS\r
EFIAPI\r
BootMaintRouteConfig (\r
- IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,\r
- IN CONST EFI_STRING Configuration,\r
- OUT EFI_STRING *Progress\r
+ IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,\r
+ IN CONST EFI_STRING Configuration,\r
+ OUT EFI_STRING *Progress\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
BootMaintCallback (\r
- IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,\r
- IN EFI_BROWSER_ACTION Action,\r
- IN EFI_QUESTION_ID QuestionId,\r
- IN UINT8 Type,\r
- IN EFI_IFR_TYPE_VALUE *Value,\r
- OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest\r
+ IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,\r
+ IN EFI_BROWSER_ACTION Action,\r
+ IN EFI_QUESTION_ID QuestionId,\r
+ IN UINT8 Type,\r
+ IN EFI_IFR_TYPE_VALUE *Value,\r
+ OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest\r
);\r
\r
/**\r
@retval FALSE Not exit caller function.\r
\r
**/\r
-BOOLEAN \r
+BOOLEAN\r
+EFIAPI\r
CreateBootOptionFromFile (\r
- IN EFI_DEVICE_PATH_PROTOCOL *FilePath\r
+ IN EFI_DEVICE_PATH_PROTOCOL *FilePath\r
);\r
\r
/**\r
@retval TRUE Exit caller function.\r
@retval FALSE Not exit caller function.\r
**/\r
-BOOLEAN \r
+BOOLEAN\r
+EFIAPI\r
CreateDriverOptionFromFile (\r
- IN EFI_DEVICE_PATH_PROTOCOL *FilePath\r
+ IN EFI_DEVICE_PATH_PROTOCOL *FilePath\r
);\r
\r
/**\r
\r
@retval TRUE Exit caller function.\r
@retval FALSE Not exit caller function.\r
- \r
+\r
**/\r
-BOOLEAN \r
+BOOLEAN\r
+EFIAPI\r
BootFromFile (\r
- IN EFI_DEVICE_PATH_PROTOCOL *FilePath\r
+ IN EFI_DEVICE_PATH_PROTOCOL *FilePath\r
);\r
\r
//\r
// Global variable in this program (defined in data.c)\r
//\r
-extern BM_MENU_OPTION BootOptionMenu;\r
-extern BM_MENU_OPTION DriverOptionMenu;\r
-extern BM_MENU_OPTION ConsoleInpMenu;\r
-extern BM_MENU_OPTION ConsoleOutMenu;\r
-extern BM_MENU_OPTION ConsoleErrMenu;\r
-extern BM_MENU_OPTION DriverMenu;\r
-extern BM_MENU_OPTION TerminalMenu;\r
-extern UINT16 TerminalType[5];\r
-extern COM_ATTR BaudRateList[19];\r
-extern COM_ATTR DataBitsList[4];\r
-extern COM_ATTR ParityList[5];\r
-extern COM_ATTR StopBitsList[3];\r
-extern EFI_GUID TerminalTypeGuid[5];\r
-extern EFI_DEVICE_PATH_PROTOCOL EndDevicePath[];\r
-extern UINT16 mFlowControlType[2];\r
-extern UINT32 mFlowControlValue[2];\r
+extern BM_MENU_OPTION BootOptionMenu;\r
+extern BM_MENU_OPTION DriverOptionMenu;\r
+extern BM_MENU_OPTION ConsoleInpMenu;\r
+extern BM_MENU_OPTION ConsoleOutMenu;\r
+extern BM_MENU_OPTION ConsoleErrMenu;\r
+extern BM_MENU_OPTION DriverMenu;\r
+extern BM_MENU_OPTION TerminalMenu;\r
+extern UINT16 TerminalType[9];\r
+extern COM_ATTR BaudRateList[19];\r
+extern COM_ATTR DataBitsList[4];\r
+extern COM_ATTR ParityList[5];\r
+extern COM_ATTR StopBitsList[3];\r
+extern EFI_GUID TerminalTypeGuid[9];\r
+extern EFI_DEVICE_PATH_PROTOCOL EndDevicePath[];\r
+extern UINT16 mFlowControlType[2];\r
+extern UINT32 mFlowControlValue[2];\r
\r
//\r
// Shared IFR form update data\r
//\r
-extern VOID *mStartOpCodeHandle;\r
-extern VOID *mEndOpCodeHandle;\r
-extern EFI_IFR_GUID_LABEL *mStartLabel;\r
-extern EFI_IFR_GUID_LABEL *mEndLabel;\r
-extern BMM_CALLBACK_DATA gBootMaintenancePrivate;\r
-extern BMM_CALLBACK_DATA *mBmmCallbackInfo;\r
+extern VOID *mStartOpCodeHandle;\r
+extern VOID *mEndOpCodeHandle;\r
+extern EFI_IFR_GUID_LABEL *mStartLabel;\r
+extern EFI_IFR_GUID_LABEL *mEndLabel;\r
+extern BMM_CALLBACK_DATA gBootMaintenancePrivate;\r
+extern BMM_CALLBACK_DATA *mBmmCallbackInfo;\r
\r
#endif\r