]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManager.h
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / MdeModulePkg / Library / BootMaintenanceManagerUiLib / BootMaintenanceManager.h
index 24526e1096757ffbc945086856a2376c97a76be2..2e9a70dccb5fe3004b3c62180d532ca93a71170f 100644 (file)
@@ -1,14 +1,8 @@
 /** @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
@@ -28,6 +22,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #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
@@ -41,6 +36,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #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
@@ -48,8 +44,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 /// 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
@@ -57,19 +53,19 @@ typedef struct {
 // 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
@@ -83,7 +79,7 @@ extern UINT8    BootMaintenanceManagerBin[];
 //\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
@@ -92,11 +88,15 @@ extern UINT8    BootMaintenanceManagerBin[];
 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
@@ -110,20 +110,20 @@ typedef enum _TYPE_OF_TERMINAL {
 #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
@@ -148,12 +148,12 @@ typedef enum _TYPE_OF_TERMINAL {
 // 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
@@ -193,47 +193,47 @@ typedef enum _TYPE_OF_TERMINAL {
 #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
@@ -241,134 +241,122 @@ typedef enum _TYPE_OF_TERMINAL {
 /// 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
@@ -399,7 +387,7 @@ BOpt_FindDrivers (
 **/\r
 EFI_STATUS\r
 BOpt_GetBootOptions (\r
-  IN  BMM_CALLBACK_DATA         *CallbackData\r
+  IN  BMM_CALLBACK_DATA  *CallbackData\r
   );\r
 \r
 /**\r
@@ -410,12 +398,12 @@ BOpt_GetBootOptions (
 \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
@@ -426,7 +414,7 @@ BOpt_GetDriverOptions (
 **/\r
 VOID\r
 BOpt_FreeMenu (\r
-  BM_MENU_OPTION        *FreeMenu\r
+  BM_MENU_OPTION  *FreeMenu\r
   );\r
 \r
 /**\r
@@ -440,7 +428,7 @@ BOpt_FreeMenu (
 **/\r
 UINT16\r
 BOpt_GetOptionNumber (\r
-  CHAR16        *Type\r
+  CHAR16  *Type\r
   );\r
 \r
 /**\r
@@ -479,7 +467,7 @@ BOpt_GetDriverOptionNumber (
 **/\r
 BM_MENU_ENTRY                     *\r
 BOpt_CreateMenuEntry (\r
-  UINTN           MenuType\r
+  UINTN  MenuType\r
   );\r
 \r
 /**\r
@@ -490,7 +478,7 @@ BOpt_CreateMenuEntry (
 **/\r
 VOID\r
 BOpt_DestroyMenuEntry (\r
-  BM_MENU_ENTRY         *MenuEntry\r
+  BM_MENU_ENTRY  *MenuEntry\r
   );\r
 \r
 /**\r
@@ -507,35 +495,36 @@ BOpt_DestroyMenuEntry (
 **/\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
