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:
committed by
mergify[bot]
parent
7c7184e201
commit
1436aea4d5
@@ -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;
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
|
@@ -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;
|
||||
|
@@ -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
|
||||
|
@@ -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;
|
||||
}
|
||||
|
||||
|
@@ -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
|
||||
|
@@ -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);
|
||||
}
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -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,
|
||||
|
@@ -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
|
||||
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user