MdeModulePkg: Apply uncrustify changes

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737

Apply uncrustify changes to .c/.h files in the MdeModulePkg package

Cc: Andrew Fish <afish@apple.com>
Cc: Leif Lindholm <leif@nuviainc.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
This commit is contained in:
Michael Kubacki
2021-12-05 14:54:02 -08:00
committed by mergify[bot]
parent 7c7184e201
commit 1436aea4d5
994 changed files with 107608 additions and 101311 deletions

View File

@@ -23,8 +23,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
EFI_STATUS
EfiLibDeleteVariable (
IN CHAR16 *VarName,
IN EFI_GUID *VarGuid
IN CHAR16 *VarName,
IN EFI_GUID *VarGuid
)
{
return gRT->SetVariable (
@@ -49,11 +49,11 @@ EfiLibDeleteVariable (
**/
UINTN
EfiDevicePathInstanceCount (
IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
)
{
UINTN Count;
UINTN Size;
UINTN Count;
UINTN Size;
Count = 0;
while (GetNextDevicePathInstance (&DevicePath, &Size) != NULL) {
@@ -76,7 +76,7 @@ EfiDevicePathInstanceCount (
**/
UINT16 *
EfiLibStrFromDatahub (
IN EFI_DEVICE_PATH_PROTOCOL *DevPath
IN EFI_DEVICE_PATH_PROTOCOL *DevPath
)
{
return NULL;

View File

@@ -44,8 +44,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
/// HII specific Vendor Device Path definition.
///
typedef struct {
VENDOR_DEVICE_PATH VendorDevicePath;
EFI_DEVICE_PATH_PROTOCOL End;
VENDOR_DEVICE_PATH VendorDevicePath;
EFI_DEVICE_PATH_PROTOCOL End;
} HII_VENDOR_DEVICE_PATH;
#pragma pack()
@@ -53,19 +53,19 @@ typedef struct {
// Constants which are variable names used to access variables
//
#define VAR_CON_OUT_MODE L"ConOutMode"
#define VAR_CON_OUT_MODE L"ConOutMode"
//
// Variable created with this flag will be "Efi:...."
//
#define VAR_FLAG EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE
extern EFI_GUID mBootMaintGuid;
extern CHAR16 mBootMaintStorageName[];
extern EFI_GUID mBootMaintGuid;
extern CHAR16 mBootMaintStorageName[];
//
// These are the VFR compiler generated data representing our VFR data.
//
extern UINT8 BootMaintenanceManagerBin[];
extern UINT8 BootMaintenanceManagerBin[];
//
// Below are the number of options in Baudrate, Databits,
@@ -79,7 +79,7 @@ extern UINT8 BootMaintenanceManagerBin[];
//
// Callback function helper
//
#define BMM_CALLBACK_DATA_SIGNATURE SIGNATURE_32 ('C', 'b', 'c', 'k')
#define BMM_CALLBACK_DATA_SIGNATURE SIGNATURE_32 ('C', 'b', 'c', 'k')
#define BMM_CALLBACK_DATA_FROM_THIS(a) CR (a, BMM_CALLBACK_DATA, BmmConfigAccess, BMM_CALLBACK_DATA_SIGNATURE)
//
@@ -88,7 +88,7 @@ extern UINT8 BootMaintenanceManagerBin[];
typedef UINT8 BBS_TYPE;
typedef enum _TYPE_OF_TERMINAL {
TerminalTypePcAnsi = 0,
TerminalTypePcAnsi = 0,
TerminalTypeVt100,
TerminalTypeVt100Plus,
TerminalTypeVtUtf8,
@@ -110,20 +110,20 @@ typedef enum _TYPE_OF_TERMINAL {
#define BM_TERMINAL_OPTION_SIGNATURE SIGNATURE_32 ('t', 'r', 'm', 'l')
#define BM_MENU_ENTRY_SIGNATURE SIGNATURE_32 ('e', 'n', 't', 'r')
#define BM_LOAD_CONTEXT_SELECT 0x0
#define BM_CONSOLE_CONTEXT_SELECT 0x1
#define BM_FILE_CONTEXT_SELECT 0x2
#define BM_HANDLE_CONTEXT_SELECT 0x3
#define BM_TERMINAL_CONTEXT_SELECT 0x5
#define BM_LOAD_CONTEXT_SELECT 0x0
#define BM_CONSOLE_CONTEXT_SELECT 0x1
#define BM_FILE_CONTEXT_SELECT 0x2
#define BM_HANDLE_CONTEXT_SELECT 0x3
#define BM_TERMINAL_CONTEXT_SELECT 0x5
#define BM_CONSOLE_IN_CONTEXT_SELECT 0x6
#define BM_CONSOLE_OUT_CONTEXT_SELECT 0x7
#define BM_CONSOLE_ERR_CONTEXT_SELECT 0x8
#define BM_CONSOLE_IN_CONTEXT_SELECT 0x6
#define BM_CONSOLE_OUT_CONTEXT_SELECT 0x7
#define BM_CONSOLE_ERR_CONTEXT_SELECT 0x8
//
// Buffer size for update data
//
#define UPDATE_DATA_SIZE 0x100000
#define UPDATE_DATA_SIZE 0x100000
//
// Namespace of callback keys used in display and file system navigation
@@ -148,12 +148,12 @@ typedef enum _TYPE_OF_TERMINAL {
// all these values are computed from the structure
// defined below
//
#define VAR_OFFSET(Field) ((UINT16) ((UINTN) &(((BMM_FAKE_NV_DATA *) 0)->Field)))
#define VAR_OFFSET(Field) ((UINT16) ((UINTN) &(((BMM_FAKE_NV_DATA *) 0)->Field)))
//
// Question Id of Zero is invalid, so add an offset to it
//
#define QUESTION_ID(Field) (VAR_OFFSET (Field) + CONFIG_OPTION_OFFSET)
#define QUESTION_ID(Field) (VAR_OFFSET (Field) + CONFIG_OPTION_OFFSET)
#define BOOT_TIME_OUT_VAR_OFFSET VAR_OFFSET (BootTimeOut)
#define BOOT_NEXT_VAR_OFFSET VAR_OFFSET (BootNext)
@@ -193,47 +193,47 @@ typedef enum _TYPE_OF_TERMINAL {
#define COM_TERMINAL_VAR_OFFSET VAR_OFFSET (COMTerminalType)
#define COM_FLOWCONTROL_VAR_OFFSET VAR_OFFSET (COMFlowControl)
#define BOOT_TIME_OUT_QUESTION_ID QUESTION_ID (BootTimeOut)
#define BOOT_NEXT_QUESTION_ID QUESTION_ID (BootNext)
#define COM1_BAUD_RATE_QUESTION_ID QUESTION_ID (COM1BaudRate)
#define COM1_DATA_RATE_QUESTION_ID QUESTION_ID (COM1DataRate)
#define COM1_STOP_BITS_QUESTION_ID QUESTION_ID (COM1StopBits)
#define COM1_PARITY_QUESTION_ID QUESTION_ID (COM1Parity)
#define COM1_TERMINAL_QUESTION_ID QUESTION_ID (COM2TerminalType)
#define COM2_BAUD_RATE_QUESTION_ID QUESTION_ID (COM2BaudRate)
#define COM2_DATA_RATE_QUESTION_ID QUESTION_ID (COM2DataRate)
#define COM2_STOP_BITS_QUESTION_ID QUESTION_ID (COM2StopBits)
#define COM2_PARITY_QUESTION_ID QUESTION_ID (COM2Parity)
#define COM2_TERMINAL_QUESTION_ID QUESTION_ID (COM2TerminalType)
#define DRV_ADD_HANDLE_DESC_QUESTION_ID QUESTION_ID (DriverAddHandleDesc)
#define DRV_ADD_ACTIVE_QUESTION_ID QUESTION_ID (DriverAddActive)
#define DRV_ADD_RECON_QUESTION_ID QUESTION_ID (DriverAddForceReconnect)
#define CON_IN_COM1_QUESTION_ID QUESTION_ID (ConsoleInputCOM1)
#define CON_IN_COM2_QUESTION_ID QUESTION_ID (ConsoleInputCOM2)
#define CON_OUT_COM1_QUESTION_ID QUESTION_ID (ConsoleOutputCOM1)
#define CON_OUT_COM2_QUESTION_ID QUESTION_ID (ConsoleOutputCOM2)
#define CON_ERR_COM1_QUESTION_ID QUESTION_ID (ConsoleErrorCOM1)
#define CON_ERR_COM2_QUESTION_ID QUESTION_ID (ConsoleErrorCOM2)
#define CON_MODE_QUESTION_ID QUESTION_ID (ConsoleOutMode)
#define CON_DEVICE_QUESTION_ID QUESTION_ID (ConsoleCheck)
#define CON_IN_DEVICE_QUESTION_ID QUESTION_ID (ConsoleInCheck)
#define CON_OUT_DEVICE_QUESTION_ID QUESTION_ID (ConsoleOutCheck)
#define CON_ERR_DEVICE_QUESTION_ID QUESTION_ID (ConsoleErrCheck)
#define BOOT_OPTION_ORDER_QUESTION_ID QUESTION_ID (BootOptionOrder)
#define DRIVER_OPTION_ORDER_QUESTION_ID QUESTION_ID (DriverOptionOrder)
#define BOOT_OPTION_DEL_QUESTION_ID QUESTION_ID (BootOptionDel)
#define DRIVER_OPTION_DEL_QUESTION_ID QUESTION_ID (DriverOptionDel)
#define DRIVER_ADD_OPTION_QUESTION_ID QUESTION_ID (DriverAddHandleOptionalData)
#define COM_BAUD_RATE_QUESTION_ID QUESTION_ID (COMBaudRate)
#define COM_DATA_RATE_QUESTION_ID QUESTION_ID (COMDataRate)
#define COM_STOP_BITS_QUESTION_ID QUESTION_ID (COMStopBits)
#define COM_PARITY_QUESTION_ID QUESTION_ID (COMParity)
#define COM_TERMINAL_QUESTION_ID QUESTION_ID (COMTerminalType)
#define COM_FLOWCONTROL_QUESTION_ID QUESTION_ID (COMFlowControl)
#define BOOT_TIME_OUT_QUESTION_ID QUESTION_ID (BootTimeOut)
#define BOOT_NEXT_QUESTION_ID QUESTION_ID (BootNext)
#define COM1_BAUD_RATE_QUESTION_ID QUESTION_ID (COM1BaudRate)
#define COM1_DATA_RATE_QUESTION_ID QUESTION_ID (COM1DataRate)
#define COM1_STOP_BITS_QUESTION_ID QUESTION_ID (COM1StopBits)
#define COM1_PARITY_QUESTION_ID QUESTION_ID (COM1Parity)
#define COM1_TERMINAL_QUESTION_ID QUESTION_ID (COM2TerminalType)
#define COM2_BAUD_RATE_QUESTION_ID QUESTION_ID (COM2BaudRate)
#define COM2_DATA_RATE_QUESTION_ID QUESTION_ID (COM2DataRate)
#define COM2_STOP_BITS_QUESTION_ID QUESTION_ID (COM2StopBits)
#define COM2_PARITY_QUESTION_ID QUESTION_ID (COM2Parity)
#define COM2_TERMINAL_QUESTION_ID QUESTION_ID (COM2TerminalType)
#define DRV_ADD_HANDLE_DESC_QUESTION_ID QUESTION_ID (DriverAddHandleDesc)
#define DRV_ADD_ACTIVE_QUESTION_ID QUESTION_ID (DriverAddActive)
#define DRV_ADD_RECON_QUESTION_ID QUESTION_ID (DriverAddForceReconnect)
#define CON_IN_COM1_QUESTION_ID QUESTION_ID (ConsoleInputCOM1)
#define CON_IN_COM2_QUESTION_ID QUESTION_ID (ConsoleInputCOM2)
#define CON_OUT_COM1_QUESTION_ID QUESTION_ID (ConsoleOutputCOM1)
#define CON_OUT_COM2_QUESTION_ID QUESTION_ID (ConsoleOutputCOM2)
#define CON_ERR_COM1_QUESTION_ID QUESTION_ID (ConsoleErrorCOM1)
#define CON_ERR_COM2_QUESTION_ID QUESTION_ID (ConsoleErrorCOM2)
#define CON_MODE_QUESTION_ID QUESTION_ID (ConsoleOutMode)
#define CON_DEVICE_QUESTION_ID QUESTION_ID (ConsoleCheck)
#define CON_IN_DEVICE_QUESTION_ID QUESTION_ID (ConsoleInCheck)
#define CON_OUT_DEVICE_QUESTION_ID QUESTION_ID (ConsoleOutCheck)
#define CON_ERR_DEVICE_QUESTION_ID QUESTION_ID (ConsoleErrCheck)
#define BOOT_OPTION_ORDER_QUESTION_ID QUESTION_ID (BootOptionOrder)
#define DRIVER_OPTION_ORDER_QUESTION_ID QUESTION_ID (DriverOptionOrder)
#define BOOT_OPTION_DEL_QUESTION_ID QUESTION_ID (BootOptionDel)
#define DRIVER_OPTION_DEL_QUESTION_ID QUESTION_ID (DriverOptionDel)
#define DRIVER_ADD_OPTION_QUESTION_ID QUESTION_ID (DriverAddHandleOptionalData)
#define COM_BAUD_RATE_QUESTION_ID QUESTION_ID (COMBaudRate)
#define COM_DATA_RATE_QUESTION_ID QUESTION_ID (COMDataRate)
#define COM_STOP_BITS_QUESTION_ID QUESTION_ID (COMStopBits)
#define COM_PARITY_QUESTION_ID QUESTION_ID (COMParity)
#define COM_TERMINAL_QUESTION_ID QUESTION_ID (COMTerminalType)
#define COM_FLOWCONTROL_QUESTION_ID QUESTION_ID (COMFlowControl)
#define STRING_DEPOSITORY_NUMBER 8
#define STRING_DEPOSITORY_NUMBER 8
#define NONE_BOOTNEXT_VALUE (0xFFFF + 1)
#define NONE_BOOTNEXT_VALUE (0xFFFF + 1)
///
/// Serial Ports attributes, first one is the value for
@@ -241,125 +241,122 @@ typedef enum _TYPE_OF_TERMINAL {
/// display the value properly
///
typedef struct {
UINTN Value;
UINT16 StringToken;
UINTN Value;
UINT16 StringToken;
} COM_ATTR;
typedef struct {
UINT64 BaudRate;
UINT8 DataBits;
UINT8 Parity;
UINT8 StopBits;
UINT64 BaudRate;
UINT8 DataBits;
UINT8 Parity;
UINT8 StopBits;
UINT8 BaudRateIndex;
UINT8 DataBitsIndex;
UINT8 ParityIndex;
UINT8 StopBitsIndex;
UINT8 BaudRateIndex;
UINT8 DataBitsIndex;
UINT8 ParityIndex;
UINT8 StopBitsIndex;
UINT8 FlowControl;
UINT8 FlowControl;
UINT8 IsConIn;
UINT8 IsConOut;
UINT8 IsStdErr;
UINT8 TerminalType;
UINT8 IsConIn;
UINT8 IsConOut;
UINT8 IsStdErr;
UINT8 TerminalType;
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
} BM_TERMINAL_CONTEXT;
typedef struct {
BOOLEAN IsBootNext;
BOOLEAN Deleted;
BOOLEAN IsBootNext;
BOOLEAN Deleted;
BOOLEAN IsLegacy;
BOOLEAN IsLegacy;
UINT32 Attributes;
UINT16 FilePathListLength;
UINT16 *Description;
EFI_DEVICE_PATH_PROTOCOL *FilePathList;
UINT8 *OptionalData;
UINT32 Attributes;
UINT16 FilePathListLength;
UINT16 *Description;
EFI_DEVICE_PATH_PROTOCOL *FilePathList;
UINT8 *OptionalData;
} BM_LOAD_CONTEXT;
typedef struct {
BOOLEAN IsActive;
BOOLEAN IsActive;
BOOLEAN IsTerminal;
BOOLEAN IsTerminal;
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
} BM_CONSOLE_CONTEXT;
typedef struct {
UINTN Column;
UINTN Row;
UINTN Column;
UINTN Row;
} CONSOLE_OUT_MODE;
typedef struct {
EFI_HANDLE Handle;
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
EFI_FILE_HANDLE FHandle;
UINT16 *FileName;
EFI_FILE_SYSTEM_VOLUME_LABEL *Info;
EFI_HANDLE Handle;
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
EFI_FILE_HANDLE FHandle;
UINT16 *FileName;
EFI_FILE_SYSTEM_VOLUME_LABEL *Info;
BOOLEAN IsRoot;
BOOLEAN IsDir;
BOOLEAN IsRemovableMedia;
BOOLEAN IsLoadFile;
BOOLEAN IsBootLegacy;
BOOLEAN IsRoot;
BOOLEAN IsDir;
BOOLEAN IsRemovableMedia;
BOOLEAN IsLoadFile;
BOOLEAN IsBootLegacy;
} BM_FILE_CONTEXT;
typedef struct {
EFI_HANDLE Handle;
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
EFI_HANDLE Handle;
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
} BM_HANDLE_CONTEXT;
typedef struct {
UINTN Signature;
LIST_ENTRY Head;
UINTN MenuNumber;
UINTN Signature;
LIST_ENTRY Head;
UINTN MenuNumber;
} BM_MENU_OPTION;
typedef struct {
UINTN Signature;
LIST_ENTRY Link;
UINTN OptionNumber;
UINT16 *DisplayString;
UINT16 *HelpString;
EFI_STRING_ID DisplayStringToken;
EFI_STRING_ID HelpStringToken;
UINTN ContextSelection;
VOID *VariableContext;
UINTN Signature;
LIST_ENTRY Link;
UINTN OptionNumber;
UINT16 *DisplayString;
UINT16 *HelpString;
EFI_STRING_ID DisplayStringToken;
EFI_STRING_ID HelpStringToken;
UINTN ContextSelection;
VOID *VariableContext;
} BM_MENU_ENTRY;
typedef struct {
UINTN Signature;
UINTN Signature;
EFI_HII_HANDLE BmmHiiHandle;
EFI_HANDLE BmmDriverHandle;
EFI_HII_HANDLE BmmHiiHandle;
EFI_HANDLE BmmDriverHandle;
///
/// Boot Maintenance Manager Produced protocols
///
EFI_HII_CONFIG_ACCESS_PROTOCOL BmmConfigAccess;
EFI_FORM_BROWSER2_PROTOCOL *FormBrowser2;
EFI_HII_CONFIG_ACCESS_PROTOCOL BmmConfigAccess;
EFI_FORM_BROWSER2_PROTOCOL *FormBrowser2;
BM_MENU_ENTRY *MenuEntry;
BM_HANDLE_CONTEXT *HandleContext;
BM_FILE_CONTEXT *FileContext;
BM_LOAD_CONTEXT *LoadContext;
BM_TERMINAL_CONTEXT *TerminalContext;
UINTN CurrentTerminal;
BBS_TYPE BbsType;
BM_MENU_ENTRY *MenuEntry;
BM_HANDLE_CONTEXT *HandleContext;
BM_FILE_CONTEXT *FileContext;
BM_LOAD_CONTEXT *LoadContext;
BM_TERMINAL_CONTEXT *TerminalContext;
UINTN CurrentTerminal;
BBS_TYPE BbsType;
//
// BMM main formset callback data.
//
EFI_FORM_ID BmmCurrentPageId;
EFI_FORM_ID BmmPreviousPageId;
BOOLEAN BmmAskSaveOrNot;
BMM_FAKE_NV_DATA BmmFakeNvData;
BMM_FAKE_NV_DATA BmmOldFakeNVData;
EFI_FORM_ID BmmCurrentPageId;
EFI_FORM_ID BmmPreviousPageId;
BOOLEAN BmmAskSaveOrNot;
BMM_FAKE_NV_DATA BmmFakeNvData;
BMM_FAKE_NV_DATA BmmOldFakeNVData;
} BMM_CALLBACK_DATA;
/**
@@ -390,7 +387,7 @@ BOpt_FindDrivers (
**/
EFI_STATUS
BOpt_GetBootOptions (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
);
/**
@@ -406,7 +403,7 @@ BOpt_GetBootOptions (
**/
EFI_STATUS
BOpt_GetDriverOptions (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
);
/**
@@ -417,7 +414,7 @@ BOpt_GetDriverOptions (
**/
VOID
BOpt_FreeMenu (
BM_MENU_OPTION *FreeMenu
BM_MENU_OPTION *FreeMenu
);
/**
@@ -431,7 +428,7 @@ BOpt_FreeMenu (
**/
UINT16
BOpt_GetOptionNumber (
CHAR16 *Type
CHAR16 *Type
);
/**
@@ -470,7 +467,7 @@ BOpt_GetDriverOptionNumber (
**/
BM_MENU_ENTRY *
BOpt_CreateMenuEntry (
UINTN MenuType
UINTN MenuType
);
/**
@@ -481,7 +478,7 @@ BOpt_CreateMenuEntry (
**/
VOID
BOpt_DestroyMenuEntry (
BM_MENU_ENTRY *MenuEntry
BM_MENU_ENTRY *MenuEntry
);
/**
@@ -498,8 +495,8 @@ BOpt_DestroyMenuEntry (
**/
BM_MENU_ENTRY *
BOpt_GetMenuEntry (
BM_MENU_OPTION *MenuOption,
UINTN MenuNumber
BM_MENU_OPTION *MenuOption,
UINTN MenuNumber
);
/**
@@ -510,7 +507,7 @@ BOpt_GetMenuEntry (
**/
VOID
GetBootOrder (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
);
/**
@@ -521,12 +518,13 @@ GetBootOrder (
**/
VOID
GetDriverOrder (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
);
//
// Locate all serial io devices for console
//
/**
Build a list containing all serial devices.
@@ -542,6 +540,7 @@ LocateSerialIo (
//
// Initializing Console menu
//
/**
Build up ConsoleOutMenu, ConsoleInpMenu and ConsoleErrMenu
@@ -549,13 +548,14 @@ LocateSerialIo (
**/
EFI_STATUS
GetAllConsoles(
GetAllConsoles (
VOID
);
//
// Get current mode information
//
/**
Get mode number according to column and row
@@ -563,12 +563,13 @@ GetAllConsoles(
**/
VOID
GetConsoleOutMode (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
);
//
// Cleaning up console menu
//
/**
Free ConsoleOutMenu, ConsoleInpMenu and ConsoleErrMenu
@@ -607,12 +608,13 @@ ChangeVariableDevicePath (
EFI_STATUS
ChangeTerminalDevicePath (
IN OUT EFI_DEVICE_PATH_PROTOCOL *DevicePath,
IN BOOLEAN ChangeTerminal
IN BOOLEAN ChangeTerminal
);
//
// Variable operation by menu selection
//
/**
This function create a currently loaded Boot Option from
the BMM. It then appends this Boot Option to the end of
@@ -627,7 +629,7 @@ ChangeTerminalDevicePath (
**/
EFI_STATUS
Var_UpdateBootOption (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
);
/**
@@ -661,11 +663,11 @@ Var_DelBootOption (
**/
EFI_STATUS
Var_UpdateDriverOption (
IN BMM_CALLBACK_DATA *CallbackData,
IN EFI_HII_HANDLE HiiHandle,
IN UINT16 *DescriptionData,
IN UINT16 *OptionalData,
IN UINT8 ForceReconnect
IN BMM_CALLBACK_DATA *CallbackData,
IN EFI_HII_HANDLE HiiHandle,
IN UINT16 *DescriptionData,
IN UINT16 *OptionalData,
IN UINT8 ForceReconnect
);
/**
@@ -725,7 +727,7 @@ Var_UpdateErrorOutOption (
**/
EFI_STATUS
Var_UpdateOutOfBandOption (
IN UINT16 MenuIndex
IN UINT16 MenuIndex
);
/**
@@ -741,7 +743,7 @@ Var_UpdateOutOfBandOption (
**/
EFI_STATUS
Var_UpdateBootNext (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
);
/**
@@ -757,7 +759,7 @@ Var_UpdateBootNext (
**/
EFI_STATUS
Var_UpdateBootOrder (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
);
/**
@@ -774,7 +776,7 @@ Var_UpdateBootOrder (
**/
EFI_STATUS
Var_UpdateDriverOrder (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
);
/**
@@ -788,12 +790,13 @@ Var_UpdateDriverOrder (
**/
EFI_STATUS
Var_UpdateConMode (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
);
//
// Following are page create and refresh functions
//
/**
Create the global UpdateData structure.
@@ -823,8 +826,8 @@ RefreshUpdateData (
**/
VOID
CleanUpPage (
IN UINT16 LabelId,
IN BMM_CALLBACK_DATA *CallbackData
IN UINT16 LabelId,
IN BMM_CALLBACK_DATA *CallbackData
);
/**
@@ -836,7 +839,7 @@ CleanUpPage (
**/
VOID
UpdateBootDelPage (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
);
/**
@@ -846,7 +849,7 @@ UpdateBootDelPage (
**/
VOID
UpdateDrvAddHandlePage (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
);
/**
@@ -857,7 +860,7 @@ UpdateDrvAddHandlePage (
**/
VOID
UpdateDrvDelPage (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
);
/**
@@ -867,7 +870,7 @@ UpdateDrvDelPage (
**/
VOID
UpdateDriverAddHandleDescPage (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
);
/**
@@ -878,8 +881,8 @@ UpdateDriverAddHandleDescPage (
**/
VOID
UpdatePageBody (
IN UINT16 UpdatePageId,
IN BMM_CALLBACK_DATA *CallbackData
IN UINT16 UpdatePageId,
IN BMM_CALLBACK_DATA *CallbackData
);
/**
@@ -890,7 +893,7 @@ UpdatePageBody (
**/
VOID
UpdateTerminalPage (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
);
/**
@@ -900,7 +903,7 @@ UpdateTerminalPage (
**/
VOID
UpdateConModePage (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
);
/**
@@ -911,7 +914,7 @@ UpdateConModePage (
**/
VOID
UpdateConCOMPage (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
);
/**
@@ -923,10 +926,10 @@ UpdateConCOMPage (
**/
VOID
UpdateOptionPage(
IN BMM_CALLBACK_DATA *CallbackData,
IN EFI_FORM_ID FormId,
IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
UpdateOptionPage (
IN BMM_CALLBACK_DATA *CallbackData,
IN EFI_FORM_ID FormId,
IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
);
/**
@@ -946,8 +949,8 @@ UpdateOptionPage(
**/
EFI_STATUS
EfiLibDeleteVariable (
IN CHAR16 *VarName,
IN EFI_GUID *VarGuid
IN CHAR16 *VarName,
IN EFI_GUID *VarGuid
);
/**
@@ -963,7 +966,7 @@ EfiLibDeleteVariable (
**/
UINTN
EfiDevicePathInstanceCount (
IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
);
/**
@@ -979,7 +982,7 @@ EfiDevicePathInstanceCount (
**/
UINT16 *
EfiLibStrFromDatahub (
IN EFI_DEVICE_PATH_PROTOCOL *DevPath
IN EFI_DEVICE_PATH_PROTOCOL *DevPath
);
/**
@@ -994,9 +997,9 @@ EfiLibStrFromDatahub (
**/
VOID *
GetLegacyBootOptionVar (
IN UINTN DeviceType,
OUT UINTN *OptionIndex,
OUT UINTN *OptionSize
IN UINTN DeviceType,
OUT UINTN *OptionIndex,
OUT UINTN *OptionSize
);
/**
@@ -1009,11 +1012,10 @@ GetLegacyBootOptionVar (
**/
VOID
DiscardChangeHandler (
IN BMM_CALLBACK_DATA *Private,
IN BMM_FAKE_NV_DATA *CurrentFakeNVMap
IN BMM_CALLBACK_DATA *Private,
IN BMM_FAKE_NV_DATA *CurrentFakeNVMap
);
/**
This function is to clean some useless data before submit changes.
@@ -1022,7 +1024,7 @@ DiscardChangeHandler (
**/
VOID
CleanUselessBeforeSubmit (
IN BMM_CALLBACK_DATA *Private
IN BMM_CALLBACK_DATA *Private
);
/**
@@ -1034,8 +1036,8 @@ CleanUselessBeforeSubmit (
**/
VOID
UpdatePageId (
BMM_CALLBACK_DATA *Private,
UINT16 NewPageId
BMM_CALLBACK_DATA *Private,
UINT16 NewPageId
);
/**
@@ -1043,7 +1045,7 @@ UpdatePageId (
**/
VOID
FreeBMPackage(
FreeBMPackage (
VOID
);
@@ -1052,7 +1054,7 @@ FreeBMPackage(
**/
VOID
InitBootMaintenance(
InitBootMaintenance (
VOID
);
@@ -1066,7 +1068,7 @@ InitBootMaintenance(
**/
VOID
GetConsoleInCheck (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
);
/**
@@ -1079,7 +1081,7 @@ GetConsoleInCheck (
**/
VOID
GetConsoleOutCheck (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
);
/**
@@ -1092,7 +1094,7 @@ GetConsoleOutCheck (
**/
VOID
GetConsoleErrCheck (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
);
/**
@@ -1105,7 +1107,7 @@ GetConsoleErrCheck (
**/
VOID
GetTerminalAttribute (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
);
/**
@@ -1123,7 +1125,6 @@ BmmSetConsoleMode (
BOOLEAN IsSetupMode
);
/**
This function converts an input device structure to a Unicode string.
@@ -1134,7 +1135,7 @@ BmmSetConsoleMode (
**/
CHAR16 *
UiDevicePathToStr (
IN EFI_DEVICE_PATH_PROTOCOL *DevPath
IN EFI_DEVICE_PATH_PROTOCOL *DevPath
);
/**
@@ -1148,7 +1149,7 @@ UiDevicePathToStr (
**/
CHAR16 *
ExtractFileNameFromDevicePath (
IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
);
/**
@@ -1175,10 +1176,10 @@ ExtractFileNameFromDevicePath (
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
IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
IN CONST EFI_STRING Request,
OUT EFI_STRING *Progress,
OUT EFI_STRING *Results
);
/**
@@ -1217,9 +1218,9 @@ BootMaintExtractConfig (
EFI_STATUS
EFIAPI
BootMaintRouteConfig (
IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
IN CONST EFI_STRING Configuration,
OUT EFI_STRING *Progress
IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
IN CONST EFI_STRING Configuration,
OUT EFI_STRING *Progress
);
/**
@@ -1243,12 +1244,12 @@ BootMaintRouteConfig (
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
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
);
/**
@@ -1263,7 +1264,7 @@ BootMaintCallback (
BOOLEAN
EFIAPI
CreateBootOptionFromFile (
IN EFI_DEVICE_PATH_PROTOCOL *FilePath
IN EFI_DEVICE_PATH_PROTOCOL *FilePath
);
/**
@@ -1277,7 +1278,7 @@ CreateBootOptionFromFile (
BOOLEAN
EFIAPI
CreateDriverOptionFromFile (
IN EFI_DEVICE_PATH_PROTOCOL *FilePath
IN EFI_DEVICE_PATH_PROTOCOL *FilePath
);
/**
@@ -1292,37 +1293,37 @@ CreateDriverOptionFromFile (
BOOLEAN
EFIAPI
BootFromFile (
IN EFI_DEVICE_PATH_PROTOCOL *FilePath
IN EFI_DEVICE_PATH_PROTOCOL *FilePath
);
//
// Global variable in this program (defined in data.c)
//
extern BM_MENU_OPTION BootOptionMenu;
extern BM_MENU_OPTION DriverOptionMenu;
extern BM_MENU_OPTION ConsoleInpMenu;
extern BM_MENU_OPTION ConsoleOutMenu;
extern BM_MENU_OPTION ConsoleErrMenu;
extern BM_MENU_OPTION DriverMenu;
extern BM_MENU_OPTION TerminalMenu;
extern UINT16 TerminalType[9];
extern COM_ATTR BaudRateList[19];
extern COM_ATTR DataBitsList[4];
extern COM_ATTR ParityList[5];
extern COM_ATTR StopBitsList[3];
extern EFI_GUID TerminalTypeGuid[9];
extern EFI_DEVICE_PATH_PROTOCOL EndDevicePath[];
extern UINT16 mFlowControlType[2];
extern UINT32 mFlowControlValue[2];
extern BM_MENU_OPTION BootOptionMenu;
extern BM_MENU_OPTION DriverOptionMenu;
extern BM_MENU_OPTION ConsoleInpMenu;
extern BM_MENU_OPTION ConsoleOutMenu;
extern BM_MENU_OPTION ConsoleErrMenu;
extern BM_MENU_OPTION DriverMenu;
extern BM_MENU_OPTION TerminalMenu;
extern UINT16 TerminalType[9];
extern COM_ATTR BaudRateList[19];
extern COM_ATTR DataBitsList[4];
extern COM_ATTR ParityList[5];
extern COM_ATTR StopBitsList[3];
extern EFI_GUID TerminalTypeGuid[9];
extern EFI_DEVICE_PATH_PROTOCOL EndDevicePath[];
extern UINT16 mFlowControlType[2];
extern UINT32 mFlowControlValue[2];
//
// Shared IFR form update data
//
extern VOID *mStartOpCodeHandle;
extern VOID *mEndOpCodeHandle;
extern EFI_IFR_GUID_LABEL *mStartLabel;
extern EFI_IFR_GUID_LABEL *mEndLabel;
extern BMM_CALLBACK_DATA gBootMaintenancePrivate;
extern BMM_CALLBACK_DATA *mBmmCallbackInfo;
extern VOID *mStartOpCodeHandle;
extern VOID *mEndOpCodeHandle;
extern EFI_IFR_GUID_LABEL *mStartLabel;
extern EFI_IFR_GUID_LABEL *mEndLabel;
extern BMM_CALLBACK_DATA gBootMaintenancePrivate;
extern BMM_CALLBACK_DATA *mBmmCallbackInfo;
#endif

View File

@@ -27,19 +27,19 @@ UiCustomizeBMMPage (
//
// Create "Boot Option" menu.
//
BmmCreateBootOptionMenu(HiiHandle, StartOpCodeHandle);
BmmCreateBootOptionMenu (HiiHandle, StartOpCodeHandle);
//
// Create "Driver Option" menu.
//
BmmCreateDriverOptionMenu(HiiHandle, StartOpCodeHandle);
BmmCreateDriverOptionMenu (HiiHandle, StartOpCodeHandle);
//
// Create "Com Option" menu.
//
BmmCreateComOptionMenu(HiiHandle, StartOpCodeHandle);
BmmCreateComOptionMenu (HiiHandle, StartOpCodeHandle);
//
// Create "Boot From File" menu.
//
BmmCreateBootFromFileMenu(HiiHandle, StartOpCodeHandle);
BmmCreateBootFromFileMenu (HiiHandle, StartOpCodeHandle);
//
// Find third party drivers which need to be shown in the Bmm page.
@@ -81,12 +81,12 @@ UiCustomizeBMMPage (
**/
EFI_STATUS
UiBMMCallbackHandler (
IN EFI_HII_HANDLE HiiHandle,
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
IN EFI_HII_HANDLE HiiHandle,
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
)
{
return EFI_UNSUPPORTED;

View File

@@ -9,7 +9,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#ifndef __CUSTOMIZED_UI_H__
#define __CUSTOMIZED_UI_H__
/**
Customize menus in the page.
@@ -43,12 +42,12 @@ UiCustomizeBMMPage (
**/
EFI_STATUS
UiBMMCallbackHandler (
IN EFI_HII_HANDLE HiiHandle,
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
IN EFI_HII_HANDLE HiiHandle,
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
);
#endif

View File

@@ -6,22 +6,20 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#include "BootMaintenanceManager.h"
#include "BootMaintenanceManagerCustomizedUiSupport.h"
#define UI_HII_DRIVER_LIST_SIZE 0x8
#define UI_HII_DRIVER_LIST_SIZE 0x8
typedef struct {
EFI_STRING_ID PromptId;
EFI_STRING_ID HelpId;
EFI_STRING_ID DevicePathId;
EFI_GUID FormSetGuid;
BOOLEAN EmptyLineAfter;
EFI_STRING_ID PromptId;
EFI_STRING_ID HelpId;
EFI_STRING_ID DevicePathId;
EFI_GUID FormSetGuid;
BOOLEAN EmptyLineAfter;
} UI_HII_DRIVER_INSTANCE;
STATIC UI_HII_DRIVER_INSTANCE *gHiiDriverList;
STATIC UI_HII_DRIVER_INSTANCE *gHiiDriverList;
/**
Create the dynamic item to allow user to set the "BootNext" vaule.
@@ -31,16 +29,16 @@ STATIC UI_HII_DRIVER_INSTANCE *gHiiDriverList;
**/
VOID
BmmCreateBootNextMenu(
IN EFI_HII_HANDLE HiiHandle,
IN VOID *StartOpCodeHandle
BmmCreateBootNextMenu (
IN EFI_HII_HANDLE HiiHandle,
IN VOID *StartOpCodeHandle
)
{
BM_MENU_ENTRY *NewMenuEntry;
BM_LOAD_CONTEXT *NewLoadContext;
UINT16 Index;
VOID *OptionsOpCodeHandle;
UINT32 BootNextIndex;
BM_MENU_ENTRY *NewMenuEntry;
BM_LOAD_CONTEXT *NewLoadContext;
UINT16 Index;
VOID *OptionsOpCodeHandle;
UINT32 BootNextIndex;
if (BootOptionMenu.MenuNumber == 0) {
return;
@@ -52,8 +50,8 @@ BmmCreateBootNextMenu(
ASSERT (OptionsOpCodeHandle != NULL);
for (Index = 0; Index < BootOptionMenu.MenuNumber; Index++) {
NewMenuEntry = BOpt_GetMenuEntry (&BootOptionMenu, Index);
NewLoadContext = (BM_LOAD_CONTEXT *) NewMenuEntry->VariableContext;
NewMenuEntry = BOpt_GetMenuEntry (&BootOptionMenu, Index);
NewLoadContext = (BM_LOAD_CONTEXT *)NewMenuEntry->VariableContext;
if (NewLoadContext->IsBootNext) {
HiiCreateOneOfOptionOpCode (
@@ -95,7 +93,7 @@ BmmCreateBootNextMenu(
HiiCreateOneOfOpCode (
StartOpCodeHandle,
(EFI_QUESTION_ID) BOOT_NEXT_QUESTION_ID,
(EFI_QUESTION_ID)BOOT_NEXT_QUESTION_ID,
VARSTORE_ID_BOOT_MAINT,
BOOT_NEXT_VAR_OFFSET,
STRING_TOKEN (STR_BOOT_NEXT),
@@ -107,7 +105,6 @@ BmmCreateBootNextMenu(
);
HiiFreeOpCodeHandle (OptionsOpCodeHandle);
}
/**
@@ -119,17 +116,17 @@ BmmCreateBootNextMenu(
**/
VOID
BmmCreateTimeOutMenu (
IN EFI_HII_HANDLE HiiHandle,
IN VOID *StartOpCodeHandle
IN EFI_HII_HANDLE HiiHandle,
IN VOID *StartOpCodeHandle
)
{
HiiCreateNumericOpCode (
StartOpCodeHandle,
(EFI_QUESTION_ID) FORM_TIME_OUT_ID,
(EFI_QUESTION_ID)FORM_TIME_OUT_ID,
VARSTORE_ID_BOOT_MAINT,
BOOT_TIME_OUT_VAR_OFFSET,
STRING_TOKEN(STR_NUM_AUTO_BOOT),
STRING_TOKEN(STR_HLP_AUTO_BOOT),
STRING_TOKEN (STR_NUM_AUTO_BOOT),
STRING_TOKEN (STR_HLP_AUTO_BOOT),
EFI_IFR_FLAG_CALLBACK,
EFI_IFR_NUMERIC_SIZE_2 | EFI_IFR_DISPLAY_UINT_DEC,
0,
@@ -148,8 +145,8 @@ BmmCreateTimeOutMenu (
**/
VOID
BmmCreateBootOptionMenu (
IN EFI_HII_HANDLE HiiHandle,
IN VOID *StartOpCodeHandle
IN EFI_HII_HANDLE HiiHandle,
IN VOID *StartOpCodeHandle
)
{
HiiCreateGotoOpCode (
@@ -171,8 +168,8 @@ BmmCreateBootOptionMenu (
**/
VOID
BmmCreateDriverOptionMenu (
IN EFI_HII_HANDLE HiiHandle,
IN VOID *StartOpCodeHandle
IN EFI_HII_HANDLE HiiHandle,
IN VOID *StartOpCodeHandle
)
{
HiiCreateGotoOpCode (
@@ -194,8 +191,8 @@ BmmCreateDriverOptionMenu (
**/
VOID
BmmCreateComOptionMenu (
IN EFI_HII_HANDLE HiiHandle,
IN VOID *StartOpCodeHandle
IN EFI_HII_HANDLE HiiHandle,
IN VOID *StartOpCodeHandle
)
{
HiiCreateGotoOpCode (
@@ -217,8 +214,8 @@ BmmCreateComOptionMenu (
**/
VOID
BmmCreateBootFromFileMenu (
IN EFI_HII_HANDLE HiiHandle,
IN VOID *StartOpCodeHandle
IN EFI_HII_HANDLE HiiHandle,
IN VOID *StartOpCodeHandle
)
{
HiiCreateGotoOpCode (
@@ -240,8 +237,8 @@ BmmCreateBootFromFileMenu (
**/
VOID
BmmCreateEmptyLine (
IN EFI_HII_HANDLE HiiHandle,
IN VOID *StartOpCodeHandle
IN EFI_HII_HANDLE HiiHandle,
IN VOID *StartOpCodeHandle
)
{
HiiCreateSubTitleOpCode (StartOpCodeHandle, STRING_TOKEN (STR_NULL_STRING), 0, 0, 0);
@@ -258,11 +255,11 @@ BmmCreateEmptyLine (
**/
CHAR16 *
ExtractDevicePathFromHandle (
IN EFI_HII_HANDLE Handle
IN EFI_HII_HANDLE Handle
)
{
EFI_STATUS Status;
EFI_HANDLE DriverHandle;
EFI_STATUS Status;
EFI_HANDLE DriverHandle;
ASSERT (Handle != NULL);
@@ -275,7 +272,7 @@ ExtractDevicePathFromHandle (
return NULL;
}
return ConvertDevicePathToText(DevicePathFromHandle (DriverHandle), FALSE, FALSE);
return ConvertDevicePathToText (DevicePathFromHandle (DriverHandle), FALSE, FALSE);
}
/**
@@ -292,49 +289,49 @@ ExtractDevicePathFromHandle (
**/
BOOLEAN
IsRequiredDriver (
IN EFI_HII_HANDLE HiiHandle,
IN EFI_GUID *Guid,
OUT EFI_STRING_ID *PromptId,
OUT EFI_STRING_ID *HelpId,
OUT VOID *FormsetGuid
IN EFI_HII_HANDLE HiiHandle,
IN EFI_GUID *Guid,
OUT EFI_STRING_ID *PromptId,
OUT EFI_STRING_ID *HelpId,
OUT VOID *FormsetGuid
)
{
EFI_STATUS Status;
UINT8 ClassGuidNum;
EFI_GUID *ClassGuid;
EFI_IFR_FORM_SET *Buffer;
UINTN BufferSize;
UINT8 *Ptr;
UINTN TempSize;
BOOLEAN RetVal;
EFI_STATUS Status;
UINT8 ClassGuidNum;
EFI_GUID *ClassGuid;
EFI_IFR_FORM_SET *Buffer;
UINTN BufferSize;
UINT8 *Ptr;
UINTN TempSize;
BOOLEAN RetVal;
Status = HiiGetFormSetFromHiiHandle(HiiHandle, &Buffer,&BufferSize);
Status = HiiGetFormSetFromHiiHandle (HiiHandle, &Buffer, &BufferSize);
if (EFI_ERROR (Status)) {
return FALSE;
}
RetVal = FALSE;
RetVal = FALSE;
TempSize = 0;
Ptr = (UINT8 *) Buffer;
while(TempSize < BufferSize) {
TempSize += ((EFI_IFR_OP_HEADER *) Ptr)->Length;
Ptr = (UINT8 *)Buffer;
while (TempSize < BufferSize) {
TempSize += ((EFI_IFR_OP_HEADER *)Ptr)->Length;
if (((EFI_IFR_OP_HEADER *) Ptr)->Length <= OFFSET_OF (EFI_IFR_FORM_SET, Flags)){
Ptr += ((EFI_IFR_OP_HEADER *) Ptr)->Length;
if (((EFI_IFR_OP_HEADER *)Ptr)->Length <= OFFSET_OF (EFI_IFR_FORM_SET, Flags)) {
Ptr += ((EFI_IFR_OP_HEADER *)Ptr)->Length;
continue;
}
ClassGuidNum = (UINT8) (((EFI_IFR_FORM_SET *)Ptr)->Flags & 0x3);
ClassGuid = (EFI_GUID *) (VOID *)(Ptr + sizeof (EFI_IFR_FORM_SET));
ClassGuidNum = (UINT8)(((EFI_IFR_FORM_SET *)Ptr)->Flags & 0x3);
ClassGuid = (EFI_GUID *)(VOID *)(Ptr + sizeof (EFI_IFR_FORM_SET));
while (ClassGuidNum-- > 0) {
if (!CompareGuid (Guid, ClassGuid)){
ClassGuid ++;
if (!CompareGuid (Guid, ClassGuid)) {
ClassGuid++;
continue;
}
*PromptId = ((EFI_IFR_FORM_SET *)Ptr)->FormSetTitle;
*HelpId = ((EFI_IFR_FORM_SET *)Ptr)->Help;
CopyMem (FormsetGuid, &((EFI_IFR_FORM_SET *) Ptr)->Guid, sizeof (EFI_GUID));
*HelpId = ((EFI_IFR_FORM_SET *)Ptr)->Help;
CopyMem (FormsetGuid, &((EFI_IFR_FORM_SET *)Ptr)->Guid, sizeof (EFI_GUID));
RetVal = TRUE;
}
}
@@ -358,23 +355,23 @@ IsRequiredDriver (
**/
EFI_STATUS
BmmListThirdPartyDrivers (
IN EFI_HII_HANDLE HiiHandle,
IN EFI_GUID *ClassGuid,
IN DRIVER_SPECIAL_HANDLER SpecialHandlerFn,
IN VOID *StartOpCodeHandle
IN EFI_HII_HANDLE HiiHandle,
IN EFI_GUID *ClassGuid,
IN DRIVER_SPECIAL_HANDLER SpecialHandlerFn,
IN VOID *StartOpCodeHandle
)
{
UINTN Index;
EFI_STRING String;
EFI_STRING_ID Token;
EFI_STRING_ID TokenHelp;
EFI_HII_HANDLE *HiiHandles;
CHAR16 *DevicePathStr;
UINTN Count;
UINTN CurrentSize;
UI_HII_DRIVER_INSTANCE *DriverListPtr;
EFI_STRING NewName;
BOOLEAN EmptyLineAfter;
UINTN Index;
EFI_STRING String;
EFI_STRING_ID Token;
EFI_STRING_ID TokenHelp;
EFI_HII_HANDLE *HiiHandles;
CHAR16 *DevicePathStr;
UINTN Count;
UINTN CurrentSize;
UI_HII_DRIVER_INSTANCE *DriverListPtr;
EFI_STRING NewName;
BOOLEAN EmptyLineAfter;
if (gHiiDriverList != NULL) {
FreePool (gHiiDriverList);
@@ -386,7 +383,7 @@ BmmListThirdPartyDrivers (
gHiiDriverList = AllocateZeroPool (UI_HII_DRIVER_LIST_SIZE * sizeof (UI_HII_DRIVER_INSTANCE));
ASSERT (gHiiDriverList != NULL);
DriverListPtr = gHiiDriverList;
CurrentSize = UI_HII_DRIVER_LIST_SIZE;
CurrentSize = UI_HII_DRIVER_LIST_SIZE;
for (Index = 0, Count = 0; HiiHandles[Index] != NULL; Index++) {
if (!IsRequiredDriver (HiiHandles[Index], ClassGuid, &Token, &TokenHelp, &gHiiDriverList[Count].FormSetGuid)) {
@@ -404,10 +401,11 @@ BmmListThirdPartyDrivers (
EmptyLineAfter = FALSE;
if (SpecialHandlerFn (String, &NewName, &EmptyLineAfter)) {
FreePool (String);
String = NewName;
String = NewName;
DriverListPtr[Count].EmptyLineAfter = EmptyLineAfter;
}
}
DriverListPtr[Count].PromptId = HiiSetString (HiiHandle, 0, String, NULL);
FreePool (String);
@@ -416,11 +414,12 @@ BmmListThirdPartyDrivers (
String = HiiGetString (HiiHandle, STRING_TOKEN (STR_MISSING_STRING), NULL);
ASSERT (String != NULL);
}
DriverListPtr[Count].HelpId = HiiSetString (HiiHandle, 0, String, NULL);
FreePool (String);
DevicePathStr = ExtractDevicePathFromHandle(HiiHandles[Index]);
if (DevicePathStr != NULL){
DevicePathStr = ExtractDevicePathFromHandle (HiiHandles[Index]);
if (DevicePathStr != NULL) {
DriverListPtr[Count].DevicePathId = HiiSetString (HiiHandle, 0, DevicePathStr, NULL);
FreePool (DevicePathStr);
} else {
@@ -437,7 +436,7 @@ BmmListThirdPartyDrivers (
);
ASSERT (DriverListPtr != NULL);
gHiiDriverList = DriverListPtr;
CurrentSize += UI_HII_DRIVER_LIST_SIZE;
CurrentSize += UI_HII_DRIVER_LIST_SIZE;
}
}
@@ -455,15 +454,14 @@ BmmListThirdPartyDrivers (
0,
&gHiiDriverList[Index].FormSetGuid,
gHiiDriverList[Index].DevicePathId
);
);
if (gHiiDriverList[Index].EmptyLineAfter) {
BmmCreateEmptyLine (HiiHandle, StartOpCodeHandle);
}
Index ++;
Index++;
}
return EFI_SUCCESS;
}

View File

@@ -18,8 +18,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
VOID
BmmCreateTimeOutMenu (
IN EFI_HII_HANDLE HiiHandle,
IN VOID *StartOpCodeHandle
IN EFI_HII_HANDLE HiiHandle,
IN VOID *StartOpCodeHandle
);
/**
@@ -30,9 +30,9 @@ BmmCreateTimeOutMenu (
**/
VOID
BmmCreateBootNextMenu(
IN EFI_HII_HANDLE HiiHandle,
IN VOID *StartOpCodeHandle
BmmCreateBootNextMenu (
IN EFI_HII_HANDLE HiiHandle,
IN VOID *StartOpCodeHandle
);
/**
@@ -44,8 +44,8 @@ BmmCreateBootNextMenu(
**/
VOID
BmmCreateBootOptionMenu (
IN EFI_HII_HANDLE HiiHandle,
IN VOID *StartOpCodeHandle
IN EFI_HII_HANDLE HiiHandle,
IN VOID *StartOpCodeHandle
);
/**
@@ -57,8 +57,8 @@ BmmCreateBootOptionMenu (
**/
VOID
BmmCreateDriverOptionMenu (
IN EFI_HII_HANDLE HiiHandle,
IN VOID *StartOpCodeHandle
IN EFI_HII_HANDLE HiiHandle,
IN VOID *StartOpCodeHandle
);
/**
@@ -70,8 +70,8 @@ BmmCreateDriverOptionMenu (
**/
VOID
BmmCreateComOptionMenu (
IN EFI_HII_HANDLE HiiHandle,
IN VOID *StartOpCodeHandle
IN EFI_HII_HANDLE HiiHandle,
IN VOID *StartOpCodeHandle
);
/**
@@ -83,8 +83,8 @@ BmmCreateComOptionMenu (
**/
VOID
BmmCreateBootFromFileMenu (
IN EFI_HII_HANDLE HiiHandle,
IN VOID *StartOpCodeHandle
IN EFI_HII_HANDLE HiiHandle,
IN VOID *StartOpCodeHandle
);
/**
@@ -96,8 +96,8 @@ BmmCreateBootFromFileMenu (
**/
VOID
BmmCreateEmptyLine (
IN EFI_HII_HANDLE HiiHandle,
IN VOID *StartOpCodeHandle
IN EFI_HII_HANDLE HiiHandle,
IN VOID *StartOpCodeHandle
);
/**
@@ -116,7 +116,7 @@ EFI_STATUS
IN CHAR16 *DriverName,
OUT CHAR16 **NewName,
OUT BOOLEAN *EmptyLineAfter
);
);
/**
Search the drivers in the system which need to show in the front page
@@ -132,10 +132,10 @@ EFI_STATUS
**/
EFI_STATUS
BmmListThirdPartyDrivers (
IN EFI_HII_HANDLE HiiHandle,
IN EFI_GUID *ClassGuid,
IN DRIVER_SPECIAL_HANDLER SpecialHandlerFn,
IN VOID *StartOpCodeHandle
IN EFI_HII_HANDLE HiiHandle,
IN EFI_GUID *ClassGuid,
IN DRIVER_SPECIAL_HANDLER SpecialHandlerFn,
IN VOID *StartOpCodeHandle
);
#endif

View File

@@ -15,7 +15,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
///
/// Define the maximum characters that will be accepted.
///
#define MAX_CHAR 480
#define MAX_CHAR 480
/**
@@ -27,21 +27,21 @@ BmmSetupResetReminder (
VOID
)
{
EFI_INPUT_KEY Key;
CHAR16 *StringBuffer1;
CHAR16 *StringBuffer2;
EFI_STATUS Status;
EDKII_FORM_BROWSER_EXTENSION2_PROTOCOL *FormBrowserEx2;
EFI_INPUT_KEY Key;
CHAR16 *StringBuffer1;
CHAR16 *StringBuffer2;
EFI_STATUS Status;
EDKII_FORM_BROWSER_EXTENSION2_PROTOCOL *FormBrowserEx2;
//
// Use BrowserEx2 protocol to check whether reset is required.
//
Status = gBS->LocateProtocol (&gEdkiiFormBrowserEx2ProtocolGuid, NULL, (VOID **) &FormBrowserEx2);
Status = gBS->LocateProtocol (&gEdkiiFormBrowserEx2ProtocolGuid, NULL, (VOID **)&FormBrowserEx2);
//
//check any reset required change is applied? if yes, reset system
// check any reset required change is applied? if yes, reset system
//
if (!EFI_ERROR(Status) && FormBrowserEx2->IsResetRequired()) {
if (!EFI_ERROR (Status) && FormBrowserEx2->IsResetRequired ()) {
StringBuffer1 = AllocateZeroPool (MAX_CHAR * sizeof (CHAR16));
ASSERT (StringBuffer1 != NULL);
StringBuffer2 = AllocateZeroPool (MAX_CHAR * sizeof (CHAR16));
@@ -73,39 +73,39 @@ BmmSetupResetReminder (
**/
BM_MENU_ENTRY *
BOpt_CreateMenuEntry (
UINTN MenuType
UINTN MenuType
)
{
BM_MENU_ENTRY *MenuEntry;
UINTN ContextSize;
BM_MENU_ENTRY *MenuEntry;
UINTN ContextSize;
//
// Get context size according to menu type
//
switch (MenuType) {
case BM_LOAD_CONTEXT_SELECT:
ContextSize = sizeof (BM_LOAD_CONTEXT);
break;
case BM_LOAD_CONTEXT_SELECT:
ContextSize = sizeof (BM_LOAD_CONTEXT);
break;
case BM_FILE_CONTEXT_SELECT:
ContextSize = sizeof (BM_FILE_CONTEXT);
break;
case BM_FILE_CONTEXT_SELECT:
ContextSize = sizeof (BM_FILE_CONTEXT);
break;
case BM_CONSOLE_CONTEXT_SELECT:
ContextSize = sizeof (BM_CONSOLE_CONTEXT);
break;
case BM_CONSOLE_CONTEXT_SELECT:
ContextSize = sizeof (BM_CONSOLE_CONTEXT);
break;
case BM_TERMINAL_CONTEXT_SELECT:
ContextSize = sizeof (BM_TERMINAL_CONTEXT);
break;
case BM_TERMINAL_CONTEXT_SELECT:
ContextSize = sizeof (BM_TERMINAL_CONTEXT);
break;
case BM_HANDLE_CONTEXT_SELECT:
ContextSize = sizeof (BM_HANDLE_CONTEXT);
break;
case BM_HANDLE_CONTEXT_SELECT:
ContextSize = sizeof (BM_HANDLE_CONTEXT);
break;
default:
ContextSize = 0;
break;
default:
ContextSize = 0;
break;
}
if (ContextSize == 0) {
@@ -139,67 +139,70 @@ BOpt_CreateMenuEntry (
**/
VOID
BOpt_DestroyMenuEntry (
BM_MENU_ENTRY *MenuEntry
BM_MENU_ENTRY *MenuEntry
)
{
BM_LOAD_CONTEXT *LoadContext;
BM_FILE_CONTEXT *FileContext;
BM_CONSOLE_CONTEXT *ConsoleContext;
BM_TERMINAL_CONTEXT *TerminalContext;
BM_HANDLE_CONTEXT *HandleContext;
BM_LOAD_CONTEXT *LoadContext;
BM_FILE_CONTEXT *FileContext;
BM_CONSOLE_CONTEXT *ConsoleContext;
BM_TERMINAL_CONTEXT *TerminalContext;
BM_HANDLE_CONTEXT *HandleContext;
//
// Select by the type in Menu entry for current context type
//
switch (MenuEntry->ContextSelection) {
case BM_LOAD_CONTEXT_SELECT:
LoadContext = (BM_LOAD_CONTEXT *) MenuEntry->VariableContext;
FreePool (LoadContext->FilePathList);
if (LoadContext->OptionalData != NULL) {
FreePool (LoadContext->OptionalData);
}
FreePool (LoadContext);
break;
case BM_FILE_CONTEXT_SELECT:
FileContext = (BM_FILE_CONTEXT *) MenuEntry->VariableContext;
if (!FileContext->IsRoot) {
FreePool (FileContext->DevicePath);
} else {
if (FileContext->FHandle != NULL) {
FileContext->FHandle->Close (FileContext->FHandle);
case BM_LOAD_CONTEXT_SELECT:
LoadContext = (BM_LOAD_CONTEXT *)MenuEntry->VariableContext;
FreePool (LoadContext->FilePathList);
if (LoadContext->OptionalData != NULL) {
FreePool (LoadContext->OptionalData);
}
}
if (FileContext->FileName != NULL) {
FreePool (FileContext->FileName);
}
if (FileContext->Info != NULL) {
FreePool (FileContext->Info);
}
FreePool (FileContext);
break;
FreePool (LoadContext);
break;
case BM_CONSOLE_CONTEXT_SELECT:
ConsoleContext = (BM_CONSOLE_CONTEXT *) MenuEntry->VariableContext;
FreePool (ConsoleContext->DevicePath);
FreePool (ConsoleContext);
break;
case BM_FILE_CONTEXT_SELECT:
FileContext = (BM_FILE_CONTEXT *)MenuEntry->VariableContext;
case BM_TERMINAL_CONTEXT_SELECT:
TerminalContext = (BM_TERMINAL_CONTEXT *) MenuEntry->VariableContext;
FreePool (TerminalContext->DevicePath);
FreePool (TerminalContext);
break;
if (!FileContext->IsRoot) {
FreePool (FileContext->DevicePath);
} else {
if (FileContext->FHandle != NULL) {
FileContext->FHandle->Close (FileContext->FHandle);
}
}
case BM_HANDLE_CONTEXT_SELECT:
HandleContext = (BM_HANDLE_CONTEXT *) MenuEntry->VariableContext;
FreePool (HandleContext);
break;
if (FileContext->FileName != NULL) {
FreePool (FileContext->FileName);
}
default:
break;
if (FileContext->Info != NULL) {
FreePool (FileContext->Info);
}
FreePool (FileContext);
break;
case BM_CONSOLE_CONTEXT_SELECT:
ConsoleContext = (BM_CONSOLE_CONTEXT *)MenuEntry->VariableContext;
FreePool (ConsoleContext->DevicePath);
FreePool (ConsoleContext);
break;
case BM_TERMINAL_CONTEXT_SELECT:
TerminalContext = (BM_TERMINAL_CONTEXT *)MenuEntry->VariableContext;
FreePool (TerminalContext->DevicePath);
FreePool (TerminalContext);
break;
case BM_HANDLE_CONTEXT_SELECT:
HandleContext = (BM_HANDLE_CONTEXT *)MenuEntry->VariableContext;
FreePool (HandleContext);
break;
default:
break;
}
FreePool (MenuEntry->DisplayString);
@@ -224,13 +227,13 @@ BOpt_DestroyMenuEntry (
**/
BM_MENU_ENTRY *
BOpt_GetMenuEntry (
BM_MENU_OPTION *MenuOption,
UINTN MenuNumber
BM_MENU_OPTION *MenuOption,
UINTN MenuNumber
)
{
BM_MENU_ENTRY *NewMenuEntry;
UINTN Index;
LIST_ENTRY *List;
BM_MENU_ENTRY *NewMenuEntry;
UINTN Index;
LIST_ENTRY *List;
ASSERT (MenuNumber < MenuOption->MenuNumber);
@@ -251,10 +254,11 @@ BOpt_GetMenuEntry (
**/
VOID
BOpt_FreeMenu (
BM_MENU_OPTION *FreeMenu
BM_MENU_OPTION *FreeMenu
)
{
BM_MENU_ENTRY *MenuEntry;
BM_MENU_ENTRY *MenuEntry;
while (!IsListEmpty (&FreeMenu->Head)) {
MenuEntry = CR (
FreeMenu->Head.ForwardLink,
@@ -265,6 +269,7 @@ BOpt_FreeMenu (
RemoveEntryList (&MenuEntry->Link);
BOpt_DestroyMenuEntry (MenuEntry);
}
FreeMenu->MenuNumber = 0;
}
@@ -281,7 +286,7 @@ BOpt_FreeMenu (
**/
EFI_STATUS
BOpt_GetBootOptions (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
)
{
UINTN Index;
@@ -317,7 +322,7 @@ BOpt_GetBootOptions (
//
// Get the BootOrder from the Var
//
GetEfiGlobalVariable2 (L"BootOrder", (VOID **) &BootOrderList, &BootOrderListSize);
GetEfiGlobalVariable2 (L"BootOrder", (VOID **)&BootOrderList, &BootOrderListSize);
if (BootOrderList == NULL) {
return EFI_NOT_FOUND;
}
@@ -325,13 +330,14 @@ BOpt_GetBootOptions (
//
// Get the BootNext from the Var
//
GetEfiGlobalVariable2 (L"BootNext", (VOID **) &BootNext, &BootNextSize);
GetEfiGlobalVariable2 (L"BootNext", (VOID **)&BootNext, &BootNextSize);
if (BootNext != NULL) {
if (BootNextSize != sizeof (UINT16)) {
FreePool (BootNext);
BootNext = NULL;
}
}
BootOption = EfiBootManagerGetLoadOptions (&BootOptionCount, LoadOptionTypeBoot);
for (Index = 0; Index < BootOrderListSize / sizeof (UINT16); Index++) {
//
@@ -345,13 +351,13 @@ BOpt_GetBootOptions (
//
// Get all loadoptions from the VAR
//
GetEfiGlobalVariable2 (BootString, (VOID **) &LoadOptionFromVar, &BootOptionSize);
GetEfiGlobalVariable2 (BootString, (VOID **)&LoadOptionFromVar, &BootOptionSize);
if (LoadOptionFromVar == NULL) {
continue;
}
if (BootNext != NULL) {
BootNextFlag = (BOOLEAN) (*BootNext == BootOrderList[Index]);
BootNextFlag = (BOOLEAN)(*BootNext == BootOrderList[Index]);
} else {
BootNextFlag = FALSE;
}
@@ -359,19 +365,19 @@ BOpt_GetBootOptions (
NewMenuEntry = BOpt_CreateMenuEntry (BM_LOAD_CONTEXT_SELECT);
ASSERT (NULL != NewMenuEntry);
NewLoadContext = (BM_LOAD_CONTEXT *) NewMenuEntry->VariableContext;
NewLoadContext = (BM_LOAD_CONTEXT *)NewMenuEntry->VariableContext;
LoadOptionPtr = LoadOptionFromVar;
LoadOptionEnd = LoadOptionFromVar + BootOptionSize;
LoadOptionPtr = LoadOptionFromVar;
LoadOptionEnd = LoadOptionFromVar + BootOptionSize;
NewMenuEntry->OptionNumber = BootOrderList[Index];
NewLoadContext->Deleted = FALSE;
NewLoadContext->IsBootNext = BootNextFlag;
NewMenuEntry->OptionNumber = BootOrderList[Index];
NewLoadContext->Deleted = FALSE;
NewLoadContext->IsBootNext = BootNextFlag;
//
// Is a Legacy Device?
//
Ptr = (UINT8 *) LoadOptionFromVar;
Ptr = (UINT8 *)LoadOptionFromVar;
//
// Attribute = *(UINT32 *)Ptr;
@@ -386,38 +392,39 @@ BOpt_GetBootOptions (
//
// Description = (CHAR16 *)Ptr;
//
Ptr += StrSize ((CHAR16 *) Ptr);
Ptr += StrSize ((CHAR16 *)Ptr);
//
// Now Ptr point to Device Path
//
DevicePath = (EFI_DEVICE_PATH_PROTOCOL *) Ptr;
DevicePath = (EFI_DEVICE_PATH_PROTOCOL *)Ptr;
if ((BBS_DEVICE_PATH == DevicePath->Type) && (BBS_BBS_DP == DevicePath->SubType)) {
NewLoadContext->IsLegacy = TRUE;
} else {
NewLoadContext->IsLegacy = FALSE;
}
//
// LoadOption is a pointer type of UINT8
// for easy use with following LOAD_OPTION
// embedded in this struct
//
NewLoadContext->Attributes = *(UINT32 *) LoadOptionPtr;
NewLoadContext->Attributes = *(UINT32 *)LoadOptionPtr;
LoadOptionPtr += sizeof (UINT32);
NewLoadContext->FilePathListLength = *(UINT16 *) LoadOptionPtr;
LoadOptionPtr += sizeof (UINT16);
NewLoadContext->FilePathListLength = *(UINT16 *)LoadOptionPtr;
LoadOptionPtr += sizeof (UINT16);
StringSize = StrSize((UINT16*)LoadOptionPtr);
StringSize = StrSize ((UINT16 *)LoadOptionPtr);
NewLoadContext->Description = AllocateZeroPool (StrSize((UINT16*)LoadOptionPtr));
NewLoadContext->Description = AllocateZeroPool (StrSize ((UINT16 *)LoadOptionPtr));
ASSERT (NewLoadContext->Description != NULL);
StrCpyS (NewLoadContext->Description, StrSize((UINT16*)LoadOptionPtr) / sizeof (UINT16), (UINT16*)LoadOptionPtr);
StrCpyS (NewLoadContext->Description, StrSize ((UINT16 *)LoadOptionPtr) / sizeof (UINT16), (UINT16 *)LoadOptionPtr);
ASSERT (NewLoadContext->Description != NULL);
NewMenuEntry->DisplayString = NewLoadContext->Description;
NewMenuEntry->DisplayString = NewLoadContext->Description;
NewMenuEntry->DisplayStringToken = HiiSetString (CallbackData->BmmHiiHandle, 0, NewMenuEntry->DisplayString, NULL);
LoadOptionPtr += StringSize;
@@ -426,21 +433,21 @@ BOpt_GetBootOptions (
ASSERT (NewLoadContext->FilePathList != NULL);
CopyMem (
NewLoadContext->FilePathList,
(EFI_DEVICE_PATH_PROTOCOL *) LoadOptionPtr,
(EFI_DEVICE_PATH_PROTOCOL *)LoadOptionPtr,
NewLoadContext->FilePathListLength
);
NewMenuEntry->HelpString = UiDevicePathToStr (NewLoadContext->FilePathList);
NewMenuEntry->HelpString = UiDevicePathToStr (NewLoadContext->FilePathList);
NewMenuEntry->HelpStringToken = HiiSetString (CallbackData->BmmHiiHandle, 0, NewMenuEntry->HelpString, NULL);
LoadOptionPtr += NewLoadContext->FilePathListLength;
if (LoadOptionPtr < LoadOptionEnd) {
OptionalDataSize = BootOptionSize -
sizeof (UINT32) -
sizeof (UINT16) -
StringSize -
NewLoadContext->FilePathListLength;
sizeof (UINT32) -
sizeof (UINT16) -
StringSize -
NewLoadContext->FilePathListLength;
NewLoadContext->OptionalData = AllocateZeroPool (OptionalDataSize);
ASSERT (NewLoadContext->OptionalData != NULL);
@@ -455,11 +462,13 @@ BOpt_GetBootOptions (
MenuCount++;
FreePool (LoadOptionFromVar);
}
EfiBootManagerFreeLoadOptions (BootOption, BootOptionCount);
if (BootNext != NULL) {
FreePool (BootNext);
}
if (BootOrderList != NULL) {
FreePool (BootOrderList);
}
@@ -484,19 +493,19 @@ BOpt_FindDrivers (
VOID
)
{
UINTN NoDevicePathHandles;
EFI_HANDLE *DevicePathHandle;
UINTN Index;
EFI_STATUS Status;
BM_MENU_ENTRY *NewMenuEntry;
BM_HANDLE_CONTEXT *NewHandleContext;
EFI_HANDLE CurHandle;
UINTN OptionNumber;
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *SimpleFs;
EFI_LOAD_FILE_PROTOCOL *LoadFile;
UINTN NoDevicePathHandles;
EFI_HANDLE *DevicePathHandle;
UINTN Index;
EFI_STATUS Status;
BM_MENU_ENTRY *NewMenuEntry;
BM_HANDLE_CONTEXT *NewHandleContext;
EFI_HANDLE CurHandle;
UINTN OptionNumber;
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *SimpleFs;
EFI_LOAD_FILE_PROTOCOL *LoadFile;
SimpleFs = NULL;
LoadFile = NULL;
SimpleFs = NULL;
LoadFile = NULL;
InitializeListHead (&DriverMenu.Head);
@@ -523,7 +532,7 @@ BOpt_FindDrivers (
Status = gBS->HandleProtocol (
CurHandle,
&gEfiSimpleFileSystemProtocolGuid,
(VOID **) &SimpleFs
(VOID **)&SimpleFs
);
if (Status == EFI_SUCCESS) {
continue;
@@ -532,7 +541,7 @@ BOpt_FindDrivers (
Status = gBS->HandleProtocol (
CurHandle,
&gEfiLoadFileProtocolGuid,
(VOID **) &LoadFile
(VOID **)&LoadFile
);
if (Status == EFI_SUCCESS) {
continue;
@@ -544,17 +553,16 @@ BOpt_FindDrivers (
return EFI_OUT_OF_RESOURCES;
}
NewHandleContext = (BM_HANDLE_CONTEXT *) NewMenuEntry->VariableContext;
NewHandleContext->Handle = CurHandle;
NewHandleContext->DevicePath = DevicePathFromHandle (CurHandle);
NewMenuEntry->DisplayString = UiDevicePathToStr (NewHandleContext->DevicePath);
NewMenuEntry->DisplayStringToken = HiiSetString (mBmmCallbackInfo->BmmHiiHandle,0,NewMenuEntry->DisplayString,NULL);
NewMenuEntry->HelpString = NULL;
NewMenuEntry->HelpStringToken = NewMenuEntry->DisplayStringToken;
NewMenuEntry->OptionNumber = OptionNumber;
NewHandleContext = (BM_HANDLE_CONTEXT *)NewMenuEntry->VariableContext;
NewHandleContext->Handle = CurHandle;
NewHandleContext->DevicePath = DevicePathFromHandle (CurHandle);
NewMenuEntry->DisplayString = UiDevicePathToStr (NewHandleContext->DevicePath);
NewMenuEntry->DisplayStringToken = HiiSetString (mBmmCallbackInfo->BmmHiiHandle, 0, NewMenuEntry->DisplayString, NULL);
NewMenuEntry->HelpString = NULL;
NewMenuEntry->HelpStringToken = NewMenuEntry->DisplayStringToken;
NewMenuEntry->OptionNumber = OptionNumber;
OptionNumber++;
InsertTailList (&DriverMenu.Head, &NewMenuEntry->Link);
}
if (DevicePathHandle != NULL) {
@@ -576,16 +584,16 @@ BOpt_FindDrivers (
**/
UINT16
BOpt_GetOptionNumber (
CHAR16 *Type
CHAR16 *Type
)
{
UINT16 *OrderList;
UINTN OrderListSize;
UINTN Index;
CHAR16 StrTemp[20];
UINT16 *OptionBuffer;
UINT16 OptionNumber;
UINTN OptionSize;
UINT16 *OrderList;
UINTN OrderListSize;
UINTN Index;
CHAR16 StrTemp[20];
UINT16 *OptionBuffer;
UINT16 OptionNumber;
UINTN OptionSize;
OrderListSize = 0;
OrderList = NULL;
@@ -594,7 +602,7 @@ BOpt_GetOptionNumber (
UnicodeSPrint (StrTemp, sizeof (StrTemp), L"%sOrder", Type);
GetEfiGlobalVariable2 (StrTemp, (VOID **) &OrderList, &OrderListSize);
GetEfiGlobalVariable2 (StrTemp, (VOID **)&OrderList, &OrderListSize);
for (OptionNumber = 0; ; OptionNumber++) {
if (OrderList != NULL) {
for (Index = 0; Index < OrderListSize / sizeof (UINT16); Index++) {
@@ -610,9 +618,10 @@ BOpt_GetOptionNumber (
//
continue;
}
UnicodeSPrint (StrTemp, sizeof (StrTemp), L"%s%04x", Type, (UINTN) OptionNumber);
DEBUG((DEBUG_ERROR,"Option = %s\n", StrTemp));
GetEfiGlobalVariable2 (StrTemp, (VOID **) &OptionBuffer, &OptionSize);
UnicodeSPrint (StrTemp, sizeof (StrTemp), L"%s%04x", Type, (UINTN)OptionNumber);
DEBUG ((DEBUG_ERROR, "Option = %s\n", StrTemp));
GetEfiGlobalVariable2 (StrTemp, (VOID **)&OptionBuffer, &OptionSize);
if (NULL == OptionBuffer) {
//
// The Boot[OptionNumber] / Driver[OptionNumber] NOT occurs, we found it
@@ -667,22 +676,22 @@ BOpt_GetDriverOptionNumber (
**/
EFI_STATUS
BOpt_GetDriverOptions (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
)
{
UINTN Index;
UINT16 DriverString[12];
UINT8 *LoadOptionFromVar;
UINTN DriverOptionSize;
UINTN Index;
UINT16 DriverString[12];
UINT8 *LoadOptionFromVar;
UINTN DriverOptionSize;
UINT16 *DriverOrderList;
UINTN DriverOrderListSize;
BM_MENU_ENTRY *NewMenuEntry;
BM_LOAD_CONTEXT *NewLoadContext;
UINT8 *LoadOptionPtr;
UINTN StringSize;
UINTN OptionalDataSize;
UINT8 *LoadOptionEnd;
UINT16 *DriverOrderList;
UINTN DriverOrderListSize;
BM_MENU_ENTRY *NewMenuEntry;
BM_LOAD_CONTEXT *NewLoadContext;
UINT8 *LoadOptionPtr;
UINTN StringSize;
UINTN OptionalDataSize;
UINT8 *LoadOptionEnd;
DriverOrderListSize = 0;
DriverOrderList = NULL;
@@ -693,7 +702,7 @@ BOpt_GetDriverOptions (
//
// Get the DriverOrder from the Var
//
GetEfiGlobalVariable2 (L"DriverOrder", (VOID **) &DriverOrderList, &DriverOrderListSize);
GetEfiGlobalVariable2 (L"DriverOrder", (VOID **)&DriverOrderList, &DriverOrderListSize);
if (DriverOrderList == NULL) {
return EFI_NOT_FOUND;
}
@@ -708,23 +717,22 @@ BOpt_GetDriverOptions (
//
// Get all loadoptions from the VAR
//
GetEfiGlobalVariable2 (DriverString, (VOID **) &LoadOptionFromVar, &DriverOptionSize);
GetEfiGlobalVariable2 (DriverString, (VOID **)&LoadOptionFromVar, &DriverOptionSize);
if (LoadOptionFromVar == NULL) {
continue;
}
NewMenuEntry = BOpt_CreateMenuEntry (BM_LOAD_CONTEXT_SELECT);
if (NULL == NewMenuEntry) {
return EFI_OUT_OF_RESOURCES;
}
NewLoadContext = (BM_LOAD_CONTEXT *) NewMenuEntry->VariableContext;
LoadOptionPtr = LoadOptionFromVar;
LoadOptionEnd = LoadOptionFromVar + DriverOptionSize;
NewMenuEntry->OptionNumber = DriverOrderList[Index];
NewLoadContext->Deleted = FALSE;
NewLoadContext->IsLegacy = FALSE;
NewLoadContext = (BM_LOAD_CONTEXT *)NewMenuEntry->VariableContext;
LoadOptionPtr = LoadOptionFromVar;
LoadOptionEnd = LoadOptionFromVar + DriverOptionSize;
NewMenuEntry->OptionNumber = DriverOrderList[Index];
NewLoadContext->Deleted = FALSE;
NewLoadContext->IsLegacy = FALSE;
//
// LoadOption is a pointer type of UINT8
@@ -732,22 +740,22 @@ BOpt_GetDriverOptions (
// embedded in this struct
//
NewLoadContext->Attributes = *(UINT32 *) LoadOptionPtr;
NewLoadContext->Attributes = *(UINT32 *)LoadOptionPtr;
LoadOptionPtr += sizeof (UINT32);
NewLoadContext->FilePathListLength = *(UINT16 *) LoadOptionPtr;
LoadOptionPtr += sizeof (UINT16);
NewLoadContext->FilePathListLength = *(UINT16 *)LoadOptionPtr;
LoadOptionPtr += sizeof (UINT16);
StringSize = StrSize ((UINT16 *) LoadOptionPtr);
StringSize = StrSize ((UINT16 *)LoadOptionPtr);
NewLoadContext->Description = AllocateZeroPool (StringSize);
ASSERT (NewLoadContext->Description != NULL);
CopyMem (
NewLoadContext->Description,
(UINT16 *) LoadOptionPtr,
(UINT16 *)LoadOptionPtr,
StringSize
);
NewMenuEntry->DisplayString = NewLoadContext->Description;
NewMenuEntry->DisplayString = NewLoadContext->Description;
NewMenuEntry->DisplayStringToken = HiiSetString (CallbackData->BmmHiiHandle, 0, NewMenuEntry->DisplayString, NULL);
LoadOptionPtr += StringSize;
@@ -756,21 +764,21 @@ BOpt_GetDriverOptions (
ASSERT (NewLoadContext->FilePathList != NULL);
CopyMem (
NewLoadContext->FilePathList,
(EFI_DEVICE_PATH_PROTOCOL *) LoadOptionPtr,
(EFI_DEVICE_PATH_PROTOCOL *)LoadOptionPtr,
NewLoadContext->FilePathListLength
);
NewMenuEntry->HelpString = UiDevicePathToStr (NewLoadContext->FilePathList);
NewMenuEntry->HelpString = UiDevicePathToStr (NewLoadContext->FilePathList);
NewMenuEntry->HelpStringToken = HiiSetString (CallbackData->BmmHiiHandle, 0, NewMenuEntry->HelpString, NULL);
LoadOptionPtr += NewLoadContext->FilePathListLength;
if (LoadOptionPtr < LoadOptionEnd) {
OptionalDataSize = DriverOptionSize -
sizeof (UINT32) -
sizeof (UINT16) -
StringSize -
NewLoadContext->FilePathListLength;
sizeof (UINT32) -
sizeof (UINT16) -
StringSize -
NewLoadContext->FilePathListLength;
NewLoadContext->OptionalData = AllocateZeroPool (OptionalDataSize);
ASSERT (NewLoadContext->OptionalData != NULL);
@@ -779,12 +787,10 @@ BOpt_GetDriverOptions (
LoadOptionPtr,
OptionalDataSize
);
}
InsertTailList (&DriverOptionMenu.Head, &NewMenuEntry->Link);
FreePool (LoadOptionFromVar);
}
if (DriverOrderList != NULL) {
@@ -793,7 +799,6 @@ BOpt_GetDriverOptions (
DriverOptionMenu.MenuNumber = Index;
return EFI_SUCCESS;
}
/**
@@ -804,31 +809,32 @@ BOpt_GetDriverOptions (
**/
VOID
GetBootOrder (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
)
{
BMM_FAKE_NV_DATA *BmmConfig;
UINT16 Index;
UINT16 OptionOrderIndex;
UINTN DeviceType;
BM_MENU_ENTRY *NewMenuEntry;
BM_LOAD_CONTEXT *NewLoadContext;
BMM_FAKE_NV_DATA *BmmConfig;
UINT16 Index;
UINT16 OptionOrderIndex;
UINTN DeviceType;
BM_MENU_ENTRY *NewMenuEntry;
BM_LOAD_CONTEXT *NewLoadContext;
ASSERT (CallbackData != NULL);
DeviceType = (UINTN) -1;
DeviceType = (UINTN)-1;
BmmConfig = &CallbackData->BmmFakeNvData;
ZeroMem (BmmConfig->BootOptionOrder, sizeof (BmmConfig->BootOptionOrder));
for (Index = 0, OptionOrderIndex = 0; ((Index < BootOptionMenu.MenuNumber) &&
(OptionOrderIndex < (sizeof (BmmConfig->BootOptionOrder) / sizeof (BmmConfig->BootOptionOrder[0]))));
Index++) {
(OptionOrderIndex < (sizeof (BmmConfig->BootOptionOrder) / sizeof (BmmConfig->BootOptionOrder[0]))));
Index++)
{
NewMenuEntry = BOpt_GetMenuEntry (&BootOptionMenu, Index);
NewLoadContext = (BM_LOAD_CONTEXT *) NewMenuEntry->VariableContext;
NewLoadContext = (BM_LOAD_CONTEXT *)NewMenuEntry->VariableContext;
if (NewLoadContext->IsLegacy) {
if (((BBS_BBS_DEVICE_PATH *) NewLoadContext->FilePathList)->DeviceType != DeviceType) {
DeviceType = ((BBS_BBS_DEVICE_PATH *) NewLoadContext->FilePathList)->DeviceType;
if (((BBS_BBS_DEVICE_PATH *)NewLoadContext->FilePathList)->DeviceType != DeviceType) {
DeviceType = ((BBS_BBS_DEVICE_PATH *)NewLoadContext->FilePathList)->DeviceType;
} else {
//
// Only show one legacy boot option for the same device type
@@ -837,7 +843,8 @@ GetBootOrder (
continue;
}
}
BmmConfig->BootOptionOrder[OptionOrderIndex++] = (UINT32) (NewMenuEntry->OptionNumber + 1);
BmmConfig->BootOptionOrder[OptionOrderIndex++] = (UINT32)(NewMenuEntry->OptionNumber + 1);
}
}
@@ -849,32 +856,32 @@ GetBootOrder (
**/
VOID
GetDriverOrder (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
)
{
BMM_FAKE_NV_DATA *BmmConfig;
UINT16 Index;
UINT16 OptionOrderIndex;
UINTN DeviceType;
BM_MENU_ENTRY *NewMenuEntry;
BM_LOAD_CONTEXT *NewLoadContext;
BMM_FAKE_NV_DATA *BmmConfig;
UINT16 Index;
UINT16 OptionOrderIndex;
UINTN DeviceType;
BM_MENU_ENTRY *NewMenuEntry;
BM_LOAD_CONTEXT *NewLoadContext;
ASSERT (CallbackData != NULL);
DeviceType = (UINTN) -1;
DeviceType = (UINTN)-1;
BmmConfig = &CallbackData->BmmFakeNvData;
ZeroMem (BmmConfig->DriverOptionOrder, sizeof (BmmConfig->DriverOptionOrder));
for (Index = 0, OptionOrderIndex = 0; ((Index < DriverOptionMenu.MenuNumber) &&
(OptionOrderIndex < (sizeof (BmmConfig->DriverOptionOrder) / sizeof (BmmConfig->DriverOptionOrder[0]))));
Index++) {
(OptionOrderIndex < (sizeof (BmmConfig->DriverOptionOrder) / sizeof (BmmConfig->DriverOptionOrder[0]))));
Index++)
{
NewMenuEntry = BOpt_GetMenuEntry (&DriverOptionMenu, Index);
NewLoadContext = (BM_LOAD_CONTEXT *) NewMenuEntry->VariableContext;
NewLoadContext = (BM_LOAD_CONTEXT *)NewMenuEntry->VariableContext;
if (NewLoadContext->IsLegacy) {
if (((BBS_BBS_DEVICE_PATH *) NewLoadContext->FilePathList)->DeviceType != DeviceType) {
DeviceType = ((BBS_BBS_DEVICE_PATH *) NewLoadContext->FilePathList)->DeviceType;
if (((BBS_BBS_DEVICE_PATH *)NewLoadContext->FilePathList)->DeviceType != DeviceType) {
DeviceType = ((BBS_BBS_DEVICE_PATH *)NewLoadContext->FilePathList)->DeviceType;
} else {
//
// Only show one legacy boot option for the same device type
@@ -883,7 +890,8 @@ GetDriverOrder (
continue;
}
}
BmmConfig->DriverOptionOrder[OptionOrderIndex++] = (UINT32) (NewMenuEntry->OptionNumber + 1);
BmmConfig->DriverOptionOrder[OptionOrderIndex++] = (UINT32)(NewMenuEntry->OptionNumber + 1);
}
}
@@ -898,15 +906,15 @@ GetDriverOrder (
BOOLEAN
EFIAPI
BootFromFile (
IN EFI_DEVICE_PATH_PROTOCOL *FilePath
IN EFI_DEVICE_PATH_PROTOCOL *FilePath
)
{
EFI_BOOT_MANAGER_LOAD_OPTION BootOption;
CHAR16 *FileName;
EFI_BOOT_MANAGER_LOAD_OPTION BootOption;
CHAR16 *FileName;
FileName = NULL;
FileName = ExtractFileNameFromDevicePath(FilePath);
FileName = ExtractFileNameFromDevicePath (FilePath);
if (FileName != NULL) {
EfiBootManagerInitializeLoadOption (
&BootOption,
@@ -931,7 +939,7 @@ BootFromFile (
EfiBootManagerBoot (&BootOption);
BmmSetConsoleMode (TRUE);
FreePool(FileName);
FreePool (FileName);
EfiBootManagerFreeLoadOption (&BootOption);
}
@@ -947,24 +955,24 @@ BootFromFile (
**/
BOOLEAN
ReSendForm(
ReSendForm (
IN EFI_DEVICE_PATH_PROTOCOL *FilePath,
IN EFI_FORM_ID FormId
)
{
gBootMaintenancePrivate.LoadContext->FilePathList = FilePath;
UpdateOptionPage(&gBootMaintenancePrivate, FormId, FilePath);
UpdateOptionPage (&gBootMaintenancePrivate, FormId, FilePath);
gBootMaintenancePrivate.FormBrowser2->SendForm (
gBootMaintenancePrivate.FormBrowser2,
&gBootMaintenancePrivate.BmmHiiHandle,
1,
&mBootMaintGuid,
FormId,
NULL,
NULL
);
gBootMaintenancePrivate.FormBrowser2,
&gBootMaintenancePrivate.BmmHiiHandle,
1,
&mBootMaintGuid,
FormId,
NULL,
NULL
);
return TRUE;
}
@@ -979,10 +987,10 @@ ReSendForm(
BOOLEAN
EFIAPI
CreateBootOptionFromFile (
IN EFI_DEVICE_PATH_PROTOCOL *FilePath
IN EFI_DEVICE_PATH_PROTOCOL *FilePath
)
{
return ReSendForm(FilePath, FORM_BOOT_ADD_ID);
return ReSendForm (FilePath, FORM_BOOT_ADD_ID);
}
/**
@@ -997,8 +1005,8 @@ CreateBootOptionFromFile (
BOOLEAN
EFIAPI
CreateDriverOptionFromFile (
IN EFI_DEVICE_PATH_PROTOCOL *FilePath
IN EFI_DEVICE_PATH_PROTOCOL *FilePath
)
{
return ReSendForm(FilePath, FORM_DRV_ADD_FILE_ID);
return ReSendForm (FilePath, FORM_DRV_ADD_FILE_ID);
}

View File

@@ -31,7 +31,7 @@ MatchDevicePaths (
EFI_DEVICE_PATH_PROTOCOL *DevicePathInst;
UINTN Size;
if (Multi == NULL || Single == NULL) {
if ((Multi == NULL) || (Single == NULL)) {
return FALSE;
}
@@ -69,14 +69,14 @@ MatchDevicePaths (
**/
BOOLEAN
IsIsaSerialNode (
IN ACPI_HID_DEVICE_PATH *Acpi
IN ACPI_HID_DEVICE_PATH *Acpi
)
{
return (BOOLEAN) (
(DevicePathType (Acpi) == ACPI_DEVICE_PATH) &&
(DevicePathSubType (Acpi) == ACPI_DP) &&
(ReadUnaligned32 (&Acpi->HID) == EISA_PNP_ID (0x0501))
);
return (BOOLEAN)(
(DevicePathType (Acpi) == ACPI_DEVICE_PATH) &&
(DevicePathSubType (Acpi) == ACPI_DP) &&
(ReadUnaligned32 (&Acpi->HID) == EISA_PNP_ID (0x0501))
);
}
/**
@@ -119,20 +119,20 @@ ChangeTerminalDevicePath (
BM_TERMINAL_CONTEXT *NewTerminalContext;
BM_MENU_ENTRY *NewMenuEntry;
Node = DevicePath;
Node = NextDevicePathNode (Node);
Com = 0;
Node = DevicePath;
Node = NextDevicePathNode (Node);
Com = 0;
while (!IsDevicePathEnd (Node)) {
Acpi = (ACPI_HID_DEVICE_PATH *) Node;
Acpi = (ACPI_HID_DEVICE_PATH *)Node;
if (IsIsaSerialNode (Acpi)) {
CopyMem (&Com, &Acpi->UID, sizeof (UINT32));
}
NewMenuEntry = BOpt_GetMenuEntry (&TerminalMenu, Com);
NewTerminalContext = (BM_TERMINAL_CONTEXT *) NewMenuEntry->VariableContext;
NewTerminalContext = (BM_TERMINAL_CONTEXT *)NewMenuEntry->VariableContext;
if ((DevicePathType (Node) == MESSAGING_DEVICE_PATH) && (DevicePathSubType (Node) == MSG_UART_DP)) {
Uart = (UART_DEVICE_PATH *) Node;
Uart = (UART_DEVICE_PATH *)Node;
CopyMem (
&Uart->BaudRate,
&NewTerminalContext->BaudRate,
@@ -164,7 +164,7 @@ ChangeTerminalDevicePath (
Node1 = NextDevicePathNode (Node1);
while (!IsDevicePathEnd (Node1)) {
if ((DevicePathType (Node1) == MESSAGING_DEVICE_PATH) && (DevicePathSubType (Node1) == MSG_UART_DP)) {
Uart1 = (UART_DEVICE_PATH *) Node1;
Uart1 = (UART_DEVICE_PATH *)Node1;
CopyMem (
&Uart1->BaudRate,
&NewTerminalContext->BaudRate,
@@ -190,11 +190,13 @@ ChangeTerminalDevicePath (
);
break;
}
//
// end if
//
Node1 = NextDevicePathNode (Node1);
}
//
// end while
//
@@ -206,7 +208,6 @@ ChangeTerminalDevicePath (
}
return EFI_SUCCESS;
}
/**
@@ -229,23 +230,23 @@ ChangeVariableDevicePath (
BM_TERMINAL_CONTEXT *NewTerminalContext;
BM_MENU_ENTRY *NewMenuEntry;
Node = DevicePath;
Node = NextDevicePathNode (Node);
Com = 0;
Node = DevicePath;
Node = NextDevicePathNode (Node);
Com = 0;
while (!IsDevicePathEnd (Node)) {
Acpi = (ACPI_HID_DEVICE_PATH *) Node;
Acpi = (ACPI_HID_DEVICE_PATH *)Node;
if (IsIsaSerialNode (Acpi)) {
CopyMem (&Com, &Acpi->UID, sizeof (UINT32));
}
if ((DevicePathType (Node) == MESSAGING_DEVICE_PATH) && (DevicePathSubType (Node) == MSG_UART_DP)) {
NewMenuEntry = BOpt_GetMenuEntry (
&TerminalMenu,
Com
);
&TerminalMenu,
Com
);
ASSERT (NewMenuEntry != NULL);
NewTerminalContext = (BM_TERMINAL_CONTEXT *) NewMenuEntry->VariableContext;
Uart = (UART_DEVICE_PATH *) Node;
NewTerminalContext = (BM_TERMINAL_CONTEXT *)NewMenuEntry->VariableContext;
Uart = (UART_DEVICE_PATH *)Node;
CopyMem (
&Uart->BaudRate,
&NewTerminalContext->BaudRate,
@@ -287,8 +288,8 @@ ChangeVariableDevicePath (
**/
BOOLEAN
RetrieveUartUid (
IN EFI_HANDLE Handle,
IN OUT UINT32 *AcpiUid
IN EFI_HANDLE Handle,
IN OUT UINT32 *AcpiUid
)
{
EFI_STATUS Status;
@@ -298,27 +299,29 @@ RetrieveUartUid (
Status = gBS->HandleProtocol (
Handle,
&gEfiDevicePathProtocolGuid,
(VOID **) &DevicePath
(VOID **)&DevicePath
);
if (EFI_ERROR (Status)) {
return FALSE;
}
Acpi = NULL;
for (; !IsDevicePathEnd (DevicePath); DevicePath = NextDevicePathNode (DevicePath)) {
for ( ; !IsDevicePathEnd (DevicePath); DevicePath = NextDevicePathNode (DevicePath)) {
if ((DevicePathType (DevicePath) == MESSAGING_DEVICE_PATH) && (DevicePathSubType (DevicePath) == MSG_UART_DP)) {
break;
}
//
// Acpi points to the node before the Uart node
//
Acpi = (ACPI_HID_DEVICE_PATH *) DevicePath;
Acpi = (ACPI_HID_DEVICE_PATH *)DevicePath;
}
if ((Acpi != NULL) && IsIsaSerialNode (Acpi)) {
if (AcpiUid != NULL) {
CopyMem (AcpiUid, &Acpi->UID, sizeof (UINT32));
}
return TRUE;
} else {
return FALSE;
@@ -333,8 +336,8 @@ RetrieveUartUid (
**/
VOID
SortedUartHandle (
IN EFI_HANDLE *Handles,
IN UINTN NoHandles
IN EFI_HANDLE *Handles,
IN UINTN NoHandles
)
{
UINTN Index1;
@@ -349,6 +352,7 @@ SortedUartHandle (
if (!RetrieveUartUid (Handles[Index1], &AcpiUid1)) {
continue;
}
TempHandle = Handles[Index1];
Position = Index1;
TempAcpiUid = AcpiUid1;
@@ -357,12 +361,14 @@ SortedUartHandle (
if (!RetrieveUartUid (Handles[Index2], &AcpiUid2)) {
continue;
}
if (AcpiUid2 < TempAcpiUid) {
TempAcpiUid = AcpiUid2;
TempHandle = Handles[Index2];
Position = Index2;
}
}
Handles[Position] = Handles[Index1];
Handles[Index1] = TempHandle;
}
@@ -382,9 +388,9 @@ SortedUartHandle (
**/
BOOLEAN
IsTerminalDevicePath (
IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
OUT TYPE_OF_TERMINAL *Termi,
OUT UINTN *Com
IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
OUT TYPE_OF_TERMINAL *Termi,
OUT UINTN *Com
);
/**
@@ -422,13 +428,13 @@ LocateSerialIo (
//
InitializeListHead (&TerminalMenu.Head);
TerminalMenu.MenuNumber = 0;
Status = gBS->LocateHandleBuffer (
ByProtocol,
&gEfiSerialIoProtocolGuid,
NULL,
&NoHandles,
&Handles
);
Status = gBS->LocateHandleBuffer (
ByProtocol,
&gEfiSerialIoProtocolGuid,
NULL,
&NoHandles,
&Handles
);
if (EFI_ERROR (Status)) {
//
// No serial ports present
@@ -447,20 +453,21 @@ LocateSerialIo (
// Check to see whether the handle has DevicePath Protocol installed
//
gBS->HandleProtocol (
Handles[Index],
&gEfiDevicePathProtocolGuid,
(VOID **) &DevicePath
);
Handles[Index],
&gEfiDevicePathProtocolGuid,
(VOID **)&DevicePath
);
Acpi = NULL;
for (Node = DevicePath; !IsDevicePathEnd (Node); Node = NextDevicePathNode (Node)) {
if ((DevicePathType (Node) == MESSAGING_DEVICE_PATH) && (DevicePathSubType (Node) == MSG_UART_DP)) {
break;
}
//
// Acpi points to the node before Uart node
//
Acpi = (ACPI_HID_DEVICE_PATH *) Node;
Acpi = (ACPI_HID_DEVICE_PATH *)Node;
}
if ((Acpi != NULL) && IsIsaSerialNode (Acpi)) {
@@ -470,7 +477,7 @@ LocateSerialIo (
return EFI_OUT_OF_RESOURCES;
}
NewTerminalContext = (BM_TERMINAL_CONTEXT *) NewMenuEntry->VariableContext;
NewTerminalContext = (BM_TERMINAL_CONTEXT *)NewMenuEntry->VariableContext;
CopyMem (&NewMenuEntry->OptionNumber, &Acpi->UID, sizeof (UINT32));
NewTerminalContext->DevicePath = DuplicateDevicePath (DevicePath);
//
@@ -491,10 +498,10 @@ LocateSerialIo (
NewMenuEntry->HelpStringToken = NewMenuEntry->DisplayStringToken;
gBS->HandleProtocol (
Handles[Index],
&gEfiSerialIoProtocolGuid,
(VOID **) &SerialIo
);
Handles[Index],
&gEfiSerialIoProtocolGuid,
(VOID **)&SerialIo
);
CopyMem (
&NewTerminalContext->BaudRate,
@@ -523,6 +530,7 @@ LocateSerialIo (
TerminalMenu.MenuNumber++;
}
}
if (Handles != NULL) {
FreePool (Handles);
}
@@ -530,9 +538,9 @@ LocateSerialIo (
//
// Get L"ConOut", L"ConIn" and L"ErrOut" from the Var
//
GetEfiGlobalVariable2 (L"ConOut", (VOID**)&OutDevicePath, NULL);
GetEfiGlobalVariable2 (L"ConIn", (VOID**)&InpDevicePath, NULL);
GetEfiGlobalVariable2 (L"ErrOut", (VOID**)&ErrDevicePath, NULL);
GetEfiGlobalVariable2 (L"ConOut", (VOID **)&OutDevicePath, NULL);
GetEfiGlobalVariable2 (L"ConIn", (VOID **)&InpDevicePath, NULL);
GetEfiGlobalVariable2 (L"ErrOut", (VOID **)&ErrDevicePath, NULL);
if (OutDevicePath != NULL) {
UpdateComAttributeFromVariable (OutDevicePath);
}
@@ -551,26 +559,27 @@ LocateSerialIo (
return EFI_NOT_FOUND;
}
NewTerminalContext = (BM_TERMINAL_CONTEXT *) NewMenuEntry->VariableContext;
NewTerminalContext = (BM_TERMINAL_CONTEXT *)NewMenuEntry->VariableContext;
NewTerminalContext->TerminalType = 0;
NewTerminalContext->IsConIn = FALSE;
NewTerminalContext->IsConOut = FALSE;
NewTerminalContext->IsStdErr = FALSE;
NewTerminalContext->TerminalType = 0;
NewTerminalContext->IsConIn = FALSE;
NewTerminalContext->IsConOut = FALSE;
NewTerminalContext->IsStdErr = FALSE;
Vendor.Header.Type = MESSAGING_DEVICE_PATH;
Vendor.Header.SubType = MSG_VENDOR_DP;
Vendor.Header.Type = MESSAGING_DEVICE_PATH;
Vendor.Header.SubType = MSG_VENDOR_DP;
for (Index2 = 0; Index2 < (ARRAY_SIZE (TerminalTypeGuid)); Index2++) {
CopyMem (&Vendor.Guid, &TerminalTypeGuid[Index2], sizeof (EFI_GUID));
SetDevicePathNodeLength (&Vendor.Header, sizeof (VENDOR_DEVICE_PATH));
NewDevicePath = AppendDevicePathNode (
NewTerminalContext->DevicePath,
(EFI_DEVICE_PATH_PROTOCOL *) &Vendor
(EFI_DEVICE_PATH_PROTOCOL *)&Vendor
);
if (NewMenuEntry->HelpString != NULL) {
FreePool (NewMenuEntry->HelpString);
}
//
// NewMenuEntry->HelpString = UiDevicePathToStr (NewDevicePath);
// NewMenuEntry->DisplayString = NewMenuEntry->HelpString;
@@ -582,18 +591,18 @@ LocateSerialIo (
NewMenuEntry->HelpStringToken = NewMenuEntry->DisplayStringToken;
if (MatchDevicePaths (OutDevicePath, NewDevicePath)) {
NewTerminalContext->IsConOut = TRUE;
NewTerminalContext->TerminalType = (UINT8) Index2;
NewTerminalContext->IsConOut = TRUE;
NewTerminalContext->TerminalType = (UINT8)Index2;
}
if (MatchDevicePaths (InpDevicePath, NewDevicePath)) {
NewTerminalContext->IsConIn = TRUE;
NewTerminalContext->TerminalType = (UINT8) Index2;
NewTerminalContext->IsConIn = TRUE;
NewTerminalContext->TerminalType = (UINT8)Index2;
}
if (MatchDevicePaths (ErrDevicePath, NewDevicePath)) {
NewTerminalContext->IsStdErr = TRUE;
NewTerminalContext->TerminalType = (UINT8) Index2;
NewTerminalContext->IsStdErr = TRUE;
NewTerminalContext->TerminalType = (UINT8)Index2;
}
}
}
@@ -624,24 +633,24 @@ UpdateComAttributeFromVariable (
BM_TERMINAL_CONTEXT *NewTerminalContext;
UINTN Index;
Node = DevicePath;
Node = NextDevicePathNode (Node);
TerminalNumber = 0;
Node = DevicePath;
Node = NextDevicePathNode (Node);
TerminalNumber = 0;
for (Index = 0; Index < TerminalMenu.MenuNumber; Index++) {
while (!IsDevicePathEnd (Node)) {
Acpi = (ACPI_HID_DEVICE_PATH *) Node;
Acpi = (ACPI_HID_DEVICE_PATH *)Node;
if (IsIsaSerialNode (Acpi)) {
CopyMem (&TerminalNumber, &Acpi->UID, sizeof (UINT32));
}
if ((DevicePathType (Node) == MESSAGING_DEVICE_PATH) && (DevicePathSubType (Node) == MSG_UART_DP)) {
Uart = (UART_DEVICE_PATH *) Node;
NewMenuEntry = BOpt_GetMenuEntry (&TerminalMenu, TerminalNumber);
Uart = (UART_DEVICE_PATH *)Node;
NewMenuEntry = BOpt_GetMenuEntry (&TerminalMenu, TerminalNumber);
if (NULL == NewMenuEntry) {
return EFI_NOT_FOUND;
}
NewTerminalContext = (BM_TERMINAL_CONTEXT *) NewMenuEntry->VariableContext;
NewTerminalContext = (BM_TERMINAL_CONTEXT *)NewMenuEntry->VariableContext;
CopyMem (
&NewTerminalContext->BaudRate,
&Uart->BaudRate,
@@ -666,15 +675,15 @@ UpdateComAttributeFromVariable (
sizeof (UINT8)
);
SerialNode = NewTerminalContext->DevicePath;
SerialNode = NextDevicePathNode (SerialNode);
SerialNode = NewTerminalContext->DevicePath;
SerialNode = NextDevicePathNode (SerialNode);
while (!IsDevicePathEnd (SerialNode)) {
if ((DevicePathType (SerialNode) == MESSAGING_DEVICE_PATH) && (DevicePathSubType (SerialNode) == MSG_UART_DP)) {
//
// Update following device paths according to
// previous acquired uart attributes
//
Uart1 = (UART_DEVICE_PATH *) SerialNode;
Uart1 = (UART_DEVICE_PATH *)SerialNode;
CopyMem (
&Uart1->BaudRate,
&NewTerminalContext->BaudRate,
@@ -702,6 +711,7 @@ UpdateComAttributeFromVariable (
SerialNode = NextDevicePathNode (SerialNode);
}
//
// end while
//
@@ -709,6 +719,7 @@ UpdateComAttributeFromVariable (
Node = NextDevicePathNode (Node);
}
//
// end while
//
@@ -734,7 +745,7 @@ UpdateComAttributeFromVariable (
**/
EFI_STATUS
GetConsoleMenu (
IN UINTN ConsoleMenuType
IN UINTN ConsoleMenuType
)
{
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
@@ -755,26 +766,26 @@ GetConsoleMenu (
AllDevicePath = NULL;
AllCount = 0;
switch (ConsoleMenuType) {
case BM_CONSOLE_IN_CONTEXT_SELECT:
ConsoleMenu = &ConsoleInpMenu;
GetEfiGlobalVariable2 (L"ConIn", (VOID**)&DevicePath, NULL);
GetEfiGlobalVariable2 (L"ConInDev", (VOID**)&AllDevicePath, NULL);
break;
case BM_CONSOLE_IN_CONTEXT_SELECT:
ConsoleMenu = &ConsoleInpMenu;
GetEfiGlobalVariable2 (L"ConIn", (VOID **)&DevicePath, NULL);
GetEfiGlobalVariable2 (L"ConInDev", (VOID **)&AllDevicePath, NULL);
break;
case BM_CONSOLE_OUT_CONTEXT_SELECT:
ConsoleMenu = &ConsoleOutMenu;
GetEfiGlobalVariable2 (L"ConOut", (VOID**)&DevicePath, NULL);
GetEfiGlobalVariable2 (L"ConOutDev", (VOID**)&AllDevicePath, NULL);
break;
case BM_CONSOLE_OUT_CONTEXT_SELECT:
ConsoleMenu = &ConsoleOutMenu;
GetEfiGlobalVariable2 (L"ConOut", (VOID **)&DevicePath, NULL);
GetEfiGlobalVariable2 (L"ConOutDev", (VOID **)&AllDevicePath, NULL);
break;
case BM_CONSOLE_ERR_CONTEXT_SELECT:
ConsoleMenu = &ConsoleErrMenu;
GetEfiGlobalVariable2 (L"ErrOut", (VOID**)&DevicePath, NULL);
GetEfiGlobalVariable2 (L"ErrOutDev", (VOID**)&AllDevicePath, NULL);
break;
case BM_CONSOLE_ERR_CONTEXT_SELECT:
ConsoleMenu = &ConsoleErrMenu;
GetEfiGlobalVariable2 (L"ErrOut", (VOID **)&DevicePath, NULL);
GetEfiGlobalVariable2 (L"ErrOutDev", (VOID **)&AllDevicePath, NULL);
break;
default:
return EFI_UNSUPPORTED;
default:
return EFI_UNSUPPORTED;
}
if (NULL == AllDevicePath) {
@@ -791,19 +802,19 @@ GetConsoleMenu (
MultiDevicePath = AllDevicePath;
Index2 = 0;
for (Index = 0; Index < AllCount; Index++) {
DevicePathInst = GetNextDevicePathInstance (&MultiDevicePath, &Size);
DevicePathInst = GetNextDevicePathInstance (&MultiDevicePath, &Size);
NewMenuEntry = BOpt_CreateMenuEntry (BM_CONSOLE_CONTEXT_SELECT);
NewMenuEntry = BOpt_CreateMenuEntry (BM_CONSOLE_CONTEXT_SELECT);
if (NULL == NewMenuEntry) {
return EFI_OUT_OF_RESOURCES;
}
NewConsoleContext = (BM_CONSOLE_CONTEXT *) NewMenuEntry->VariableContext;
NewMenuEntry->OptionNumber = Index2;
NewConsoleContext = (BM_CONSOLE_CONTEXT *)NewMenuEntry->VariableContext;
NewMenuEntry->OptionNumber = Index2;
NewConsoleContext->DevicePath = DuplicateDevicePath (DevicePathInst);
ASSERT (NewConsoleContext->DevicePath != NULL);
NewMenuEntry->DisplayString = EfiLibStrFromDatahub (NewConsoleContext->DevicePath);
NewMenuEntry->DisplayString = EfiLibStrFromDatahub (NewConsoleContext->DevicePath);
if (NULL == NewMenuEntry->DisplayString) {
NewMenuEntry->DisplayString = UiDevicePathToStr (NewConsoleContext->DevicePath);
}
@@ -887,9 +898,9 @@ FreeAllConsoles (
**/
BOOLEAN
IsTerminalDevicePath (
IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
OUT TYPE_OF_TERMINAL *Termi,
OUT UINTN *Com
IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
OUT TYPE_OF_TERMINAL *Termi,
OUT UINTN *Com
)
{
BOOLEAN IsTerminal;
@@ -908,24 +919,25 @@ IsTerminalDevicePath (
//
// Vendor points to the node before the End node
//
Vendor = (VENDOR_DEVICE_PATH *) Node;
Vendor = (VENDOR_DEVICE_PATH *)Node;
if ((DevicePathType (Node) == MESSAGING_DEVICE_PATH) && (DevicePathSubType (Node) == MSG_UART_DP)) {
Uart = (UART_DEVICE_PATH *) Node;
Uart = (UART_DEVICE_PATH *)Node;
}
if (Uart == NULL) {
//
// Acpi points to the node before the UART node
//
Acpi = (ACPI_HID_DEVICE_PATH *) Node;
Acpi = (ACPI_HID_DEVICE_PATH *)Node;
}
}
if (Vendor == NULL ||
DevicePathType (Vendor) != MESSAGING_DEVICE_PATH ||
DevicePathSubType (Vendor) != MSG_VENDOR_DP ||
Uart == NULL) {
if ((Vendor == NULL) ||
(DevicePathType (Vendor) != MESSAGING_DEVICE_PATH) ||
(DevicePathSubType (Vendor) != MSG_VENDOR_DP) ||
(Uart == NULL))
{
return FALSE;
}
@@ -936,7 +948,7 @@ IsTerminalDevicePath (
//
for (Index = 0; Index < ARRAY_SIZE (TerminalTypeGuid); Index++) {
if (CompareGuid (&Vendor->Guid, &TerminalTypeGuid[Index])) {
*Termi = Index;
*Termi = Index;
IsTerminal = TRUE;
break;
}
@@ -966,28 +978,28 @@ IsTerminalDevicePath (
**/
VOID
GetConsoleOutMode (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
)
{
UINTN Col;
UINTN Row;
UINTN CurrentCol;
UINTN CurrentRow;
UINTN Mode;
UINTN MaxMode;
EFI_STATUS Status;
UINTN Col;
UINTN Row;
UINTN CurrentCol;
UINTN CurrentRow;
UINTN Mode;
UINTN MaxMode;
EFI_STATUS Status;
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *ConOut;
ConOut = gST->ConOut;
MaxMode = (UINTN) (ConOut->Mode->MaxMode);
ConOut = gST->ConOut;
MaxMode = (UINTN)(ConOut->Mode->MaxMode);
CurrentCol = PcdGet32 (PcdSetupConOutColumn);
CurrentRow = PcdGet32 (PcdSetupConOutRow);
for (Mode = 0; Mode < MaxMode; Mode++) {
Status = ConOut->QueryMode (ConOut, Mode, &Col, &Row);
if (!EFI_ERROR(Status)) {
if (CurrentCol == Col && CurrentRow == Row) {
CallbackData->BmmFakeNvData.ConsoleOutMode = (UINT16) Mode;
if (!EFI_ERROR (Status)) {
if ((CurrentCol == Col) && (CurrentRow == Row)) {
CallbackData->BmmFakeNvData.ConsoleOutMode = (UINT16)Mode;
break;
}
}
@@ -1004,28 +1016,29 @@ GetConsoleOutMode (
**/
VOID
GetConsoleInCheck (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
)
{
UINT16 Index;
BM_MENU_ENTRY *NewMenuEntry;
UINT8 *ConInCheck;
BM_CONSOLE_CONTEXT *NewConsoleContext;
BM_TERMINAL_CONTEXT *NewTerminalContext;
UINT16 Index;
BM_MENU_ENTRY *NewMenuEntry;
UINT8 *ConInCheck;
BM_CONSOLE_CONTEXT *NewConsoleContext;
BM_TERMINAL_CONTEXT *NewTerminalContext;
ASSERT (CallbackData != NULL);
ConInCheck = &CallbackData->BmmFakeNvData.ConsoleInCheck[0];
for (Index = 0; ((Index < ConsoleInpMenu.MenuNumber) && \
(Index < MAX_MENU_NUMBER)) ; Index++) {
(Index < MAX_MENU_NUMBER)); Index++)
{
NewMenuEntry = BOpt_GetMenuEntry (&ConsoleInpMenu, Index);
NewConsoleContext = (BM_CONSOLE_CONTEXT *) NewMenuEntry->VariableContext;
NewConsoleContext = (BM_CONSOLE_CONTEXT *)NewMenuEntry->VariableContext;
ConInCheck[Index] = NewConsoleContext->IsActive;
}
for (Index = 0; Index < TerminalMenu.MenuNumber; Index++) {
NewMenuEntry = BOpt_GetMenuEntry (&TerminalMenu, Index);
NewTerminalContext = (BM_TERMINAL_CONTEXT *) NewMenuEntry->VariableContext;
NewMenuEntry = BOpt_GetMenuEntry (&TerminalMenu, Index);
NewTerminalContext = (BM_TERMINAL_CONTEXT *)NewMenuEntry->VariableContext;
ASSERT (Index + ConsoleInpMenu.MenuNumber < MAX_MENU_NUMBER);
ConInCheck[Index + ConsoleInpMenu.MenuNumber] = NewTerminalContext->IsConIn;
}
@@ -1041,27 +1054,28 @@ GetConsoleInCheck (
**/
VOID
GetConsoleOutCheck (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
)
{
UINT16 Index;
BM_MENU_ENTRY *NewMenuEntry;
UINT8 *ConOutCheck;
BM_CONSOLE_CONTEXT *NewConsoleContext;
BM_TERMINAL_CONTEXT *NewTerminalContext;
UINT16 Index;
BM_MENU_ENTRY *NewMenuEntry;
UINT8 *ConOutCheck;
BM_CONSOLE_CONTEXT *NewConsoleContext;
BM_TERMINAL_CONTEXT *NewTerminalContext;
ASSERT (CallbackData != NULL);
ConOutCheck = &CallbackData->BmmFakeNvData.ConsoleOutCheck[0];
for (Index = 0; ((Index < ConsoleOutMenu.MenuNumber) && \
(Index < MAX_MENU_NUMBER)) ; Index++) {
NewMenuEntry = BOpt_GetMenuEntry (&ConsoleOutMenu, Index);
NewConsoleContext = (BM_CONSOLE_CONTEXT *) NewMenuEntry->VariableContext;
(Index < MAX_MENU_NUMBER)); Index++)
{
NewMenuEntry = BOpt_GetMenuEntry (&ConsoleOutMenu, Index);
NewConsoleContext = (BM_CONSOLE_CONTEXT *)NewMenuEntry->VariableContext;
ConOutCheck[Index] = NewConsoleContext->IsActive;
}
for (Index = 0; Index < TerminalMenu.MenuNumber; Index++) {
NewMenuEntry = BOpt_GetMenuEntry (&TerminalMenu, Index);
NewTerminalContext = (BM_TERMINAL_CONTEXT *) NewMenuEntry->VariableContext;
NewMenuEntry = BOpt_GetMenuEntry (&TerminalMenu, Index);
NewTerminalContext = (BM_TERMINAL_CONTEXT *)NewMenuEntry->VariableContext;
ASSERT (Index + ConsoleOutMenu.MenuNumber < MAX_MENU_NUMBER);
ConOutCheck[Index + ConsoleOutMenu.MenuNumber] = NewTerminalContext->IsConOut;
}
@@ -1077,27 +1091,28 @@ GetConsoleOutCheck (
**/
VOID
GetConsoleErrCheck (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
)
{
UINT16 Index;
BM_MENU_ENTRY *NewMenuEntry;
UINT8 *ConErrCheck;
BM_CONSOLE_CONTEXT *NewConsoleContext;
BM_TERMINAL_CONTEXT *NewTerminalContext;
UINT16 Index;
BM_MENU_ENTRY *NewMenuEntry;
UINT8 *ConErrCheck;
BM_CONSOLE_CONTEXT *NewConsoleContext;
BM_TERMINAL_CONTEXT *NewTerminalContext;
ASSERT (CallbackData != NULL);
ConErrCheck = &CallbackData->BmmFakeNvData.ConsoleErrCheck[0];
for (Index = 0; ((Index < ConsoleErrMenu.MenuNumber) && \
(Index < MAX_MENU_NUMBER)) ; Index++) {
NewMenuEntry = BOpt_GetMenuEntry (&ConsoleErrMenu, Index);
NewConsoleContext = (BM_CONSOLE_CONTEXT *) NewMenuEntry->VariableContext;
(Index < MAX_MENU_NUMBER)); Index++)
{
NewMenuEntry = BOpt_GetMenuEntry (&ConsoleErrMenu, Index);
NewConsoleContext = (BM_CONSOLE_CONTEXT *)NewMenuEntry->VariableContext;
ConErrCheck[Index] = NewConsoleContext->IsActive;
}
for (Index = 0; Index < TerminalMenu.MenuNumber; Index++) {
NewMenuEntry = BOpt_GetMenuEntry (&TerminalMenu, Index);
NewTerminalContext = (BM_TERMINAL_CONTEXT *) NewMenuEntry->VariableContext;
NewMenuEntry = BOpt_GetMenuEntry (&TerminalMenu, Index);
NewTerminalContext = (BM_TERMINAL_CONTEXT *)NewMenuEntry->VariableContext;
ASSERT (Index + ConsoleErrMenu.MenuNumber < MAX_MENU_NUMBER);
ConErrCheck[Index + ConsoleErrMenu.MenuNumber] = NewTerminalContext->IsStdErr;
}
@@ -1113,7 +1128,7 @@ GetConsoleErrCheck (
**/
VOID
GetTerminalAttribute (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
)
{
BMM_FAKE_NV_DATA *CurrentFakeNVMap;
@@ -1126,35 +1141,38 @@ GetTerminalAttribute (
CurrentFakeNVMap = &CallbackData->BmmFakeNvData;
for (TerminalIndex = 0; ((TerminalIndex < TerminalMenu.MenuNumber) && \
(TerminalIndex < MAX_MENU_NUMBER)); TerminalIndex++) {
NewMenuEntry = BOpt_GetMenuEntry (&TerminalMenu, TerminalIndex);
NewTerminalContext = (BM_TERMINAL_CONTEXT *) NewMenuEntry->VariableContext;
for (AttributeIndex = 0; AttributeIndex < sizeof (BaudRateList) / sizeof (BaudRateList [0]); AttributeIndex++) {
if (NewTerminalContext->BaudRate == (UINT64) (BaudRateList[AttributeIndex].Value)) {
(TerminalIndex < MAX_MENU_NUMBER)); TerminalIndex++)
{
NewMenuEntry = BOpt_GetMenuEntry (&TerminalMenu, TerminalIndex);
NewTerminalContext = (BM_TERMINAL_CONTEXT *)NewMenuEntry->VariableContext;
for (AttributeIndex = 0; AttributeIndex < sizeof (BaudRateList) / sizeof (BaudRateList[0]); AttributeIndex++) {
if (NewTerminalContext->BaudRate == (UINT64)(BaudRateList[AttributeIndex].Value)) {
NewTerminalContext->BaudRateIndex = AttributeIndex;
break;
}
}
for (AttributeIndex = 0; AttributeIndex < ARRAY_SIZE (DataBitsList); AttributeIndex++) {
if (NewTerminalContext->DataBits == (UINT64) (DataBitsList[AttributeIndex].Value)) {
if (NewTerminalContext->DataBits == (UINT64)(DataBitsList[AttributeIndex].Value)) {
NewTerminalContext->DataBitsIndex = AttributeIndex;
break;
}
}
for (AttributeIndex = 0; AttributeIndex < ARRAY_SIZE (ParityList); AttributeIndex++) {
if (NewTerminalContext->Parity == (UINT64) (ParityList[AttributeIndex].Value)) {
if (NewTerminalContext->Parity == (UINT64)(ParityList[AttributeIndex].Value)) {
NewTerminalContext->ParityIndex = AttributeIndex;
break;
}
}
for (AttributeIndex = 0; AttributeIndex < ARRAY_SIZE (StopBitsList); AttributeIndex++) {
if (NewTerminalContext->StopBits == (UINT64) (StopBitsList[AttributeIndex].Value)) {
if (NewTerminalContext->StopBits == (UINT64)(StopBitsList[AttributeIndex].Value)) {
NewTerminalContext->StopBitsIndex = AttributeIndex;
break;
}
}
CurrentFakeNVMap->COMBaudRate[TerminalIndex] = NewTerminalContext->BaudRateIndex;
CurrentFakeNVMap->COMDataRate[TerminalIndex] = NewTerminalContext->DataBitsIndex;
CurrentFakeNVMap->COMStopBits[TerminalIndex] = NewTerminalContext->StopBitsIndex;
@@ -1163,4 +1181,3 @@ GetTerminalAttribute (
CurrentFakeNVMap->COMFlowControl[TerminalIndex] = NewTerminalContext->FlowControl;
}
}

View File

@@ -9,34 +9,34 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include "BootMaintenanceManager.h"
VOID *mStartOpCodeHandle = NULL;
VOID *mEndOpCodeHandle = NULL;
EFI_IFR_GUID_LABEL *mStartLabel = NULL;
EFI_IFR_GUID_LABEL *mEndLabel = NULL;
VOID *mEndOpCodeHandle = NULL;
EFI_IFR_GUID_LABEL *mStartLabel = NULL;
EFI_IFR_GUID_LABEL *mEndLabel = NULL;
///
/// Terminal type string token storage
///
UINT16 TerminalType[9] = {
STRING_TOKEN(STR_COM_TYPE_0),
STRING_TOKEN(STR_COM_TYPE_1),
STRING_TOKEN(STR_COM_TYPE_2),
STRING_TOKEN(STR_COM_TYPE_3),
STRING_TOKEN(STR_COM_TYPE_4),
STRING_TOKEN(STR_COM_TYPE_5),
STRING_TOKEN(STR_COM_TYPE_6),
STRING_TOKEN(STR_COM_TYPE_7),
STRING_TOKEN(STR_COM_TYPE_8),
UINT16 TerminalType[9] = {
STRING_TOKEN (STR_COM_TYPE_0),
STRING_TOKEN (STR_COM_TYPE_1),
STRING_TOKEN (STR_COM_TYPE_2),
STRING_TOKEN (STR_COM_TYPE_3),
STRING_TOKEN (STR_COM_TYPE_4),
STRING_TOKEN (STR_COM_TYPE_5),
STRING_TOKEN (STR_COM_TYPE_6),
STRING_TOKEN (STR_COM_TYPE_7),
STRING_TOKEN (STR_COM_TYPE_8),
};
///
/// Flow Control type string token storage
///
UINT16 mFlowControlType[2] = {
STRING_TOKEN(STR_NONE_FLOW_CONTROL),
STRING_TOKEN(STR_HARDWARE_FLOW_CONTROL)
UINT16 mFlowControlType[2] = {
STRING_TOKEN (STR_NONE_FLOW_CONTROL),
STRING_TOKEN (STR_HARDWARE_FLOW_CONTROL)
};
UINT32 mFlowControlValue[2] = {
UINT32 mFlowControlValue[2] = {
0,
UART_FLOW_CONTROL_HARDWARE
};
@@ -44,215 +44,215 @@ UINT32 mFlowControlValue[2] = {
///
/// Console Input Device Selection Menu
///
BM_MENU_OPTION ConsoleInpMenu = {
BM_MENU_OPTION ConsoleInpMenu = {
BM_MENU_OPTION_SIGNATURE,
{NULL},
{ NULL },
0
};
///
/// Console Output Device Selection Menu
///
BM_MENU_OPTION ConsoleOutMenu = {
BM_MENU_OPTION ConsoleOutMenu = {
BM_MENU_OPTION_SIGNATURE,
{NULL},
{ NULL },
0
};
///
/// Error Output Device Selection Menu
///
BM_MENU_OPTION ConsoleErrMenu = {
BM_MENU_OPTION ConsoleErrMenu = {
BM_MENU_OPTION_SIGNATURE,
{NULL},
{ NULL },
0
};
///
/// Boot Option from variable Menu
///
BM_MENU_OPTION BootOptionMenu = {
BM_MENU_OPTION BootOptionMenu = {
BM_MENU_OPTION_SIGNATURE,
{NULL},
{ NULL },
0
};
///
/// Driver Option from variable menu
///
BM_MENU_OPTION DriverOptionMenu = {
BM_MENU_OPTION DriverOptionMenu = {
BM_MENU_OPTION_SIGNATURE,
{NULL},
{ NULL },
0
};
///
/// Handles in current system selection menu
///
BM_MENU_OPTION DriverMenu = {
BM_MENU_OPTION DriverMenu = {
BM_MENU_OPTION_SIGNATURE,
{NULL},
{ NULL },
0
};
BM_MENU_OPTION TerminalMenu = {
BM_MENU_OPTION TerminalMenu = {
BM_MENU_OPTION_SIGNATURE,
{NULL},
{ NULL },
0
};
///
/// Value and string token correspondency for BaudRate
///
COM_ATTR BaudRateList[19] = {
COM_ATTR BaudRateList[19] = {
{
115200,
STRING_TOKEN(STR_COM_BAUD_RATE_0)
STRING_TOKEN (STR_COM_BAUD_RATE_0)
},
{
57600,
STRING_TOKEN(STR_COM_BAUD_RATE_1)
STRING_TOKEN (STR_COM_BAUD_RATE_1)
},
{
38400,
STRING_TOKEN(STR_COM_BAUD_RATE_2)
STRING_TOKEN (STR_COM_BAUD_RATE_2)
},
{
19200,
STRING_TOKEN(STR_COM_BAUD_RATE_3)
STRING_TOKEN (STR_COM_BAUD_RATE_3)
},
{
9600,
STRING_TOKEN(STR_COM_BAUD_RATE_4)
STRING_TOKEN (STR_COM_BAUD_RATE_4)
},
{
7200,
STRING_TOKEN(STR_COM_BAUD_RATE_5)
STRING_TOKEN (STR_COM_BAUD_RATE_5)
},
{
4800,
STRING_TOKEN(STR_COM_BAUD_RATE_6)
STRING_TOKEN (STR_COM_BAUD_RATE_6)
},
{
3600,
STRING_TOKEN(STR_COM_BAUD_RATE_7)
STRING_TOKEN (STR_COM_BAUD_RATE_7)
},
{
2400,
STRING_TOKEN(STR_COM_BAUD_RATE_8)
STRING_TOKEN (STR_COM_BAUD_RATE_8)
},
{
2000,
STRING_TOKEN(STR_COM_BAUD_RATE_9)
STRING_TOKEN (STR_COM_BAUD_RATE_9)
},
{
1800,
STRING_TOKEN(STR_COM_BAUD_RATE_10)
STRING_TOKEN (STR_COM_BAUD_RATE_10)
},
{
1200,
STRING_TOKEN(STR_COM_BAUD_RATE_11)
STRING_TOKEN (STR_COM_BAUD_RATE_11)
},
{
600,
STRING_TOKEN(STR_COM_BAUD_RATE_12)
STRING_TOKEN (STR_COM_BAUD_RATE_12)
},
{
300,
STRING_TOKEN(STR_COM_BAUD_RATE_13)
STRING_TOKEN (STR_COM_BAUD_RATE_13)
},
{
150,
STRING_TOKEN(STR_COM_BAUD_RATE_14)
STRING_TOKEN (STR_COM_BAUD_RATE_14)
},
{
134,
STRING_TOKEN(STR_COM_BAUD_RATE_15)
STRING_TOKEN (STR_COM_BAUD_RATE_15)
},
{
110,
STRING_TOKEN(STR_COM_BAUD_RATE_16)
STRING_TOKEN (STR_COM_BAUD_RATE_16)
},
{
75,
STRING_TOKEN(STR_COM_BAUD_RATE_17)
STRING_TOKEN (STR_COM_BAUD_RATE_17)
},
{
50,
STRING_TOKEN(STR_COM_BAUD_RATE_18)
STRING_TOKEN (STR_COM_BAUD_RATE_18)
}
};
///
/// Value and string token correspondency for DataBits
///
COM_ATTR DataBitsList[4] = {
COM_ATTR DataBitsList[4] = {
{
5,
STRING_TOKEN(STR_COM_DATA_BITS_0)
STRING_TOKEN (STR_COM_DATA_BITS_0)
},
{
6,
STRING_TOKEN(STR_COM_DATA_BITS_1)
STRING_TOKEN (STR_COM_DATA_BITS_1)
},
{
7,
STRING_TOKEN(STR_COM_DATA_BITS_2)
STRING_TOKEN (STR_COM_DATA_BITS_2)
},
{
8,
STRING_TOKEN(STR_COM_DATA_BITS_3)
STRING_TOKEN (STR_COM_DATA_BITS_3)
}
};
///
/// Value and string token correspondency for Parity
///
COM_ATTR ParityList[5] = {
COM_ATTR ParityList[5] = {
{
NoParity,
STRING_TOKEN(STR_COM_PAR_0)
STRING_TOKEN (STR_COM_PAR_0)
},
{
EvenParity,
STRING_TOKEN(STR_COM_PAR_1)
STRING_TOKEN (STR_COM_PAR_1)
},
{
OddParity,
STRING_TOKEN(STR_COM_PAR_2)
STRING_TOKEN (STR_COM_PAR_2)
},
{
MarkParity,
STRING_TOKEN(STR_COM_PAR_3)
STRING_TOKEN (STR_COM_PAR_3)
},
{
SpaceParity,
STRING_TOKEN(STR_COM_PAR_4)
STRING_TOKEN (STR_COM_PAR_4)
}
};
///
/// Value and string token correspondency for Baudreate
///
COM_ATTR StopBitsList[3] = {
COM_ATTR StopBitsList[3] = {
{
OneStopBit,
STRING_TOKEN(STR_COM_STOP_BITS_0)
STRING_TOKEN (STR_COM_STOP_BITS_0)
},
{
OneFiveStopBits,
STRING_TOKEN(STR_COM_STOP_BITS_1)
STRING_TOKEN (STR_COM_STOP_BITS_1)
},
{
TwoStopBits,
STRING_TOKEN(STR_COM_STOP_BITS_2)
STRING_TOKEN (STR_COM_STOP_BITS_2)
}
};
///
/// Guid for messaging path, used in Serial port setting.
///
EFI_GUID TerminalTypeGuid[9] = {
EFI_GUID TerminalTypeGuid[9] = {
DEVICE_PATH_MESSAGING_PC_ANSI,
DEVICE_PATH_MESSAGING_VT_100,
DEVICE_PATH_MESSAGING_VT_100_PLUS,

View File

@@ -5,6 +5,7 @@ Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef _FORM_GUID_H_
#define _FORM_GUID_H_
@@ -41,50 +42,48 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#define FORM_CON_MODE_ID 0x1021
#define FORM_BOOT_FROM_FILE_ID 0x1024
#define MAXIMUM_FORM_ID 0x10FF
#define MAXIMUM_FORM_ID 0x10FF
#define KEY_VALUE_COM_SET_BAUD_RATE 0x1101
#define KEY_VALUE_COM_SET_DATA_BITS 0x1102
#define KEY_VALUE_COM_SET_STOP_BITS 0x1103
#define KEY_VALUE_COM_SET_PARITY 0x1104
#define KEY_VALUE_COM_SET_TERMI_TYPE 0x1105
#define KEY_VALUE_MAIN_BOOT_NEXT 0x1106
#define KEY_VALUE_BOOT_ADD_DESC_DATA 0x1107
#define KEY_VALUE_BOOT_ADD_OPT_DATA 0x1108
#define KEY_VALUE_DRIVER_ADD_DESC_DATA 0x1109
#define KEY_VALUE_DRIVER_ADD_OPT_DATA 0x110A
#define KEY_VALUE_SAVE_AND_EXIT 0x110B
#define KEY_VALUE_NO_SAVE_AND_EXIT 0x110C
#define KEY_VALUE_BOOT_FROM_FILE 0x110D
#define FORM_RESET 0x110E
#define KEY_VALUE_BOOT_DESCRIPTION 0x110F
#define KEY_VALUE_BOOT_OPTION 0x1110
#define KEY_VALUE_DRIVER_DESCRIPTION 0x1111
#define KEY_VALUE_DRIVER_OPTION 0x1112
#define KEY_VALUE_SAVE_AND_EXIT_BOOT 0x1113
#define KEY_VALUE_NO_SAVE_AND_EXIT_BOOT 0x1114
#define KEY_VALUE_SAVE_AND_EXIT_DRIVER 0x1115
#define KEY_VALUE_NO_SAVE_AND_EXIT_DRIVER 0x1116
#define KEY_VALUE_TRIGGER_FORM_OPEN_ACTION 0x1117
#define KEY_VALUE_COM_SET_BAUD_RATE 0x1101
#define KEY_VALUE_COM_SET_DATA_BITS 0x1102
#define KEY_VALUE_COM_SET_STOP_BITS 0x1103
#define KEY_VALUE_COM_SET_PARITY 0x1104
#define KEY_VALUE_COM_SET_TERMI_TYPE 0x1105
#define KEY_VALUE_MAIN_BOOT_NEXT 0x1106
#define KEY_VALUE_BOOT_ADD_DESC_DATA 0x1107
#define KEY_VALUE_BOOT_ADD_OPT_DATA 0x1108
#define KEY_VALUE_DRIVER_ADD_DESC_DATA 0x1109
#define KEY_VALUE_DRIVER_ADD_OPT_DATA 0x110A
#define KEY_VALUE_SAVE_AND_EXIT 0x110B
#define KEY_VALUE_NO_SAVE_AND_EXIT 0x110C
#define KEY_VALUE_BOOT_FROM_FILE 0x110D
#define FORM_RESET 0x110E
#define KEY_VALUE_BOOT_DESCRIPTION 0x110F
#define KEY_VALUE_BOOT_OPTION 0x1110
#define KEY_VALUE_DRIVER_DESCRIPTION 0x1111
#define KEY_VALUE_DRIVER_OPTION 0x1112
#define KEY_VALUE_SAVE_AND_EXIT_BOOT 0x1113
#define KEY_VALUE_NO_SAVE_AND_EXIT_BOOT 0x1114
#define KEY_VALUE_SAVE_AND_EXIT_DRIVER 0x1115
#define KEY_VALUE_NO_SAVE_AND_EXIT_DRIVER 0x1116
#define KEY_VALUE_TRIGGER_FORM_OPEN_ACTION 0x1117
#define MAXIMUM_NORMAL_KEY_VALUE 0x11FF
#define MAXIMUM_NORMAL_KEY_VALUE 0x11FF
//
// Varstore ID defined for Buffer Storage
//
#define VARSTORE_ID_BOOT_MAINT 0x1000
#define VARSTORE_ID_BOOT_MAINT 0x1000
//
// End Label
//
#define LABEL_FORM_MAIN_START 0xfffc
#define LABEL_FORM_MAIN_END 0xfffd
#define LABEL_BMM_PLATFORM_INFORMATION 0xfffe
#define LABEL_END 0xffff
#define MAX_MENU_NUMBER 100
#define LABEL_FORM_MAIN_START 0xfffc
#define LABEL_FORM_MAIN_END 0xfffd
#define LABEL_BMM_PLATFORM_INFORMATION 0xfffe
#define LABEL_END 0xffff
#define MAX_MENU_NUMBER 100
///
/// This is the structure that will be used to store the
@@ -99,81 +98,81 @@ typedef struct {
// Three questions displayed at the main page
// for Timeout, BootNext, Variables respectively
//
UINT16 BootTimeOut;
UINT32 BootNext;
UINT16 BootTimeOut;
UINT32 BootNext;
//
// This is the COM1 Attributes value storage
//
UINT8 COM1BaudRate;
UINT8 COM1DataRate;
UINT8 COM1StopBits;
UINT8 COM1Parity;
UINT8 COM1TerminalType;
UINT8 COM1BaudRate;
UINT8 COM1DataRate;
UINT8 COM1StopBits;
UINT8 COM1Parity;
UINT8 COM1TerminalType;
//
// This is the COM2 Attributes value storage
//
UINT8 COM2BaudRate;
UINT8 COM2DataRate;
UINT8 COM2StopBits;
UINT8 COM2Parity;
UINT8 COM2TerminalType;
UINT8 COM2BaudRate;
UINT8 COM2DataRate;
UINT8 COM2StopBits;
UINT8 COM2Parity;
UINT8 COM2TerminalType;
//
// Driver Option Add Handle page storage
//
UINT16 DriverAddHandleDesc[MAX_MENU_NUMBER];
UINT16 DriverAddHandleOptionalData[MAX_MENU_NUMBER];
UINT8 DriverAddActive;
UINT8 DriverAddForceReconnect;
UINT16 DriverAddHandleDesc[MAX_MENU_NUMBER];
UINT16 DriverAddHandleOptionalData[MAX_MENU_NUMBER];
UINT8 DriverAddActive;
UINT8 DriverAddForceReconnect;
//
// Console Input/Output/Errorout using COM port check storage
//
UINT8 ConsoleInputCOM1;
UINT8 ConsoleInputCOM2;
UINT8 ConsoleOutputCOM1;
UINT8 ConsoleOutputCOM2;
UINT8 ConsoleErrorCOM1;
UINT8 ConsoleErrorCOM2;
UINT8 ConsoleInputCOM1;
UINT8 ConsoleInputCOM2;
UINT8 ConsoleOutputCOM1;
UINT8 ConsoleOutputCOM2;
UINT8 ConsoleErrorCOM1;
UINT8 ConsoleErrorCOM2;
//
// At most 100 input/output/errorout device for console storage
//
UINT8 ConsoleCheck[MAX_MENU_NUMBER];
UINT8 ConsoleCheck[MAX_MENU_NUMBER];
//
// At most 100 input/output/errorout device for console storage
//
UINT8 ConsoleInCheck[MAX_MENU_NUMBER];
UINT8 ConsoleOutCheck[MAX_MENU_NUMBER];
UINT8 ConsoleErrCheck[MAX_MENU_NUMBER];
UINT8 ConsoleInCheck[MAX_MENU_NUMBER];
UINT8 ConsoleOutCheck[MAX_MENU_NUMBER];
UINT8 ConsoleErrCheck[MAX_MENU_NUMBER];
//
// Boot or Driver Option Order storage
// The value is the OptionNumber+1 because the order list value cannot be 0
// Use UINT32 to hold the potential value 0xFFFF+1=0x10000
//
UINT32 BootOptionOrder[MAX_MENU_NUMBER];
UINT32 DriverOptionOrder[MAX_MENU_NUMBER];
UINT32 BootOptionOrder[MAX_MENU_NUMBER];
UINT32 DriverOptionOrder[MAX_MENU_NUMBER];
//
// Boot or Driver Option Delete storage
//
BOOLEAN BootOptionDel[MAX_MENU_NUMBER];
BOOLEAN DriverOptionDel[MAX_MENU_NUMBER];
BOOLEAN BootOptionDelMark[MAX_MENU_NUMBER];
BOOLEAN DriverOptionDelMark[MAX_MENU_NUMBER];
BOOLEAN BootOptionDel[MAX_MENU_NUMBER];
BOOLEAN DriverOptionDel[MAX_MENU_NUMBER];
BOOLEAN BootOptionDelMark[MAX_MENU_NUMBER];
BOOLEAN DriverOptionDelMark[MAX_MENU_NUMBER];
//
// This is the Terminal Attributes value storage
//
UINT8 COMBaudRate[MAX_MENU_NUMBER];
UINT8 COMDataRate[MAX_MENU_NUMBER];
UINT8 COMStopBits[MAX_MENU_NUMBER];
UINT8 COMParity[MAX_MENU_NUMBER];
UINT8 COMTerminalType[MAX_MENU_NUMBER];
UINT8 COMFlowControl[MAX_MENU_NUMBER];
UINT8 COMBaudRate[MAX_MENU_NUMBER];
UINT8 COMDataRate[MAX_MENU_NUMBER];
UINT8 COMStopBits[MAX_MENU_NUMBER];
UINT8 COMParity[MAX_MENU_NUMBER];
UINT8 COMTerminalType[MAX_MENU_NUMBER];
UINT8 COMFlowControl[MAX_MENU_NUMBER];
//
// We use DisableMap array to record the enable/disable state of each boot device
@@ -181,26 +180,25 @@ typedef struct {
// the most left one stands for BBS table item 0, and the most right one stands for item 256
// If the bit is 1, it means the boot device has been disabled.
//
UINT8 DisableMap[32];
UINT8 DisableMap[32];
//
// Console Output Text Mode
//
UINT16 ConsoleOutMode;
UINT16 ConsoleOutMode;
//
// UINT16 PadArea[10];
//
UINT16 BootDescriptionData[MAX_MENU_NUMBER];
UINT16 BootOptionalData[127];
UINT16 DriverDescriptionData[MAX_MENU_NUMBER];
UINT16 DriverOptionalData[127];
BOOLEAN BootOptionChanged;
BOOLEAN DriverOptionChanged;
UINT8 Active;
UINT8 ForceReconnect;
UINT16 BootDescriptionData[MAX_MENU_NUMBER];
UINT16 BootOptionalData[127];
UINT16 DriverDescriptionData[MAX_MENU_NUMBER];
UINT16 DriverOptionalData[127];
BOOLEAN BootOptionChanged;
BOOLEAN DriverOptionChanged;
UINT8 Active;
UINT8 ForceReconnect;
} BMM_FAKE_NV_DATA;
#endif

View File

@@ -29,13 +29,13 @@ CreateUpdateData (
//
// Create Hii Extend Label OpCode as the start opcode
//
mStartLabel = (EFI_IFR_GUID_LABEL *) HiiCreateGuidOpCode (mStartOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));
mStartLabel = (EFI_IFR_GUID_LABEL *)HiiCreateGuidOpCode (mStartOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));
mStartLabel->ExtendOpCode = EFI_IFR_EXTEND_OP_LABEL;
//
// Create Hii Extend Label OpCode as the end opcode
//
mEndLabel = (EFI_IFR_GUID_LABEL *) HiiCreateGuidOpCode (mEndOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));
mEndLabel = (EFI_IFR_GUID_LABEL *)HiiCreateGuidOpCode (mEndOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));
mEndLabel->ExtendOpCode = EFI_IFR_EXTEND_OP_LABEL;
mEndLabel->Number = LABEL_END;
}
@@ -64,9 +64,8 @@ RefreshUpdateData (
//
// Create Hii Extend Label OpCode as the start opcode
//
mStartLabel = (EFI_IFR_GUID_LABEL *) HiiCreateGuidOpCode (mStartOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));
mStartLabel = (EFI_IFR_GUID_LABEL *)HiiCreateGuidOpCode (mStartOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));
mStartLabel->ExtendOpCode = EFI_IFR_EXTEND_OP_LABEL;
}
/**
@@ -78,7 +77,7 @@ RefreshUpdateData (
**/
VOID
UpdatePageStart (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
)
{
RefreshUpdateData ();
@@ -109,7 +108,7 @@ UpdatePageStart (
**/
VOID
UpdatePageEnd (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
)
{
//
@@ -164,8 +163,8 @@ UpdatePageEnd (
**/
VOID
CleanUpPage (
IN UINT16 LabelId,
IN BMM_CALLBACK_DATA *CallbackData
IN UINT16 LabelId,
IN BMM_CALLBACK_DATA *CallbackData
)
{
RefreshUpdateData ();
@@ -191,11 +190,11 @@ CleanUpPage (
**/
VOID
UpdateConCOMPage (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
)
{
BM_MENU_ENTRY *NewMenuEntry;
UINT16 Index;
BM_MENU_ENTRY *NewMenuEntry;
UINT16 Index;
CallbackData->BmmAskSaveOrNot = TRUE;
@@ -210,14 +209,13 @@ UpdateConCOMPage (
NewMenuEntry->DisplayStringToken,
STRING_TOKEN (STR_NULL_STRING),
EFI_IFR_FLAG_CALLBACK,
(UINT16) (TERMINAL_OPTION_OFFSET + Index)
(UINT16)(TERMINAL_OPTION_OFFSET + Index)
);
}
UpdatePageEnd (CallbackData);
}
/**
Create a list of boot option from global BootOptionMenu. It
allow user to delete the boot option.
@@ -227,12 +225,12 @@ UpdateConCOMPage (
**/
VOID
UpdateBootDelPage (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
)
{
BM_MENU_ENTRY *NewMenuEntry;
BM_LOAD_CONTEXT *NewLoadContext;
UINT16 Index;
BM_MENU_ENTRY *NewMenuEntry;
BM_LOAD_CONTEXT *NewLoadContext;
UINT16 Index;
CallbackData->BmmAskSaveOrNot = TRUE;
@@ -240,8 +238,8 @@ UpdateBootDelPage (
ASSERT (BootOptionMenu.MenuNumber <= (sizeof (CallbackData->BmmFakeNvData.BootOptionDel) / sizeof (CallbackData->BmmFakeNvData.BootOptionDel[0])));
for (Index = 0; Index < BootOptionMenu.MenuNumber; Index++) {
NewMenuEntry = BOpt_GetMenuEntry (&BootOptionMenu, Index);
NewLoadContext = (BM_LOAD_CONTEXT *) NewMenuEntry->VariableContext;
NewMenuEntry = BOpt_GetMenuEntry (&BootOptionMenu, Index);
NewLoadContext = (BM_LOAD_CONTEXT *)NewMenuEntry->VariableContext;
if (NewLoadContext->IsLegacy) {
continue;
}
@@ -255,15 +253,15 @@ UpdateBootDelPage (
// deleted, browser maintains old useless info. So clear this info here, and later update this info to browser
// through HiiSetBrowserData function.
//
CallbackData->BmmFakeNvData.BootOptionDel[Index] = FALSE;
CallbackData->BmmFakeNvData.BootOptionDel[Index] = FALSE;
CallbackData->BmmOldFakeNVData.BootOptionDel[Index] = FALSE;
}
HiiCreateCheckBoxOpCode (
mStartOpCodeHandle,
(EFI_QUESTION_ID) (BOOT_OPTION_DEL_QUESTION_ID + Index),
(EFI_QUESTION_ID)(BOOT_OPTION_DEL_QUESTION_ID + Index),
VARSTORE_ID_BOOT_MAINT,
(UINT16) (BOOT_OPTION_DEL_VAR_OFFSET + Index),
(UINT16)(BOOT_OPTION_DEL_VAR_OFFSET + Index),
NewMenuEntry->DisplayStringToken,
NewMenuEntry->HelpStringToken,
EFI_IFR_FLAG_CALLBACK,
@@ -271,6 +269,7 @@ UpdateBootDelPage (
NULL
);
}
UpdatePageEnd (CallbackData);
}
@@ -282,11 +281,11 @@ UpdateBootDelPage (
**/
VOID
UpdateDrvAddHandlePage (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
)
{
BM_MENU_ENTRY *NewMenuEntry;
UINT16 Index;
BM_MENU_ENTRY *NewMenuEntry;
UINT16 Index;
CallbackData->BmmAskSaveOrNot = FALSE;
@@ -301,7 +300,7 @@ UpdateDrvAddHandlePage (
NewMenuEntry->DisplayStringToken,
STRING_TOKEN (STR_NULL_STRING),
EFI_IFR_FLAG_CALLBACK,
(UINT16) (HANDLE_OPTION_OFFSET + Index)
(UINT16)(HANDLE_OPTION_OFFSET + Index)
);
}
@@ -317,12 +316,12 @@ UpdateDrvAddHandlePage (
**/
VOID
UpdateDrvDelPage (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
)
{
BM_MENU_ENTRY *NewMenuEntry;
BM_LOAD_CONTEXT *NewLoadContext;
UINT16 Index;
BM_MENU_ENTRY *NewMenuEntry;
BM_LOAD_CONTEXT *NewLoadContext;
UINT16 Index;
CallbackData->BmmAskSaveOrNot = TRUE;
@@ -330,9 +329,9 @@ UpdateDrvDelPage (
ASSERT (DriverOptionMenu.MenuNumber <= (sizeof (CallbackData->BmmFakeNvData.DriverOptionDel) / sizeof (CallbackData->BmmFakeNvData.DriverOptionDel[0])));
for (Index = 0; Index < DriverOptionMenu.MenuNumber; Index++) {
NewMenuEntry = BOpt_GetMenuEntry (&DriverOptionMenu, Index);
NewMenuEntry = BOpt_GetMenuEntry (&DriverOptionMenu, Index);
NewLoadContext = (BM_LOAD_CONTEXT *) NewMenuEntry->VariableContext;
NewLoadContext = (BM_LOAD_CONTEXT *)NewMenuEntry->VariableContext;
NewLoadContext->Deleted = FALSE;
if (CallbackData->BmmFakeNvData.DriverOptionDel[Index] && !CallbackData->BmmFakeNvData.DriverOptionDelMark[Index]) {
@@ -342,14 +341,15 @@ UpdateDrvDelPage (
// deleted, browser maintains old useless info. So clear this info here, and later update this info to browser
// through HiiSetBrowserData function.
//
CallbackData->BmmFakeNvData.DriverOptionDel[Index] = FALSE;
CallbackData->BmmFakeNvData.DriverOptionDel[Index] = FALSE;
CallbackData->BmmOldFakeNVData.DriverOptionDel[Index] = FALSE;
}
HiiCreateCheckBoxOpCode (
mStartOpCodeHandle,
(EFI_QUESTION_ID) (DRIVER_OPTION_DEL_QUESTION_ID + Index),
(EFI_QUESTION_ID)(DRIVER_OPTION_DEL_QUESTION_ID + Index),
VARSTORE_ID_BOOT_MAINT,
(UINT16) (DRIVER_OPTION_DEL_VAR_OFFSET + Index),
(UINT16)(DRIVER_OPTION_DEL_VAR_OFFSET + Index),
NewMenuEntry->DisplayStringToken,
NewMenuEntry->HelpStringToken,
EFI_IFR_FLAG_CALLBACK,
@@ -370,15 +370,15 @@ UpdateDrvDelPage (
**/
VOID
UpdateDriverAddHandleDescPage (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
)
{
BM_MENU_ENTRY *NewMenuEntry;
BM_MENU_ENTRY *NewMenuEntry;
CallbackData->BmmFakeNvData.DriverAddActive = 0x01;
CallbackData->BmmFakeNvData.DriverAddForceReconnect = 0x00;
CallbackData->BmmAskSaveOrNot = TRUE;
NewMenuEntry = CallbackData->MenuEntry;
CallbackData->BmmFakeNvData.DriverAddActive = 0x01;
CallbackData->BmmFakeNvData.DriverAddForceReconnect = 0x00;
CallbackData->BmmAskSaveOrNot = TRUE;
NewMenuEntry = CallbackData->MenuEntry;
UpdatePageStart (CallbackData);
@@ -392,7 +392,7 @@ UpdateDriverAddHandleDescPage (
HiiCreateStringOpCode (
mStartOpCodeHandle,
(EFI_QUESTION_ID) DRV_ADD_HANDLE_DESC_QUESTION_ID,
(EFI_QUESTION_ID)DRV_ADD_HANDLE_DESC_QUESTION_ID,
VARSTORE_ID_BOOT_MAINT,
DRV_ADD_HANDLE_DESC_VAR_OFFSET,
STRING_TOKEN (STR_LOAD_OPTION_DESC),
@@ -406,7 +406,7 @@ UpdateDriverAddHandleDescPage (
HiiCreateCheckBoxOpCode (
mStartOpCodeHandle,
(EFI_QUESTION_ID) DRV_ADD_RECON_QUESTION_ID,
(EFI_QUESTION_ID)DRV_ADD_RECON_QUESTION_ID,
VARSTORE_ID_BOOT_MAINT,
DRV_ADD_RECON_VAR_OFFSET,
STRING_TOKEN (STR_LOAD_OPTION_FORCE_RECON),
@@ -418,7 +418,7 @@ UpdateDriverAddHandleDescPage (
HiiCreateStringOpCode (
mStartOpCodeHandle,
(EFI_QUESTION_ID) DRIVER_ADD_OPTION_QUESTION_ID,
(EFI_QUESTION_ID)DRIVER_ADD_OPTION_QUESTION_ID,
VARSTORE_ID_BOOT_MAINT,
DRIVER_ADD_OPTION_VAR_OFFSET,
STRING_TOKEN (STR_OPTIONAL_DATA),
@@ -443,20 +443,20 @@ UpdateDriverAddHandleDescPage (
**/
VOID
UpdateConsolePage (
IN UINT16 UpdatePageId,
IN BM_MENU_OPTION *ConsoleMenu,
IN BMM_CALLBACK_DATA *CallbackData
IN UINT16 UpdatePageId,
IN BM_MENU_OPTION *ConsoleMenu,
IN BMM_CALLBACK_DATA *CallbackData
)
{
BM_MENU_ENTRY *NewMenuEntry;
BM_CONSOLE_CONTEXT *NewConsoleContext;
BM_TERMINAL_CONTEXT *NewTerminalContext;
UINT16 Index;
UINT16 Index2;
UINT8 CheckFlags;
UINT8 *ConsoleCheck;
EFI_QUESTION_ID QuestionIdBase;
UINT16 VariableOffsetBase;
BM_MENU_ENTRY *NewMenuEntry;
BM_CONSOLE_CONTEXT *NewConsoleContext;
BM_TERMINAL_CONTEXT *NewTerminalContext;
UINT16 Index;
UINT16 Index2;
UINT8 CheckFlags;
UINT8 *ConsoleCheck;
EFI_QUESTION_ID QuestionIdBase;
UINT16 VariableOffsetBase;
CallbackData->BmmAskSaveOrNot = TRUE;
@@ -467,42 +467,45 @@ UpdateConsolePage (
VariableOffsetBase = 0;
switch (UpdatePageId) {
case FORM_CON_IN_ID:
ConsoleCheck = &CallbackData->BmmFakeNvData.ConsoleInCheck[0];
QuestionIdBase = CON_IN_DEVICE_QUESTION_ID;
VariableOffsetBase = CON_IN_DEVICE_VAR_OFFSET;
break;
case FORM_CON_IN_ID:
ConsoleCheck = &CallbackData->BmmFakeNvData.ConsoleInCheck[0];
QuestionIdBase = CON_IN_DEVICE_QUESTION_ID;
VariableOffsetBase = CON_IN_DEVICE_VAR_OFFSET;
break;
case FORM_CON_OUT_ID:
ConsoleCheck = &CallbackData->BmmFakeNvData.ConsoleOutCheck[0];
QuestionIdBase = CON_OUT_DEVICE_QUESTION_ID;
VariableOffsetBase = CON_OUT_DEVICE_VAR_OFFSET;
break;
case FORM_CON_OUT_ID:
ConsoleCheck = &CallbackData->BmmFakeNvData.ConsoleOutCheck[0];
QuestionIdBase = CON_OUT_DEVICE_QUESTION_ID;
VariableOffsetBase = CON_OUT_DEVICE_VAR_OFFSET;
break;
case FORM_CON_ERR_ID:
ConsoleCheck = &CallbackData->BmmFakeNvData.ConsoleErrCheck[0];
QuestionIdBase = CON_ERR_DEVICE_QUESTION_ID;
VariableOffsetBase = CON_ERR_DEVICE_VAR_OFFSET;
break;
case FORM_CON_ERR_ID:
ConsoleCheck = &CallbackData->BmmFakeNvData.ConsoleErrCheck[0];
QuestionIdBase = CON_ERR_DEVICE_QUESTION_ID;
VariableOffsetBase = CON_ERR_DEVICE_VAR_OFFSET;
break;
}
ASSERT (ConsoleCheck != NULL);
for (Index = 0; ((Index < ConsoleMenu->MenuNumber) && \
(Index < MAX_MENU_NUMBER)) ; Index++) {
CheckFlags = 0;
NewMenuEntry = BOpt_GetMenuEntry (ConsoleMenu, Index);
NewConsoleContext = (BM_CONSOLE_CONTEXT *) NewMenuEntry->VariableContext;
(Index < MAX_MENU_NUMBER)); Index++)
{
CheckFlags = 0;
NewMenuEntry = BOpt_GetMenuEntry (ConsoleMenu, Index);
NewConsoleContext = (BM_CONSOLE_CONTEXT *)NewMenuEntry->VariableContext;
if (NewConsoleContext->IsActive) {
CheckFlags |= EFI_IFR_CHECKBOX_DEFAULT;
CheckFlags |= EFI_IFR_CHECKBOX_DEFAULT;
ConsoleCheck[Index] = TRUE;
} else {
ConsoleCheck[Index] = FALSE;
}
HiiCreateCheckBoxOpCode (
mStartOpCodeHandle,
(EFI_QUESTION_ID) (QuestionIdBase + Index),
(EFI_QUESTION_ID)(QuestionIdBase + Index),
VARSTORE_ID_BOOT_MAINT,
(UINT16) (VariableOffsetBase + Index),
(UINT16)(VariableOffsetBase + Index),
NewMenuEntry->DisplayStringToken,
NewMenuEntry->HelpStringToken,
EFI_IFR_FLAG_CALLBACK,
@@ -512,26 +515,29 @@ UpdateConsolePage (
}
for (Index2 = 0; ((Index2 < TerminalMenu.MenuNumber) && \
(Index2 < MAX_MENU_NUMBER)); Index2++) {
CheckFlags = 0;
NewMenuEntry = BOpt_GetMenuEntry (&TerminalMenu, Index2);
NewTerminalContext = (BM_TERMINAL_CONTEXT *) NewMenuEntry->VariableContext;
(Index2 < MAX_MENU_NUMBER)); Index2++)
{
CheckFlags = 0;
NewMenuEntry = BOpt_GetMenuEntry (&TerminalMenu, Index2);
NewTerminalContext = (BM_TERMINAL_CONTEXT *)NewMenuEntry->VariableContext;
ASSERT (Index < MAX_MENU_NUMBER);
if (((NewTerminalContext->IsConIn != 0) && (UpdatePageId == FORM_CON_IN_ID)) ||
((NewTerminalContext->IsConOut != 0) && (UpdatePageId == FORM_CON_OUT_ID)) ||
((NewTerminalContext->IsStdErr != 0) && (UpdatePageId == FORM_CON_ERR_ID))
) {
CheckFlags |= EFI_IFR_CHECKBOX_DEFAULT;
)
{
CheckFlags |= EFI_IFR_CHECKBOX_DEFAULT;
ConsoleCheck[Index] = TRUE;
} else {
ConsoleCheck[Index] = FALSE;
}
HiiCreateCheckBoxOpCode (
mStartOpCodeHandle,
(EFI_QUESTION_ID) (QuestionIdBase + Index),
(EFI_QUESTION_ID)(QuestionIdBase + Index),
VARSTORE_ID_BOOT_MAINT,
(UINT16) (VariableOffsetBase + Index),
(UINT16)(VariableOffsetBase + Index),
NewMenuEntry->DisplayStringToken,
NewMenuEntry->HelpStringToken,
EFI_IFR_FLAG_CALLBACK,
@@ -556,58 +562,60 @@ UpdateConsolePage (
**/
VOID
UpdateOrderPage (
IN UINT16 UpdatePageId,
IN BM_MENU_OPTION *OptionMenu,
IN BMM_CALLBACK_DATA *CallbackData
IN UINT16 UpdatePageId,
IN BM_MENU_OPTION *OptionMenu,
IN BMM_CALLBACK_DATA *CallbackData
)
{
BM_MENU_ENTRY *NewMenuEntry;
UINT16 Index;
UINT16 OptionIndex;
VOID *OptionsOpCodeHandle;
BOOLEAN BootOptionFound;
UINT32 *OptionOrder;
EFI_QUESTION_ID QuestionId;
UINT16 VarOffset;
BM_MENU_ENTRY *NewMenuEntry;
UINT16 Index;
UINT16 OptionIndex;
VOID *OptionsOpCodeHandle;
BOOLEAN BootOptionFound;
UINT32 *OptionOrder;
EFI_QUESTION_ID QuestionId;
UINT16 VarOffset;
CallbackData->BmmAskSaveOrNot = TRUE;
UpdatePageStart (CallbackData);
OptionOrder = NULL;
QuestionId = 0;
VarOffset = 0;
QuestionId = 0;
VarOffset = 0;
switch (UpdatePageId) {
case FORM_BOOT_CHG_ID:
//
// If the BootOptionOrder in the BmmFakeNvData are same with the date in the BmmOldFakeNVData,
// means all Boot Options has been save in BootOptionMenu, we can get the date from the menu.
// else means browser maintains some uncommitted date which are not saved in BootOptionMenu,
// so we should not get the data from BootOptionMenu to show it.
//
if (CompareMem (CallbackData->BmmFakeNvData.BootOptionOrder, CallbackData->BmmOldFakeNVData.BootOptionOrder, sizeof (CallbackData->BmmFakeNvData.BootOptionOrder)) == 0) {
GetBootOrder (CallbackData);
}
case FORM_BOOT_CHG_ID:
//
// If the BootOptionOrder in the BmmFakeNvData are same with the date in the BmmOldFakeNVData,
// means all Boot Options has been save in BootOptionMenu, we can get the date from the menu.
// else means browser maintains some uncommitted date which are not saved in BootOptionMenu,
// so we should not get the data from BootOptionMenu to show it.
//
if (CompareMem (CallbackData->BmmFakeNvData.BootOptionOrder, CallbackData->BmmOldFakeNVData.BootOptionOrder, sizeof (CallbackData->BmmFakeNvData.BootOptionOrder)) == 0) {
GetBootOrder (CallbackData);
}
OptionOrder = CallbackData->BmmFakeNvData.BootOptionOrder;
QuestionId = BOOT_OPTION_ORDER_QUESTION_ID;
VarOffset = BOOT_OPTION_ORDER_VAR_OFFSET;
break;
OptionOrder = CallbackData->BmmFakeNvData.BootOptionOrder;
QuestionId = BOOT_OPTION_ORDER_QUESTION_ID;
VarOffset = BOOT_OPTION_ORDER_VAR_OFFSET;
break;
case FORM_DRV_CHG_ID:
//
// If the DriverOptionOrder in the BmmFakeNvData are same with the date in the BmmOldFakeNVData,
// means all Driver Options has been save in DriverOptionMenu, we can get the DriverOptionOrder from the menu.
// else means browser maintains some uncommitted date which are not saved in DriverOptionMenu,
// so we should not get the data from DriverOptionMenu to show it.
//
if (CompareMem (CallbackData->BmmFakeNvData.DriverOptionOrder, CallbackData->BmmOldFakeNVData.DriverOptionOrder, sizeof (CallbackData->BmmFakeNvData.DriverOptionOrder)) == 0) {
GetDriverOrder (CallbackData);
}
OptionOrder = CallbackData->BmmFakeNvData.DriverOptionOrder;
QuestionId = DRIVER_OPTION_ORDER_QUESTION_ID;
VarOffset = DRIVER_OPTION_ORDER_VAR_OFFSET;
break;
case FORM_DRV_CHG_ID:
//
// If the DriverOptionOrder in the BmmFakeNvData are same with the date in the BmmOldFakeNVData,
// means all Driver Options has been save in DriverOptionMenu, we can get the DriverOptionOrder from the menu.
// else means browser maintains some uncommitted date which are not saved in DriverOptionMenu,
// so we should not get the data from DriverOptionMenu to show it.
//
if (CompareMem (CallbackData->BmmFakeNvData.DriverOptionOrder, CallbackData->BmmOldFakeNVData.DriverOptionOrder, sizeof (CallbackData->BmmFakeNvData.DriverOptionOrder)) == 0) {
GetDriverOrder (CallbackData);
}
OptionOrder = CallbackData->BmmFakeNvData.DriverOptionOrder;
QuestionId = DRIVER_OPTION_ORDER_QUESTION_ID;
VarOffset = DRIVER_OPTION_ORDER_VAR_OFFSET;
break;
}
ASSERT (OptionOrder != NULL);
OptionsOpCodeHandle = HiiAllocateOpCodeHandle ();
@@ -617,12 +625,13 @@ UpdateOrderPage (
for (OptionIndex = 0; (OptionOrder[OptionIndex] != 0 && OptionIndex < MAX_MENU_NUMBER); OptionIndex++) {
BootOptionFound = FALSE;
for (Index = 0; Index < OptionMenu->MenuNumber; Index++) {
NewMenuEntry = BOpt_GetMenuEntry (OptionMenu, Index);
if ((UINT32) (NewMenuEntry->OptionNumber + 1) == OptionOrder[OptionIndex]) {
NewMenuEntry = BOpt_GetMenuEntry (OptionMenu, Index);
if ((UINT32)(NewMenuEntry->OptionNumber + 1) == OptionOrder[OptionIndex]) {
BootOptionFound = TRUE;
break;
}
}
if (BootOptionFound) {
HiiCreateOneOfOptionOpCode (
OptionsOpCodeHandle,
@@ -654,7 +663,6 @@ UpdateOrderPage (
HiiFreeOpCodeHandle (OptionsOpCodeHandle);
UpdatePageEnd (CallbackData);
}
/**
@@ -665,26 +673,26 @@ UpdateOrderPage (
**/
VOID
UpdateConModePage (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
)
{
UINTN Mode;
UINTN Index;
UINTN Col;
UINTN Row;
CHAR16 ModeString[50];
CHAR16 *PStr;
UINTN MaxMode;
UINTN ValidMode;
EFI_STRING_ID *ModeToken;
EFI_STATUS Status;
VOID *OptionsOpCodeHandle;
UINTN Mode;
UINTN Index;
UINTN Col;
UINTN Row;
CHAR16 ModeString[50];
CHAR16 *PStr;
UINTN MaxMode;
UINTN ValidMode;
EFI_STRING_ID *ModeToken;
EFI_STATUS Status;
VOID *OptionsOpCodeHandle;
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *ConOut;
ConOut = gST->ConOut;
Index = 0;
ValidMode = 0;
MaxMode = (UINTN) (ConOut->Mode->MaxMode);
MaxMode = (UINTN)(ConOut->Mode->MaxMode);
CallbackData->BmmAskSaveOrNot = TRUE;
@@ -698,6 +706,7 @@ UpdateConModePage (
if (EFI_ERROR (Status)) {
continue;
}
ValidMode++;
}
@@ -708,8 +717,8 @@ UpdateConModePage (
OptionsOpCodeHandle = HiiAllocateOpCodeHandle ();
ASSERT (OptionsOpCodeHandle != NULL);
ModeToken = AllocateZeroPool (sizeof (EFI_STRING_ID) * ValidMode);
ASSERT(ModeToken != NULL);
ModeToken = AllocateZeroPool (sizeof (EFI_STRING_ID) * ValidMode);
ASSERT (ModeToken != NULL);
//
// Determin which mode should be the first entry in menu
@@ -730,7 +739,7 @@ UpdateConModePage (
//
UnicodeValueToStringS (ModeString, sizeof (ModeString), 0, Col, 0);
PStr = &ModeString[0];
StrnCatS (PStr, ARRAY_SIZE (ModeString), L" x ", StrLen(L" x ") + 1);
StrnCatS (PStr, ARRAY_SIZE (ModeString), L" x ", StrLen (L" x ") + 1);
PStr = PStr + StrLen (PStr);
UnicodeValueToStringS (
PStr,
@@ -748,7 +757,7 @@ UpdateConModePage (
ModeToken[Index],
EFI_IFR_OPTION_DEFAULT,
EFI_IFR_TYPE_NUM_SIZE_16,
(UINT16) Mode
(UINT16)Mode
);
} else {
HiiCreateOneOfOptionOpCode (
@@ -756,15 +765,16 @@ UpdateConModePage (
ModeToken[Index],
0,
EFI_IFR_TYPE_NUM_SIZE_16,
(UINT16) Mode
(UINT16)Mode
);
}
Index++;
}
HiiCreateOneOfOpCode (
mStartOpCodeHandle,
(EFI_QUESTION_ID) CON_MODE_QUESTION_ID,
(EFI_QUESTION_ID)CON_MODE_QUESTION_ID,
VARSTORE_ID_BOOT_MAINT,
CON_MODE_VAR_OFFSET,
STRING_TOKEN (STR_CON_MODE_SETUP),
@@ -781,46 +791,47 @@ UpdateConModePage (
UpdatePageEnd (CallbackData);
}
/**
Create the dynamic page which allows user to set the property such as Baud Rate, Data Bits,
Parity, Stop Bits, Terminal Type.
/**
Create the dynamic page which allows user to set the property such as Baud Rate, Data Bits,
Parity, Stop Bits, Terminal Type.
@param CallbackData The BMM context data.
@param CallbackData The BMM context data.
**/
VOID
UpdateTerminalPage (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
)
{
UINT8 Index;
UINT8 CheckFlags;
BM_MENU_ENTRY *NewMenuEntry;
VOID *OptionsOpCodeHandle;
UINTN CurrentTerminal;
UINT8 Index;
UINT8 CheckFlags;
BM_MENU_ENTRY *NewMenuEntry;
VOID *OptionsOpCodeHandle;
UINTN CurrentTerminal;
CallbackData->BmmAskSaveOrNot = TRUE;
UpdatePageStart (CallbackData);
CurrentTerminal = CallbackData->CurrentTerminal;
NewMenuEntry = BOpt_GetMenuEntry (
&TerminalMenu,
CurrentTerminal
);
NewMenuEntry = BOpt_GetMenuEntry (
&TerminalMenu,
CurrentTerminal
);
if (NewMenuEntry == NULL) {
return ;
return;
}
OptionsOpCodeHandle = HiiAllocateOpCodeHandle ();
ASSERT (OptionsOpCodeHandle != NULL);
for (Index = 0; Index < sizeof (BaudRateList) / sizeof (BaudRateList [0]); Index++) {
for (Index = 0; Index < sizeof (BaudRateList) / sizeof (BaudRateList[0]); Index++) {
CheckFlags = 0;
if (BaudRateList[Index].Value == 115200) {
CheckFlags |= EFI_IFR_OPTION_DEFAULT;
}
HiiCreateOneOfOptionOpCode (
OptionsOpCodeHandle,
BaudRateList[Index].StringToken,
@@ -832,9 +843,9 @@ UpdateTerminalPage (
HiiCreateOneOfOpCode (
mStartOpCodeHandle,
(EFI_QUESTION_ID) (COM_BAUD_RATE_QUESTION_ID + CurrentTerminal),
(EFI_QUESTION_ID)(COM_BAUD_RATE_QUESTION_ID + CurrentTerminal),
VARSTORE_ID_BOOT_MAINT,
(UINT16) (COM_BAUD_RATE_VAR_OFFSET + CurrentTerminal),
(UINT16)(COM_BAUD_RATE_VAR_OFFSET + CurrentTerminal),
STRING_TOKEN (STR_COM_BAUD_RATE),
STRING_TOKEN (STR_COM_BAUD_RATE),
EFI_IFR_FLAG_CALLBACK,
@@ -865,9 +876,9 @@ UpdateTerminalPage (
HiiCreateOneOfOpCode (
mStartOpCodeHandle,
(EFI_QUESTION_ID) (COM_DATA_RATE_QUESTION_ID + CurrentTerminal),
(EFI_QUESTION_ID)(COM_DATA_RATE_QUESTION_ID + CurrentTerminal),
VARSTORE_ID_BOOT_MAINT,
(UINT16) (COM_DATA_RATE_VAR_OFFSET + CurrentTerminal),
(UINT16)(COM_DATA_RATE_VAR_OFFSET + CurrentTerminal),
STRING_TOKEN (STR_COM_DATA_BITS),
STRING_TOKEN (STR_COM_DATA_BITS),
EFI_IFR_FLAG_CALLBACK,
@@ -897,9 +908,9 @@ UpdateTerminalPage (
HiiCreateOneOfOpCode (
mStartOpCodeHandle,
(EFI_QUESTION_ID) (COM_PARITY_QUESTION_ID + CurrentTerminal),
(EFI_QUESTION_ID)(COM_PARITY_QUESTION_ID + CurrentTerminal),
VARSTORE_ID_BOOT_MAINT,
(UINT16) (COM_PARITY_VAR_OFFSET + CurrentTerminal),
(UINT16)(COM_PARITY_VAR_OFFSET + CurrentTerminal),
STRING_TOKEN (STR_COM_PARITY),
STRING_TOKEN (STR_COM_PARITY),
EFI_IFR_FLAG_CALLBACK,
@@ -929,9 +940,9 @@ UpdateTerminalPage (
HiiCreateOneOfOpCode (
mStartOpCodeHandle,
(EFI_QUESTION_ID) (COM_STOP_BITS_QUESTION_ID + CurrentTerminal),
(EFI_QUESTION_ID)(COM_STOP_BITS_QUESTION_ID + CurrentTerminal),
VARSTORE_ID_BOOT_MAINT,
(UINT16) (COM_STOP_BITS_VAR_OFFSET + CurrentTerminal),
(UINT16)(COM_STOP_BITS_VAR_OFFSET + CurrentTerminal),
STRING_TOKEN (STR_COM_STOP_BITS),
STRING_TOKEN (STR_COM_STOP_BITS),
EFI_IFR_FLAG_CALLBACK,
@@ -952,7 +963,7 @@ UpdateTerminalPage (
HiiCreateOneOfOptionOpCode (
OptionsOpCodeHandle,
(EFI_STRING_ID) TerminalType[Index],
(EFI_STRING_ID)TerminalType[Index],
CheckFlags,
EFI_IFR_TYPE_NUM_SIZE_8,
Index
@@ -961,9 +972,9 @@ UpdateTerminalPage (
HiiCreateOneOfOpCode (
mStartOpCodeHandle,
(EFI_QUESTION_ID) (COM_TERMINAL_QUESTION_ID + CurrentTerminal),
(EFI_QUESTION_ID)(COM_TERMINAL_QUESTION_ID + CurrentTerminal),
VARSTORE_ID_BOOT_MAINT,
(UINT16) (COM_TERMINAL_VAR_OFFSET + CurrentTerminal),
(UINT16)(COM_TERMINAL_VAR_OFFSET + CurrentTerminal),
STRING_TOKEN (STR_COM_TERMI_TYPE),
STRING_TOKEN (STR_COM_TERMI_TYPE),
EFI_IFR_FLAG_CALLBACK,
@@ -977,13 +988,14 @@ UpdateTerminalPage (
ASSERT (OptionsOpCodeHandle != NULL);
for (Index = 0; Index < ARRAY_SIZE (mFlowControlType); Index++) {
CheckFlags = 0;
CheckFlags = 0;
if (Index == 0) {
CheckFlags |= EFI_IFR_OPTION_DEFAULT;
}
HiiCreateOneOfOptionOpCode (
OptionsOpCodeHandle,
(EFI_STRING_ID) mFlowControlType[Index],
(EFI_STRING_ID)mFlowControlType[Index],
CheckFlags,
EFI_IFR_TYPE_NUM_SIZE_8,
mFlowControlValue[Index]
@@ -992,9 +1004,9 @@ UpdateTerminalPage (
HiiCreateOneOfOpCode (
mStartOpCodeHandle,
(EFI_QUESTION_ID) (COM_FLOWCONTROL_QUESTION_ID + CurrentTerminal),
(EFI_QUESTION_ID)(COM_FLOWCONTROL_QUESTION_ID + CurrentTerminal),
VARSTORE_ID_BOOT_MAINT,
(UINT16) (COM_FLOWCONTROL_VAR_OFFSET + CurrentTerminal),
(UINT16)(COM_FLOWCONTROL_VAR_OFFSET + CurrentTerminal),
STRING_TOKEN (STR_COM_FLOW_CONTROL),
STRING_TOKEN (STR_COM_FLOW_CONTROL),
EFI_IFR_FLAG_CALLBACK,
@@ -1017,20 +1029,21 @@ Update add boot/driver option page.
**/
VOID
UpdateOptionPage(
IN BMM_CALLBACK_DATA *CallbackData,
IN EFI_FORM_ID FormId,
IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
UpdateOptionPage (
IN BMM_CALLBACK_DATA *CallbackData,
IN EFI_FORM_ID FormId,
IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
)
{
CHAR16 *String;
EFI_STRING_ID StringToken;
CHAR16 *String;
EFI_STRING_ID StringToken;
String = NULL;
if (DevicePath != NULL){
String = ExtractFileNameFromDevicePath(DevicePath);
if (DevicePath != NULL) {
String = ExtractFileNameFromDevicePath (DevicePath);
}
if (String == NULL) {
String = HiiGetString (CallbackData->BmmHiiHandle, STRING_TOKEN (STR_NULL_STRING), NULL);
ASSERT (String != NULL);
@@ -1039,14 +1052,14 @@ UpdateOptionPage(
StringToken = HiiSetString (CallbackData->BmmHiiHandle, 0, String, NULL);
FreePool (String);
if(FormId == FORM_BOOT_ADD_ID){
if (FormId == FORM_BOOT_ADD_ID) {
if (!CallbackData->BmmFakeNvData.BootOptionChanged) {
ZeroMem (CallbackData->BmmFakeNvData.BootOptionalData, sizeof (CallbackData->BmmFakeNvData.BootOptionalData));
ZeroMem (CallbackData->BmmFakeNvData.BootDescriptionData, sizeof (CallbackData->BmmFakeNvData.BootDescriptionData));
ZeroMem (CallbackData->BmmOldFakeNVData.BootOptionalData, sizeof (CallbackData->BmmOldFakeNVData.BootOptionalData));
ZeroMem (CallbackData->BmmOldFakeNVData.BootDescriptionData, sizeof (CallbackData->BmmOldFakeNVData.BootDescriptionData));
}
} else if (FormId == FORM_DRV_ADD_FILE_ID){
} else if (FormId == FORM_DRV_ADD_FILE_ID) {
if (!CallbackData->BmmFakeNvData.DriverOptionChanged) {
ZeroMem (CallbackData->BmmFakeNvData.DriverOptionalData, sizeof (CallbackData->BmmFakeNvData.DriverOptionalData));
ZeroMem (CallbackData->BmmFakeNvData.DriverDescriptionData, sizeof (CallbackData->BmmFakeNvData.DriverDescriptionData));
@@ -1055,7 +1068,7 @@ UpdateOptionPage(
}
}
RefreshUpdateData();
RefreshUpdateData ();
mStartLabel->Number = FormId;
HiiCreateSubTitleOpCode (
@@ -1070,8 +1083,8 @@ UpdateOptionPage(
CallbackData->BmmHiiHandle,
&mBootMaintGuid,
FormId,
mStartOpCodeHandle,// Label FormId
mEndOpCodeHandle // LABEL_END
mStartOpCodeHandle, // Label FormId
mEndOpCodeHandle // LABEL_END
);
}
@@ -1085,34 +1098,34 @@ UpdateOptionPage(
**/
VOID
UpdatePageBody (
IN UINT16 UpdatePageId,
IN BMM_CALLBACK_DATA *CallbackData
IN UINT16 UpdatePageId,
IN BMM_CALLBACK_DATA *CallbackData
)
{
CleanUpPage (UpdatePageId, CallbackData);
switch (UpdatePageId) {
case FORM_CON_IN_ID:
UpdateConsolePage (UpdatePageId, &ConsoleInpMenu, CallbackData);
break;
case FORM_CON_IN_ID:
UpdateConsolePage (UpdatePageId, &ConsoleInpMenu, CallbackData);
break;
case FORM_CON_OUT_ID:
UpdateConsolePage (UpdatePageId, &ConsoleOutMenu, CallbackData);
break;
case FORM_CON_OUT_ID:
UpdateConsolePage (UpdatePageId, &ConsoleOutMenu, CallbackData);
break;
case FORM_CON_ERR_ID:
UpdateConsolePage (UpdatePageId, &ConsoleErrMenu, CallbackData);
break;
case FORM_CON_ERR_ID:
UpdateConsolePage (UpdatePageId, &ConsoleErrMenu, CallbackData);
break;
case FORM_BOOT_CHG_ID:
UpdateOrderPage (UpdatePageId, &BootOptionMenu, CallbackData);
break;
case FORM_BOOT_CHG_ID:
UpdateOrderPage (UpdatePageId, &BootOptionMenu, CallbackData);
break;
case FORM_DRV_CHG_ID:
UpdateOrderPage (UpdatePageId, &DriverOptionMenu, CallbackData);
break;
case FORM_DRV_CHG_ID:
UpdateOrderPage (UpdatePageId, &DriverOptionMenu, CallbackData);
break;
default:
break;
default:
break;
}
}
@@ -1125,8 +1138,8 @@ UpdatePageBody (
**/
VOID
UpdatePageId (
BMM_CALLBACK_DATA *Private,
UINT16 NewPageId
BMM_CALLBACK_DATA *Private,
UINT16 NewPageId
)
{
if ((NewPageId < FILE_OPTION_OFFSET) && (NewPageId >= HANDLE_OPTION_OFFSET)) {
@@ -1144,7 +1157,7 @@ UpdatePageId (
}
if ((NewPageId > 0) && (NewPageId < MAXIMUM_FORM_ID)) {
Private->BmmPreviousPageId = Private->BmmCurrentPageId;
Private->BmmCurrentPageId = NewPageId;
Private->BmmPreviousPageId = Private->BmmCurrentPageId;
Private->BmmCurrentPageId = NewPageId;
}
}

View File

@@ -22,28 +22,29 @@ Var_DelBootOption (
VOID
)
{
BM_MENU_ENTRY *NewMenuEntry;
BM_LOAD_CONTEXT *NewLoadContext;
EFI_STATUS Status;
UINTN Index;
UINTN Index2;
BM_MENU_ENTRY *NewMenuEntry;
BM_LOAD_CONTEXT *NewLoadContext;
EFI_STATUS Status;
UINTN Index;
UINTN Index2;
Index2 = 0;
Index2 = 0;
for (Index = 0; Index < BootOptionMenu.MenuNumber; Index++) {
NewMenuEntry = BOpt_GetMenuEntry (&BootOptionMenu, (Index - Index2));
if (NULL == NewMenuEntry) {
return EFI_NOT_FOUND;
}
NewLoadContext = (BM_LOAD_CONTEXT *) NewMenuEntry->VariableContext;
NewLoadContext = (BM_LOAD_CONTEXT *)NewMenuEntry->VariableContext;
if (!NewLoadContext->Deleted) {
continue;
}
Status = EfiBootManagerDeleteLoadOptionVariable (NewMenuEntry->OptionNumber,LoadOptionTypeBoot);
Status = EfiBootManagerDeleteLoadOptionVariable (NewMenuEntry->OptionNumber, LoadOptionTypeBoot);
if (EFI_ERROR (Status)) {
return Status;
return Status;
}
Index2++;
//
// If current Load Option is the same as BootNext,
@@ -78,24 +79,25 @@ Var_DelDriverOption (
VOID
)
{
BM_MENU_ENTRY *NewMenuEntry;
BM_LOAD_CONTEXT *NewLoadContext;
EFI_STATUS Status;
UINTN Index;
UINTN Index2;
BM_MENU_ENTRY *NewMenuEntry;
BM_LOAD_CONTEXT *NewLoadContext;
EFI_STATUS Status;
UINTN Index;
UINTN Index2;
Index2 = 0;
Index2 = 0;
for (Index = 0; Index < DriverOptionMenu.MenuNumber; Index++) {
NewMenuEntry = BOpt_GetMenuEntry (&DriverOptionMenu, (Index - Index2));
if (NULL == NewMenuEntry) {
return EFI_NOT_FOUND;
}
NewLoadContext = (BM_LOAD_CONTEXT *) NewMenuEntry->VariableContext;
NewLoadContext = (BM_LOAD_CONTEXT *)NewMenuEntry->VariableContext;
if (!NewLoadContext->Deleted) {
continue;
}
Status = EfiBootManagerDeleteLoadOptionVariable (NewMenuEntry->OptionNumber,LoadOptionTypeDriver);
Status = EfiBootManagerDeleteLoadOptionVariable (NewMenuEntry->OptionNumber, LoadOptionTypeDriver);
if (EFI_ERROR (Status)) {
return Status;
}
@@ -136,9 +138,9 @@ Var_DelDriverOption (
**/
EFI_STATUS
Var_UpdateConsoleOption (
IN UINT16 *ConsoleName,
IN BM_MENU_OPTION *ConsoleMenu,
IN UINT16 UpdatePageId
IN UINT16 *ConsoleName,
IN BM_MENU_OPTION *ConsoleMenu,
IN UINT16 UpdatePageId
)
{
EFI_DEVICE_PATH_PROTOCOL *ConDevicePath;
@@ -150,12 +152,12 @@ Var_UpdateConsoleOption (
EFI_DEVICE_PATH_PROTOCOL *TerminalDevicePath;
UINTN Index;
GetEfiGlobalVariable2 (ConsoleName, (VOID**)&ConDevicePath, NULL);
GetEfiGlobalVariable2 (ConsoleName, (VOID **)&ConDevicePath, NULL);
if (ConDevicePath != NULL) {
EfiLibDeleteVariable (ConsoleName, &gEfiGlobalVariableGuid);
FreePool (ConDevicePath);
ConDevicePath = NULL;
};
}
//
// First add all console input device from console input menu
@@ -163,7 +165,7 @@ Var_UpdateConsoleOption (
for (Index = 0; Index < ConsoleMenu->MenuNumber; Index++) {
NewMenuEntry = BOpt_GetMenuEntry (ConsoleMenu, Index);
NewConsoleContext = (BM_CONSOLE_CONTEXT *) NewMenuEntry->VariableContext;
NewConsoleContext = (BM_CONSOLE_CONTEXT *)NewMenuEntry->VariableContext;
if (NewConsoleContext->IsActive) {
ConDevicePath = AppendDevicePathInstance (
ConDevicePath,
@@ -175,11 +177,12 @@ Var_UpdateConsoleOption (
for (Index = 0; Index < TerminalMenu.MenuNumber; Index++) {
NewMenuEntry = BOpt_GetMenuEntry (&TerminalMenu, Index);
NewTerminalContext = (BM_TERMINAL_CONTEXT *) NewMenuEntry->VariableContext;
NewTerminalContext = (BM_TERMINAL_CONTEXT *)NewMenuEntry->VariableContext;
if (((NewTerminalContext->IsConIn != 0) && (UpdatePageId == FORM_CON_IN_ID)) ||
((NewTerminalContext->IsConOut != 0) && (UpdatePageId == FORM_CON_OUT_ID)) ||
((NewTerminalContext->IsStdErr != 0) && (UpdatePageId == FORM_CON_ERR_ID))
) {
)
{
Vendor.Header.Type = MESSAGING_DEVICE_PATH;
Vendor.Header.SubType = MSG_VENDOR_DP;
@@ -191,9 +194,9 @@ Var_UpdateConsoleOption (
);
SetDevicePathNodeLength (&Vendor.Header, sizeof (VENDOR_DEVICE_PATH));
TerminalDevicePath = AppendDevicePathNode (
NewTerminalContext->DevicePath,
(EFI_DEVICE_PATH_PROTOCOL *) &Vendor
);
NewTerminalContext->DevicePath,
(EFI_DEVICE_PATH_PROTOCOL *)&Vendor
);
ASSERT (TerminalDevicePath != NULL);
ChangeTerminalDevicePath (TerminalDevicePath, TRUE);
ConDevicePath = AppendDevicePathInstance (
@@ -217,7 +220,6 @@ Var_UpdateConsoleOption (
}
return EFI_SUCCESS;
}
/**
@@ -285,28 +287,28 @@ Var_UpdateErrorOutOption (
**/
EFI_STATUS
Var_UpdateDriverOption (
IN BMM_CALLBACK_DATA *CallbackData,
IN EFI_HII_HANDLE HiiHandle,
IN UINT16 *DescriptionData,
IN UINT16 *OptionalData,
IN UINT8 ForceReconnect
IN BMM_CALLBACK_DATA *CallbackData,
IN EFI_HII_HANDLE HiiHandle,
IN UINT16 *DescriptionData,
IN UINT16 *OptionalData,
IN UINT8 ForceReconnect
)
{
UINT16 Index;
UINT16 DriverString[12];
BM_MENU_ENTRY *NewMenuEntry;
BM_LOAD_CONTEXT *NewLoadContext;
BOOLEAN OptionalDataExist;
EFI_STATUS Status;
UINT16 Index;
UINT16 DriverString[12];
BM_MENU_ENTRY *NewMenuEntry;
BM_LOAD_CONTEXT *NewLoadContext;
BOOLEAN OptionalDataExist;
EFI_STATUS Status;
EFI_BOOT_MANAGER_LOAD_OPTION LoadOption;
UINT8 *OptionalDesData;
UINT32 OptionalDataSize;
OptionalDataExist = FALSE;
OptionalDesData = NULL;
OptionalDataSize = 0;
OptionalDesData = NULL;
OptionalDataSize = 0;
Index = BOpt_GetDriverOptionNumber ();
Index = BOpt_GetDriverOptionNumber ();
UnicodeSPrint (
DriverString,
sizeof (DriverString),
@@ -320,8 +322,8 @@ Var_UpdateDriverOption (
if (*OptionalData != 0x0000) {
OptionalDataExist = TRUE;
OptionalDesData = (UINT8 *)OptionalData;
OptionalDataSize = (UINT32)StrSize (OptionalData);
OptionalDesData = (UINT8 *)OptionalData;
OptionalDataSize = (UINT32)StrSize (OptionalData);
}
NewMenuEntry = BOpt_CreateMenuEntry (BM_LOAD_CONTEXT_SELECT);
@@ -338,20 +340,20 @@ Var_UpdateDriverOption (
CallbackData->LoadContext->FilePathList,
OptionalDesData,
OptionalDataSize
);
if (EFI_ERROR (Status)){
return Status;
}
Status = EfiBootManagerAddLoadOptionVariable (&LoadOption,(UINTN) -1 );
);
if (EFI_ERROR (Status)) {
EfiBootManagerFreeLoadOption(&LoadOption);
return Status;
}
NewLoadContext = (BM_LOAD_CONTEXT *) NewMenuEntry->VariableContext;
NewLoadContext->Deleted = FALSE;
NewLoadContext->Attributes = LoadOption.Attributes;
Status = EfiBootManagerAddLoadOptionVariable (&LoadOption, (UINTN)-1);
if (EFI_ERROR (Status)) {
EfiBootManagerFreeLoadOption (&LoadOption);
return Status;
}
NewLoadContext = (BM_LOAD_CONTEXT *)NewMenuEntry->VariableContext;
NewLoadContext->Deleted = FALSE;
NewLoadContext->Attributes = LoadOption.Attributes;
NewLoadContext->FilePathListLength = (UINT16)GetDevicePathSize (LoadOption.FilePath);
NewLoadContext->Description = AllocateZeroPool (StrSize (DescriptionData));
@@ -371,10 +373,10 @@ Var_UpdateDriverOption (
GetDevicePathSize (CallbackData->LoadContext->FilePathList)
);
NewMenuEntry->HelpString = UiDevicePathToStr (NewLoadContext->FilePathList);
NewMenuEntry->OptionNumber = Index;
NewMenuEntry->HelpString = UiDevicePathToStr (NewLoadContext->FilePathList);
NewMenuEntry->OptionNumber = Index;
NewMenuEntry->DisplayStringToken = HiiSetString (HiiHandle, 0, NewMenuEntry->DisplayString, NULL);
NewMenuEntry->HelpStringToken = HiiSetString (HiiHandle, 0, NewMenuEntry->HelpString, NULL);
NewMenuEntry->HelpStringToken = HiiSetString (HiiHandle, 0, NewMenuEntry->HelpString, NULL);
if (OptionalDataExist) {
NewLoadContext->OptionalData = AllocateZeroPool (LoadOption.OptionalDataSize);
@@ -389,7 +391,7 @@ Var_UpdateDriverOption (
InsertTailList (&DriverOptionMenu.Head, &NewMenuEntry->Link);
DriverOptionMenu.MenuNumber++;
EfiBootManagerFreeLoadOption(&LoadOption);
EfiBootManagerFreeLoadOption (&LoadOption);
return EFI_SUCCESS;
}
@@ -410,26 +412,26 @@ Var_UpdateDriverOption (
**/
EFI_STATUS
Var_UpdateBootOption (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
)
{
UINT16 BootString[10];
UINT16 Index;
BM_MENU_ENTRY *NewMenuEntry;
BM_LOAD_CONTEXT *NewLoadContext;
BOOLEAN OptionalDataExist;
EFI_STATUS Status;
BMM_FAKE_NV_DATA *NvRamMap;
UINT16 BootString[10];
UINT16 Index;
BM_MENU_ENTRY *NewMenuEntry;
BM_LOAD_CONTEXT *NewLoadContext;
BOOLEAN OptionalDataExist;
EFI_STATUS Status;
BMM_FAKE_NV_DATA *NvRamMap;
EFI_BOOT_MANAGER_LOAD_OPTION LoadOption;
UINT8 *OptionalData;
UINT32 OptionalDataSize;
OptionalDataExist = FALSE;
NvRamMap = &CallbackData->BmmFakeNvData;
OptionalData = NULL;
OptionalDataSize = 0;
NvRamMap = &CallbackData->BmmFakeNvData;
OptionalData = NULL;
OptionalDataSize = 0;
Index = BOpt_GetBootOptionNumber () ;
Index = BOpt_GetBootOptionNumber ();
UnicodeSPrint (BootString, sizeof (BootString), L"Boot%04x", Index);
if (NvRamMap->BootDescriptionData[0] == 0x0000) {
@@ -438,8 +440,8 @@ Var_UpdateBootOption (
if (NvRamMap->BootOptionalData[0] != 0x0000) {
OptionalDataExist = TRUE;
OptionalData = (UINT8 *)NvRamMap->BootOptionalData;
OptionalDataSize = (UINT32)StrSize (NvRamMap->BootOptionalData);
OptionalData = (UINT8 *)NvRamMap->BootOptionalData;
OptionalDataSize = (UINT32)StrSize (NvRamMap->BootOptionalData);
}
NewMenuEntry = BOpt_CreateMenuEntry (BM_LOAD_CONTEXT_SELECT);
@@ -456,21 +458,21 @@ Var_UpdateBootOption (
CallbackData->LoadContext->FilePathList,
OptionalData,
OptionalDataSize
);
if (EFI_ERROR (Status)){
return Status;
}
Status = EfiBootManagerAddLoadOptionVariable (&LoadOption,(UINTN) -1 );
);
if (EFI_ERROR (Status)) {
EfiBootManagerFreeLoadOption(&LoadOption);
return Status;
}
NewLoadContext = (BM_LOAD_CONTEXT *) NewMenuEntry->VariableContext;
NewLoadContext->Deleted = FALSE;
NewLoadContext->Attributes = LoadOption.Attributes;
NewLoadContext->FilePathListLength = (UINT16) GetDevicePathSize (LoadOption.FilePath);
Status = EfiBootManagerAddLoadOptionVariable (&LoadOption, (UINTN)-1);
if (EFI_ERROR (Status)) {
EfiBootManagerFreeLoadOption (&LoadOption);
return Status;
}
NewLoadContext = (BM_LOAD_CONTEXT *)NewMenuEntry->VariableContext;
NewLoadContext->Deleted = FALSE;
NewLoadContext->Attributes = LoadOption.Attributes;
NewLoadContext->FilePathListLength = (UINT16)GetDevicePathSize (LoadOption.FilePath);
NewLoadContext->Description = AllocateZeroPool (StrSize (NvRamMap->BootDescriptionData));
ASSERT (NewLoadContext->Description != NULL);
@@ -491,10 +493,10 @@ Var_UpdateBootOption (
GetDevicePathSize (CallbackData->LoadContext->FilePathList)
);
NewMenuEntry->HelpString = UiDevicePathToStr (NewLoadContext->FilePathList);
NewMenuEntry->OptionNumber = Index;
NewMenuEntry->HelpString = UiDevicePathToStr (NewLoadContext->FilePathList);
NewMenuEntry->OptionNumber = Index;
NewMenuEntry->DisplayStringToken = HiiSetString (CallbackData->BmmHiiHandle, 0, NewMenuEntry->DisplayString, NULL);
NewMenuEntry->HelpStringToken = HiiSetString (CallbackData->BmmHiiHandle, 0, NewMenuEntry->HelpString, NULL);
NewMenuEntry->HelpStringToken = HiiSetString (CallbackData->BmmHiiHandle, 0, NewMenuEntry->HelpString, NULL);
if (OptionalDataExist) {
NewLoadContext->OptionalData = AllocateZeroPool (LoadOption.OptionalDataSize);
@@ -509,7 +511,7 @@ Var_UpdateBootOption (
InsertTailList (&BootOptionMenu.Head, &NewMenuEntry->Link);
BootOptionMenu.MenuNumber++;
EfiBootManagerFreeLoadOption(&LoadOption);
EfiBootManagerFreeLoadOption (&LoadOption);
return EFI_SUCCESS;
}
@@ -529,7 +531,7 @@ Var_UpdateBootOption (
**/
EFI_STATUS
Var_UpdateBootNext (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
)
{
BM_MENU_ENTRY *NewMenuEntry;
@@ -538,14 +540,14 @@ Var_UpdateBootNext (
UINT16 Index;
EFI_STATUS Status;
Status = EFI_SUCCESS;
CurrentFakeNVMap = &CallbackData->BmmFakeNvData;
Status = EFI_SUCCESS;
CurrentFakeNVMap = &CallbackData->BmmFakeNvData;
for (Index = 0; Index < BootOptionMenu.MenuNumber; Index++) {
NewMenuEntry = BOpt_GetMenuEntry (&BootOptionMenu, Index);
ASSERT (NULL != NewMenuEntry);
NewLoadContext = (BM_LOAD_CONTEXT *) NewMenuEntry->VariableContext;
NewLoadContext->IsBootNext = FALSE;
NewLoadContext = (BM_LOAD_CONTEXT *)NewMenuEntry->VariableContext;
NewLoadContext->IsBootNext = FALSE;
}
if (CurrentFakeNVMap->BootNext == NONE_BOOTNEXT_VALUE) {
@@ -554,19 +556,19 @@ Var_UpdateBootNext (
}
NewMenuEntry = BOpt_GetMenuEntry (
&BootOptionMenu,
CurrentFakeNVMap->BootNext
);
&BootOptionMenu,
CurrentFakeNVMap->BootNext
);
ASSERT (NewMenuEntry != NULL);
NewLoadContext = (BM_LOAD_CONTEXT *) NewMenuEntry->VariableContext;
Status = gRT->SetVariable (
L"BootNext",
&gEfiGlobalVariableGuid,
VAR_FLAG,
sizeof (UINT16),
&NewMenuEntry->OptionNumber
);
NewLoadContext = (BM_LOAD_CONTEXT *)NewMenuEntry->VariableContext;
Status = gRT->SetVariable (
L"BootNext",
&gEfiGlobalVariableGuid,
VAR_FLAG,
sizeof (UINT16),
&NewMenuEntry->OptionNumber
);
NewLoadContext->IsBootNext = TRUE;
CallbackData->BmmOldFakeNVData.BootNext = CurrentFakeNVMap->BootNext;
return Status;
@@ -586,7 +588,7 @@ Var_UpdateBootNext (
**/
EFI_STATUS
Var_UpdateBootOrder (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
)
{
EFI_STATUS Status;
@@ -599,7 +601,7 @@ Var_UpdateBootOrder (
//
// First check whether BootOrder is present in current configuration
//
GetEfiGlobalVariable2 (L"BootOrder", (VOID **) &BootOrder, &BootOrderSize);
GetEfiGlobalVariable2 (L"BootOrder", (VOID **)&BootOrder, &BootOrderSize);
if (BootOrder == NULL) {
return EFI_OUT_OF_RESOURCES;
}
@@ -611,7 +613,7 @@ Var_UpdateBootOrder (
//
for (OrderIndex = 0; (OrderIndex < BootOptionMenu.MenuNumber) && (CallbackData->BmmFakeNvData.BootOptionOrder[OrderIndex] != 0); OrderIndex++) {
for (Index = OrderIndex; Index < BootOrderSize / sizeof (UINT16); Index++) {
if ((BootOrder[Index] == (UINT16) (CallbackData->BmmFakeNvData.BootOptionOrder[OrderIndex] - 1)) && (OrderIndex != Index)) {
if ((BootOrder[Index] == (UINT16)(CallbackData->BmmFakeNvData.BootOptionOrder[OrderIndex] - 1)) && (OrderIndex != Index)) {
OptionNumber = BootOrder[Index];
CopyMem (&BootOrder[OrderIndex + 1], &BootOrder[OrderIndex], (Index - OrderIndex) * sizeof (UINT16));
BootOrder[OrderIndex] = OptionNumber;
@@ -632,7 +634,6 @@ Var_UpdateBootOrder (
BOpt_GetBootOptions (CallbackData);
return Status;
}
/**
@@ -649,7 +650,7 @@ Var_UpdateBootOrder (
**/
EFI_STATUS
Var_UpdateDriverOrder (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
)
{
EFI_STATUS Status;
@@ -664,12 +665,13 @@ Var_UpdateDriverOrder (
//
// First check whether DriverOrder is present in current configuration
//
GetEfiGlobalVariable2 (L"DriverOrder", (VOID **) &DriverOrderList, &DriverOrderListSize);
GetEfiGlobalVariable2 (L"DriverOrder", (VOID **)&DriverOrderList, &DriverOrderListSize);
NewDriverOrderList = AllocateZeroPool (DriverOrderListSize);
if (NewDriverOrderList == NULL) {
return EFI_OUT_OF_RESOURCES;
}
//
// If exists, delete it to hold new DriverOrder
//
@@ -680,7 +682,7 @@ Var_UpdateDriverOrder (
ASSERT (DriverOptionMenu.MenuNumber <= (sizeof (CallbackData->BmmFakeNvData.DriverOptionOrder) / sizeof (CallbackData->BmmFakeNvData.DriverOptionOrder[0])));
for (Index = 0; Index < DriverOptionMenu.MenuNumber; Index++) {
NewDriverOrderList[Index] = (UINT16) (CallbackData->BmmFakeNvData.DriverOptionOrder[Index] - 1);
NewDriverOrderList[Index] = (UINT16)(CallbackData->BmmFakeNvData.DriverOptionOrder[Index] - 1);
}
Status = gRT->SetVariable (
@@ -710,7 +712,7 @@ Var_UpdateDriverOrder (
**/
EFI_STATUS
Var_UpdateConMode (
IN BMM_CALLBACK_DATA *CallbackData
IN BMM_CALLBACK_DATA *CallbackData
)
{
EFI_STATUS Status;
@@ -720,10 +722,10 @@ Var_UpdateConMode (
Mode = CallbackData->BmmFakeNvData.ConsoleOutMode;
Status = gST->ConOut->QueryMode (gST->ConOut, Mode, &(ModeInfo.Column), &(ModeInfo.Row));
if (!EFI_ERROR(Status)) {
Status = PcdSet32S (PcdSetupConOutColumn, (UINT32) ModeInfo.Column);
if (!EFI_ERROR (Status)) {
Status = PcdSet32S (PcdSetupConOutColumn, (UINT32)ModeInfo.Column);
if (!EFI_ERROR (Status)) {
Status = PcdSet32S (PcdSetupConOutRow, (UINT32) ModeInfo.Row);
Status = PcdSet32S (PcdSetupConOutRow, (UINT32)ModeInfo.Row);
}
}