@@ -551,6 +540,7 @@ LocateSerialIo (
 //\r
 // Initializing Console menu\r
 //\r
+\r
 /**\r
   Build up ConsoleOutMenu, ConsoleInpMenu and ConsoleErrMenu\r
 \r
@@ -558,13 +548,14 @@ LocateSerialIo (
 \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
@@ -572,12 +563,13 @@ GetAllConsoles(
 **/\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
@@ -603,11 +595,11 @@ ChangeVariableDevicePath (
 \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
@@ -616,15 +608,16 @@ ChangeVariableDevicePath (
 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
@@ -636,17 +629,15 @@ ChangeTerminalDevicePath (
 **/\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
@@ -655,23 +646,8 @@ Var_DelBootOption (
   );\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
@@ -687,17 +663,15 @@ Var_ChangeBootOrder (
 **/\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
@@ -709,22 +683,6 @@ Var_DelDriverOption (
   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
@@ -761,29 +719,19 @@ Var_UpdateErrorOutOption (
 \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
@@ -795,11 +743,11 @@ Var_UpdateAllConsoleOption (
 **/\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
@@ -811,7 +759,7 @@ Var_UpdateBootNext (
 **/\r
 EFI_STATUS\r
 Var_UpdateBootOrder (\r
-  IN BMM_CALLBACK_DATA            *CallbackData\r
+  IN BMM_CALLBACK_DATA  *CallbackData\r
   );\r
 \r
 /**\r
@@ -828,7 +776,7 @@ Var_UpdateBootOrder (
 **/\r
 EFI_STATUS\r
 Var_UpdateDriverOrder (\r
-  IN BMM_CALLBACK_DATA            *CallbackData\r
+  IN BMM_CALLBACK_DATA  *CallbackData\r
   );\r
 \r
 /**\r
@@ -842,12 +790,13 @@ Var_UpdateDriverOrder (
 **/\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
@@ -868,7 +817,7 @@ RefreshUpdateData (
 \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
@@ -877,8 +826,8 @@ RefreshUpdateData (
 **/\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
@@ -890,7 +839,7 @@ CleanUpPage (
 **/\r
 VOID\r
 UpdateBootDelPage (\r
-  IN BMM_CALLBACK_DATA                *CallbackData\r
+  IN BMM_CALLBACK_DATA  *CallbackData\r
   );\r
 \r
 /**\r
@@ -900,7 +849,7 @@ UpdateBootDelPage (
 **/\r
 VOID\r
 UpdateDrvAddHandlePage (\r
-  IN BMM_CALLBACK_DATA                *CallbackData\r
+  IN BMM_CALLBACK_DATA  *CallbackData\r
   );\r
 \r
 /**\r
@@ -911,7 +860,7 @@ UpdateDrvAddHandlePage (
 **/\r
 VOID\r
 UpdateDrvDelPage (\r
-  IN BMM_CALLBACK_DATA                *CallbackData\r
+  IN BMM_CALLBACK_DATA  *CallbackData\r
   );\r
 \r
 /**\r
@@ -921,7 +870,7 @@ UpdateDrvDelPage (
 **/\r
 VOID\r
 UpdateDriverAddHandleDescPage (\r
-  IN BMM_CALLBACK_DATA                *CallbackData\r
+  IN BMM_CALLBACK_DATA  *CallbackData\r
   );\r
 \r
 /**\r
@@ -932,28 +881,8 @@ UpdateDriverAddHandleDescPage (
 **/\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
@@ -964,7 +893,7 @@ UpdateTimeOutPage (
 **/\r
 VOID\r
 UpdateTerminalPage (\r
-  IN BMM_CALLBACK_DATA                *CallbackData\r
+  IN BMM_CALLBACK_DATA  *CallbackData\r
   );\r
 \r
 /**\r
@@ -974,7 +903,7 @@ UpdateTerminalPage (
 **/\r
 VOID\r
 UpdateConModePage (\r
-  IN BMM_CALLBACK_DATA                *CallbackData\r
+  IN BMM_CALLBACK_DATA  *CallbackData\r
   );\r
 \r
 /**\r
@@ -985,7 +914,7 @@ UpdateConModePage (
 **/\r
 VOID\r
 UpdateConCOMPage (\r
-  IN BMM_CALLBACK_DATA                *CallbackData\r
+  IN BMM_CALLBACK_DATA  *CallbackData\r
   );\r
 \r
 /**\r
@@ -997,10 +926,10 @@ UpdateConCOMPage (
 \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
@@ -1009,7 +938,7 @@ UpdateOptionPage(
 \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
@@ -1020,8 +949,8 @@ UpdateOptionPage(
 **/\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
@@ -1037,11 +966,11 @@ EfiLibDeleteVariable (
 **/\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
@@ -1053,7 +982,7 @@ EfiDevicePathInstanceCount (
 **/\r
 UINT16 *\r
 EfiLibStrFromDatahub (\r
-  IN EFI_DEVICE_PATH_PROTOCOL                 *DevPath\r
+  IN EFI_DEVICE_PATH_PROTOCOL  *DevPath\r
   );\r
 \r
 /**\r
@@ -1068,9 +997,9 @@ EfiLibStrFromDatahub (
 **/\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
@@ -1083,8 +1012,19 @@ GetLegacyBootOptionVar (
 **/\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
@@ -1096,8 +1036,8 @@ DiscardChangeHandler (
 **/\r
 VOID\r
 UpdatePageId (\r
-  BMM_CALLBACK_DATA              *Private,\r
-  UINT16                         NewPageId\r
+  BMM_CALLBACK_DATA  *Private,\r
+  UINT16             NewPageId\r
   );\r
 \r
 /**\r
@@ -1105,7 +1045,7 @@ UpdatePageId (
 \r
 **/\r
 VOID\r
-FreeBMPackage(\r
+FreeBMPackage (\r
   VOID\r
   );\r
 \r
@@ -1114,7 +1054,7 @@ FreeBMPackage(
 \r
 **/\r
 VOID\r
-InitBootMaintenance(\r
+InitBootMaintenance (\r
   VOID\r
   );\r
 \r
@@ -1125,10 +1065,10 @@ InitBootMaintenance(
 \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
@@ -1141,7 +1081,7 @@ GetConsoleInCheck (
 **/\r
 VOID\r
 GetConsoleOutCheck (\r
-  IN  BMM_CALLBACK_DATA    *CallbackData\r
+  IN  BMM_CALLBACK_DATA  *CallbackData\r
   );\r
 \r
 /**\r
@@ -1151,10 +1091,10 @@ GetConsoleOutCheck (
 \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
@@ -1167,26 +1107,24 @@ GetConsoleErrCheck (
 **/\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
@@ -1197,7 +1135,7 @@ BmmBdsSetConsoleMode (
 **/\r
 CHAR16 *\r
 UiDevicePathToStr (\r
-  IN EFI_DEVICE_PATH_PROTOCOL     *DevPath\r
+  IN EFI_DEVICE_PATH_PROTOCOL  *DevPath\r
   );\r
 \r
 /**\r
@@ -1211,7 +1149,7 @@ UiDevicePathToStr (
 **/\r
 CHAR16 *\r
 ExtractFileNameFromDevicePath (\r
-  IN   EFI_DEVICE_PATH_PROTOCOL *DevicePath\r
+  IN   EFI_DEVICE_PATH_PROTOCOL  *DevicePath\r
   );\r
 \r
 /**\r
@@ -1238,10 +1176,10 @@ ExtractFileNameFromDevicePath (
 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
@@ -1256,7 +1194,7 @@ BootMaintExtractConfig (
 \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
@@ -1266,7 +1204,7 @@ BootMaintExtractConfig (
                                   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
@@ -1280,9 +1218,9 @@ BootMaintExtractConfig (
 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
@@ -1306,12 +1244,12 @@ BootMaintRouteConfig (
 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
@@ -1323,9 +1261,10 @@ BootMaintCallback (
   @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
@@ -1336,9 +1275,10 @@ CreateBootOptionFromFile (
   @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
@@ -1348,41 +1288,42 @@ CreateDriverOptionFromFile (
 \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