Rollback the change to EFI_BOOT_KEY_DATA structure since UEFI Spec adds the clarification that bitfields are ordered such that bit 0 is the least significant bit.
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15000 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@ -2,7 +2,7 @@
|
|||||||
Provides a way for 3rd party applications to register themselves for launch by the
|
Provides a way for 3rd party applications to register themselves for launch by the
|
||||||
Boot Manager based on hot key
|
Boot Manager based on hot key
|
||||||
|
|
||||||
Copyright (c) 2007 - 2012, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2007 - 2013, Intel Corporation. All rights reserved.<BR>
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
which accompanies this distribution. The full text of the license may be found at
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
@ -315,6 +315,7 @@ HotkeyInsertList (
|
|||||||
BDS_HOTKEY_OPTION *HotkeyLeft;
|
BDS_HOTKEY_OPTION *HotkeyLeft;
|
||||||
BDS_HOTKEY_OPTION *HotkeyRight;
|
BDS_HOTKEY_OPTION *HotkeyRight;
|
||||||
UINTN Index;
|
UINTN Index;
|
||||||
|
EFI_BOOT_KEY_DATA KeyOptions;
|
||||||
UINT32 KeyShiftStateLeft;
|
UINT32 KeyShiftStateLeft;
|
||||||
UINT32 KeyShiftStateRight;
|
UINT32 KeyShiftStateRight;
|
||||||
EFI_INPUT_KEY *InputKey;
|
EFI_INPUT_KEY *InputKey;
|
||||||
@ -327,28 +328,31 @@ HotkeyInsertList (
|
|||||||
|
|
||||||
HotkeyLeft->Signature = BDS_HOTKEY_OPTION_SIGNATURE;
|
HotkeyLeft->Signature = BDS_HOTKEY_OPTION_SIGNATURE;
|
||||||
HotkeyLeft->BootOptionNumber = KeyOption->BootOption;
|
HotkeyLeft->BootOptionNumber = KeyOption->BootOption;
|
||||||
HotkeyLeft->CodeCount = (UINT8) KEY_OPTION_INPUT_KEY_COUNT (KeyOption);
|
|
||||||
|
KeyOptions = KeyOption->KeyData;
|
||||||
|
|
||||||
|
HotkeyLeft->CodeCount = (UINT8) KeyOptions.Options.InputKeyCount;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Map key shift state from KeyOptions to EFI_KEY_DATA.KeyState
|
// Map key shift state from KeyOptions to EFI_KEY_DATA.KeyState
|
||||||
//
|
//
|
||||||
KeyShiftStateRight = EFI_SHIFT_STATE_VALID;
|
KeyShiftStateRight = EFI_SHIFT_STATE_VALID;
|
||||||
if (KEY_OPTION_SHIFT_PRESSED (KeyOption)) {
|
if (KeyOptions.Options.ShiftPressed) {
|
||||||
KeyShiftStateRight |= EFI_RIGHT_SHIFT_PRESSED;
|
KeyShiftStateRight |= EFI_RIGHT_SHIFT_PRESSED;
|
||||||
}
|
}
|
||||||
if (KEY_OPTION_CONTROL_PRESSED (KeyOption)) {
|
if (KeyOptions.Options.ControlPressed) {
|
||||||
KeyShiftStateRight |= EFI_RIGHT_CONTROL_PRESSED;
|
KeyShiftStateRight |= EFI_RIGHT_CONTROL_PRESSED;
|
||||||
}
|
}
|
||||||
if (KEY_OPTION_ALT_PRESSED (KeyOption)) {
|
if (KeyOptions.Options.AltPressed) {
|
||||||
KeyShiftStateRight |= EFI_RIGHT_ALT_PRESSED;
|
KeyShiftStateRight |= EFI_RIGHT_ALT_PRESSED;
|
||||||
}
|
}
|
||||||
if (KEY_OPTION_LOGO_PRESSED (KeyOption)) {
|
if (KeyOptions.Options.LogoPressed) {
|
||||||
KeyShiftStateRight |= EFI_RIGHT_LOGO_PRESSED;
|
KeyShiftStateRight |= EFI_RIGHT_LOGO_PRESSED;
|
||||||
}
|
}
|
||||||
if (KEY_OPTION_MENU_PRESSED (KeyOption)) {
|
if (KeyOptions.Options.MenuPressed) {
|
||||||
KeyShiftStateRight |= EFI_MENU_KEY_PRESSED;
|
KeyShiftStateRight |= EFI_MENU_KEY_PRESSED;
|
||||||
}
|
}
|
||||||
if (KEY_OPTION_SYS_REQ_PRESSED (KeyOption)) {
|
if (KeyOptions.Options.SysReqPressed) {
|
||||||
KeyShiftStateRight |= EFI_SYS_REQ_PRESSED;
|
KeyShiftStateRight |= EFI_SYS_REQ_PRESSED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
Provides a way for 3rd party applications to register themselves for launch by the
|
Provides a way for 3rd party applications to register themselves for launch by the
|
||||||
Boot Manager based on hot key
|
Boot Manager based on hot key
|
||||||
|
|
||||||
Copyright (c) 2007 - 2012, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2007 - 2013, Intel Corporation. All rights reserved.<BR>
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
which accompanies this distribution. The full text of the license may be found at
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
@ -25,83 +25,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
|
|
||||||
#define BDS_HOTKEY_OPTION_SIGNATURE SIGNATURE_32 ('B', 'd', 'K', 'O')
|
#define BDS_HOTKEY_OPTION_SIGNATURE SIGNATURE_32 ('B', 'd', 'K', 'O')
|
||||||
|
|
||||||
/**
|
|
||||||
Get the revision of the EFI_KEY_OPTION structure.
|
|
||||||
|
|
||||||
@param KeyOption Pointer to the EFI_KEY_OPTION structure.
|
|
||||||
|
|
||||||
@return Revision.
|
|
||||||
**/
|
|
||||||
#define KEY_OPTION_REVISION(KeyOption) ((KeyOption)->KeyData & EFI_KEY_OPTION_REVISION_MASK)
|
|
||||||
|
|
||||||
/**
|
|
||||||
Get the actual number of entries in EFI_KEY_OPTION.Keys, from 0-3.
|
|
||||||
|
|
||||||
@param KeyOption Pointer to the EFI_KEY_OPTION structure.
|
|
||||||
|
|
||||||
@return Actual number of entries in EFI_KEY_OPTION.Keys.
|
|
||||||
**/
|
|
||||||
#define KEY_OPTION_INPUT_KEY_COUNT(KeyOption) (((KeyOption)->KeyData & EFI_KEY_OPTION_INPUT_KEY_COUNT_MASK) >> LowBitSet32 (EFI_KEY_OPTION_INPUT_KEY_COUNT_MASK))
|
|
||||||
|
|
||||||
/**
|
|
||||||
Return whether the Shift key needs pressed.
|
|
||||||
|
|
||||||
@param KeyOption Pointer to the EFI_KEY_OPTION structure.
|
|
||||||
|
|
||||||
@retval TRUE Shift key needs pressed.
|
|
||||||
@retval FALSE Shift key needn't pressed.
|
|
||||||
**/
|
|
||||||
#define KEY_OPTION_SHIFT_PRESSED(KeyOption) (BOOLEAN) (((KeyOption)->KeyData & EFI_KEY_OPTION_SHIFT_PRESSED_MASK) != 0)
|
|
||||||
|
|
||||||
/**
|
|
||||||
Return whether the Control key needs pressed.
|
|
||||||
|
|
||||||
@param KeyOption Pointer to the EFI_KEY_OPTION structure.
|
|
||||||
|
|
||||||
@retval TRUE Control key needs pressed.
|
|
||||||
@retval FALSE Control key needn't pressed.
|
|
||||||
**/
|
|
||||||
#define KEY_OPTION_CONTROL_PRESSED(KeyOption) (BOOLEAN) (((KeyOption)->KeyData & EFI_KEY_OPTION_CONTROL_PRESSED_MASK) != 0)
|
|
||||||
|
|
||||||
/**
|
|
||||||
Return whether the Alt key needs pressed.
|
|
||||||
|
|
||||||
@param KeyOption Pointer to the EFI_KEY_OPTION structure.
|
|
||||||
|
|
||||||
@retval TRUE Alt key needs pressed.
|
|
||||||
@retval FALSE Alt key needn't pressed.
|
|
||||||
**/
|
|
||||||
#define KEY_OPTION_ALT_PRESSED(KeyOption) (BOOLEAN) (((KeyOption)->KeyData & EFI_KEY_OPTION_ALT_PRESSED_MASK) != 0)
|
|
||||||
|
|
||||||
/**
|
|
||||||
Return whether the Logo key needs pressed.
|
|
||||||
|
|
||||||
@param KeyOption Pointer to the EFI_KEY_OPTION structure.
|
|
||||||
|
|
||||||
@retval TRUE Logo key needs pressed.
|
|
||||||
@retval FALSE Logo key needn't pressed.
|
|
||||||
**/
|
|
||||||
#define KEY_OPTION_LOGO_PRESSED(KeyOption) (BOOLEAN) (((KeyOption)->KeyData & EFI_KEY_OPTION_LOGO_PRESSED_MASK) != 0)
|
|
||||||
|
|
||||||
/**
|
|
||||||
Return whether the Menu key needs pressed.
|
|
||||||
|
|
||||||
@param KeyOption Pointer to the EFI_KEY_OPTION structure.
|
|
||||||
|
|
||||||
@retval TRUE Menu key needs pressed.
|
|
||||||
@retval FALSE Menu key needn't pressed.
|
|
||||||
**/
|
|
||||||
#define KEY_OPTION_MENU_PRESSED(KeyOption) (BOOLEAN) (((KeyOption)->KeyData & EFI_KEY_OPTION_MENU_PRESSED_MASK) != 0)
|
|
||||||
|
|
||||||
/**
|
|
||||||
Return whether the SysReq key needs pressed.
|
|
||||||
|
|
||||||
@param KeyOption Pointer to the EFI_KEY_OPTION structure.
|
|
||||||
|
|
||||||
@retval TRUE SysReq key needs pressed.
|
|
||||||
@retval FALSE SysReq key needn't pressed.
|
|
||||||
**/
|
|
||||||
#define KEY_OPTION_SYS_REQ_PRESSED(KeyOption) (BOOLEAN) (((KeyOption)->KeyData & EFI_KEY_OPTION_SYS_REQ_PRESSED_MASK) != 0)
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
UINTN Signature;
|
UINTN Signature;
|
||||||
|
@ -2043,41 +2043,46 @@ EFI_STATUS
|
|||||||
///
|
///
|
||||||
/// EFI Boot Key Data
|
/// EFI Boot Key Data
|
||||||
///
|
///
|
||||||
typedef UINT32 EFI_BOOT_KEY_DATA;
|
typedef union {
|
||||||
///
|
struct {
|
||||||
/// Indicates the revision of the EFI_KEY_OPTION structure. This revision level should be 0.
|
///
|
||||||
///
|
/// Indicates the revision of the EFI_KEY_OPTION structure. This revision level should be 0.
|
||||||
#define EFI_KEY_OPTION_REVISION_MASK 0x000000FF
|
///
|
||||||
///
|
UINT32 Revision : 8;
|
||||||
/// Either the left or right Shift keys must be pressed (1) or must not be pressed (0).
|
///
|
||||||
///
|
/// Either the left or right Shift keys must be pressed (1) or must not be pressed (0).
|
||||||
#define EFI_KEY_OPTION_SHIFT_PRESSED_MASK BIT8
|
///
|
||||||
///
|
UINT32 ShiftPressed : 1;
|
||||||
/// Either the left or right Control keys must be pressed (1) or must not be pressed (0).
|
///
|
||||||
///
|
/// Either the left or right Control keys must be pressed (1) or must not be pressed (0).
|
||||||
#define EFI_KEY_OPTION_CONTROL_PRESSED_MASK BIT9
|
///
|
||||||
///
|
UINT32 ControlPressed : 1;
|
||||||
/// Either the left or right Alt keys must be pressed (1) or must not be pressed (0).
|
///
|
||||||
///
|
/// Either the left or right Alt keys must be pressed (1) or must not be pressed (0).
|
||||||
#define EFI_KEY_OPTION_ALT_PRESSED_MASK BIT10
|
///
|
||||||
///
|
UINT32 AltPressed : 1;
|
||||||
/// Either the left or right Logo keys must be pressed (1) or must not be pressed (0).
|
///
|
||||||
///
|
/// Either the left or right Logo keys must be pressed (1) or must not be pressed (0).
|
||||||
#define EFI_KEY_OPTION_LOGO_PRESSED_MASK BIT11
|
///
|
||||||
///
|
UINT32 LogoPressed : 1;
|
||||||
/// The Menu key must be pressed (1) or must not be pressed (0).
|
///
|
||||||
///
|
/// The Menu key must be pressed (1) or must not be pressed (0).
|
||||||
#define EFI_KEY_OPTION_MENU_PRESSED_MASK BIT12
|
///
|
||||||
///
|
UINT32 MenuPressed : 1;
|
||||||
/// The SysReq key must be pressed (1) or must not be pressed (0).
|
///
|
||||||
///
|
/// The SysReq key must be pressed (1) or must not be pressed (0).
|
||||||
#define EFI_KEY_OPTION_SYS_REQ_PRESSED_MASK BIT13
|
///
|
||||||
///
|
UINT32 SysReqPressed : 1;
|
||||||
/// Specifies the actual number of entries in EFI_KEY_OPTION.Keys, from 0-3. If
|
UINT32 Reserved : 16;
|
||||||
/// zero, then only the shift state is considered. If more than one, then the boot option will
|
///
|
||||||
/// only be launched if all of the specified keys are pressed with the same shift state.
|
/// Specifies the actual number of entries in EFI_KEY_OPTION.Keys, from 0-3. If
|
||||||
///
|
/// zero, then only the shift state is considered. If more than one, then the boot option will
|
||||||
#define EFI_KEY_OPTION_INPUT_KEY_COUNT_MASK (BIT30 | BIT31)
|
/// only be launched if all of the specified keys are pressed with the same shift state.
|
||||||
|
///
|
||||||
|
UINT32 InputKeyCount : 2;
|
||||||
|
} Options;
|
||||||
|
UINT32 PackedValue;
|
||||||
|
} EFI_BOOT_KEY_DATA;
|
||||||
|
|
||||||
///
|
///
|
||||||
/// EFI Key Option.
|
/// EFI Key Option.
|
||||||
|
@ -47,16 +47,6 @@ typedef struct {
|
|||||||
CONST CHAR16 *OptData;
|
CONST CHAR16 *OptData;
|
||||||
} BGFG_OPERATION;
|
} BGFG_OPERATION;
|
||||||
|
|
||||||
/**
|
|
||||||
Get the actual number of entries in EFI_KEY_OPTION.Keys, from 0-3.
|
|
||||||
|
|
||||||
@param KeyOption Pointer to the EFI_KEY_OPTION structure.
|
|
||||||
|
|
||||||
@return Actual number of entries in EFI_KEY_OPTION.Keys.
|
|
||||||
**/
|
|
||||||
#define KEY_OPTION_INPUT_KEY_COUNT(KeyOption) \
|
|
||||||
(((KeyOption)->KeyData & EFI_KEY_OPTION_INPUT_KEY_COUNT_MASK) >> LowBitSet32 (EFI_KEY_OPTION_INPUT_KEY_COUNT_MASK))
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Update the optional data for a boot or driver option.
|
Update the optional data for a boot or driver option.
|
||||||
|
|
||||||
@ -843,7 +833,7 @@ BcfgAddOptDebug1(
|
|||||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellDebug1HiiHandle, Walker);
|
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellDebug1HiiHandle, Walker);
|
||||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||||
}
|
}
|
||||||
NewKeyOption.KeyData = (UINT32)Intermediate;
|
NewKeyOption.KeyData.PackedValue = (UINT32)Intermediate;
|
||||||
Temp = StrStr(Walker, L" ");
|
Temp = StrStr(Walker, L" ");
|
||||||
if (Temp != NULL) {
|
if (Temp != NULL) {
|
||||||
Walker = Temp;
|
Walker = Temp;
|
||||||
@ -858,13 +848,13 @@ BcfgAddOptDebug1(
|
|||||||
// Now we know how many EFI_INPUT_KEY structs we need to attach to the end of the EFI_KEY_OPTION struct.
|
// Now we know how many EFI_INPUT_KEY structs we need to attach to the end of the EFI_KEY_OPTION struct.
|
||||||
// Re-allocate with the added information.
|
// Re-allocate with the added information.
|
||||||
//
|
//
|
||||||
KeyOptionBuffer = AllocateCopyPool(sizeof(EFI_KEY_OPTION) + (sizeof(EFI_KEY_DATA) * KEY_OPTION_INPUT_KEY_COUNT (&NewKeyOption)), &NewKeyOption);
|
KeyOptionBuffer = AllocateCopyPool(sizeof(EFI_KEY_OPTION) + (sizeof(EFI_KEY_DATA) * NewKeyOption.KeyData.Options.InputKeyCount), &NewKeyOption);
|
||||||
if (KeyOptionBuffer == NULL) {
|
if (KeyOptionBuffer == NULL) {
|
||||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_NO_MEM), gShellDebug1HiiHandle);
|
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_NO_MEM), gShellDebug1HiiHandle);
|
||||||
ShellStatus = SHELL_OUT_OF_RESOURCES;
|
ShellStatus = SHELL_OUT_OF_RESOURCES;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (LoopCounter = 0 ; ShellStatus == SHELL_SUCCESS && LoopCounter < KEY_OPTION_INPUT_KEY_COUNT (&NewKeyOption); LoopCounter++) {
|
for (LoopCounter = 0 ; ShellStatus == SHELL_SUCCESS && LoopCounter < NewKeyOption.KeyData.Options.InputKeyCount; LoopCounter++) {
|
||||||
//
|
//
|
||||||
// ScanCode
|
// ScanCode
|
||||||
//
|
//
|
||||||
@ -930,7 +920,7 @@ BcfgAddOptDebug1(
|
|||||||
VariableName,
|
VariableName,
|
||||||
(EFI_GUID*)&gEfiGlobalVariableGuid,
|
(EFI_GUID*)&gEfiGlobalVariableGuid,
|
||||||
EFI_VARIABLE_NON_VOLATILE|EFI_VARIABLE_BOOTSERVICE_ACCESS|EFI_VARIABLE_RUNTIME_ACCESS,
|
EFI_VARIABLE_NON_VOLATILE|EFI_VARIABLE_BOOTSERVICE_ACCESS|EFI_VARIABLE_RUNTIME_ACCESS,
|
||||||
sizeof(EFI_KEY_OPTION) + (sizeof(EFI_KEY_DATA) * KEY_OPTION_INPUT_KEY_COUNT (&NewKeyOption)),
|
sizeof(EFI_KEY_OPTION) + (sizeof(EFI_KEY_DATA) * NewKeyOption.KeyData.Options.InputKeyCount),
|
||||||
KeyOptionBuffer);
|
KeyOptionBuffer);
|
||||||
if (EFI_ERROR(Status)) {
|
if (EFI_ERROR(Status)) {
|
||||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_BCFG_SET_VAR_FAIL), gShellDebug1HiiHandle, VariableName, Status);
|
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_BCFG_SET_VAR_FAIL), gShellDebug1HiiHandle, VariableName, Status);
|
||||||
|
@ -47,16 +47,6 @@ typedef struct {
|
|||||||
CONST CHAR16 *OptData;
|
CONST CHAR16 *OptData;
|
||||||
} BGFG_OPERATION;
|
} BGFG_OPERATION;
|
||||||
|
|
||||||
/**
|
|
||||||
Get the actual number of entries in EFI_KEY_OPTION.Keys, from 0-3.
|
|
||||||
|
|
||||||
@param KeyOption Pointer to the EFI_KEY_OPTION structure.
|
|
||||||
|
|
||||||
@return Actual number of entries in EFI_KEY_OPTION.Keys.
|
|
||||||
**/
|
|
||||||
#define KEY_OPTION_INPUT_KEY_COUNT(KeyOption) \
|
|
||||||
(((KeyOption)->KeyData & EFI_KEY_OPTION_INPUT_KEY_COUNT_MASK) >> LowBitSet32 (EFI_KEY_OPTION_INPUT_KEY_COUNT_MASK))
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Update the optional data for a boot or driver option.
|
Update the optional data for a boot or driver option.
|
||||||
|
|
||||||
@ -841,7 +831,7 @@ BcfgAddOptInstall1(
|
|||||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellInstall1HiiHandle, Walker);
|
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellInstall1HiiHandle, Walker);
|
||||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||||
}
|
}
|
||||||
NewKeyOption.KeyData = (UINT32)Intermediate;
|
NewKeyOption.KeyData.PackedValue = (UINT32)Intermediate;
|
||||||
Temp = StrStr(Walker, L" ");
|
Temp = StrStr(Walker, L" ");
|
||||||
if (Temp != NULL) {
|
if (Temp != NULL) {
|
||||||
Walker = Temp;
|
Walker = Temp;
|
||||||
@ -856,13 +846,13 @@ BcfgAddOptInstall1(
|
|||||||
// Now we know how many EFI_INPUT_KEY structs we need to attach to the end of the EFI_KEY_OPTION struct.
|
// Now we know how many EFI_INPUT_KEY structs we need to attach to the end of the EFI_KEY_OPTION struct.
|
||||||
// Re-allocate with the added information.
|
// Re-allocate with the added information.
|
||||||
//
|
//
|
||||||
KeyOptionBuffer = AllocateCopyPool(sizeof(EFI_KEY_OPTION) + (sizeof(EFI_INPUT_KEY) * KEY_OPTION_INPUT_KEY_COUNT (&NewKeyOption)), &NewKeyOption);
|
KeyOptionBuffer = AllocateCopyPool(sizeof(EFI_KEY_OPTION) + (sizeof(EFI_INPUT_KEY) * NewKeyOption.KeyData.Options.InputKeyCount), &NewKeyOption);
|
||||||
if (KeyOptionBuffer == NULL) {
|
if (KeyOptionBuffer == NULL) {
|
||||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_NO_MEM), gShellInstall1HiiHandle);
|
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_NO_MEM), gShellInstall1HiiHandle);
|
||||||
ShellStatus = SHELL_OUT_OF_RESOURCES;
|
ShellStatus = SHELL_OUT_OF_RESOURCES;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (LoopCounter = 0 ; ShellStatus == SHELL_SUCCESS && LoopCounter < KEY_OPTION_INPUT_KEY_COUNT (&NewKeyOption); LoopCounter++) {
|
for (LoopCounter = 0 ; ShellStatus == SHELL_SUCCESS && LoopCounter < NewKeyOption.KeyData.Options.InputKeyCount; LoopCounter++) {
|
||||||
//
|
//
|
||||||
// ScanCode
|
// ScanCode
|
||||||
//
|
//
|
||||||
@ -928,7 +918,7 @@ BcfgAddOptInstall1(
|
|||||||
VariableName,
|
VariableName,
|
||||||
(EFI_GUID*)&gEfiGlobalVariableGuid,
|
(EFI_GUID*)&gEfiGlobalVariableGuid,
|
||||||
EFI_VARIABLE_NON_VOLATILE|EFI_VARIABLE_BOOTSERVICE_ACCESS|EFI_VARIABLE_RUNTIME_ACCESS,
|
EFI_VARIABLE_NON_VOLATILE|EFI_VARIABLE_BOOTSERVICE_ACCESS|EFI_VARIABLE_RUNTIME_ACCESS,
|
||||||
sizeof(EFI_KEY_OPTION) + (sizeof(EFI_INPUT_KEY) * KEY_OPTION_INPUT_KEY_COUNT (&NewKeyOption)),
|
sizeof(EFI_KEY_OPTION) + (sizeof(EFI_INPUT_KEY) * NewKeyOption.KeyData.Options.InputKeyCount),
|
||||||
KeyOptionBuffer);
|
KeyOptionBuffer);
|
||||||
if (EFI_ERROR(Status)) {
|
if (EFI_ERROR(Status)) {
|
||||||
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_BCFG_SET_VAR_FAIL), gShellInstall1HiiHandle, VariableName, Status);
|
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_BCFG_SET_VAR_FAIL), gShellInstall1HiiHandle, VariableName, Status);
|
||||||
|
Reference in New Issue
Block a user