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
@@ -12,20 +12,19 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
//
|
||||
// Lock for linked list
|
||||
//
|
||||
EFI_LOCK mBmHotkeyLock = EFI_INITIALIZE_LOCK_VARIABLE (TPL_NOTIFY);
|
||||
LIST_ENTRY mBmHotkeyList = INITIALIZE_LIST_HEAD_VARIABLE (mBmHotkeyList);
|
||||
EFI_EVENT mBmHotkeyTriggered = NULL;
|
||||
BOOLEAN mBmHotkeyServiceStarted = FALSE;
|
||||
UINTN mBmHotkeySupportCount = 0;
|
||||
EFI_LOCK mBmHotkeyLock = EFI_INITIALIZE_LOCK_VARIABLE (TPL_NOTIFY);
|
||||
LIST_ENTRY mBmHotkeyList = INITIALIZE_LIST_HEAD_VARIABLE (mBmHotkeyList);
|
||||
EFI_EVENT mBmHotkeyTriggered = NULL;
|
||||
BOOLEAN mBmHotkeyServiceStarted = FALSE;
|
||||
UINTN mBmHotkeySupportCount = 0;
|
||||
|
||||
//
|
||||
// Set OptionNumber as unassigned value to indicate the option isn't initialized
|
||||
//
|
||||
EFI_BOOT_MANAGER_LOAD_OPTION mBmHotkeyBootOption = { LoadOptionNumberUnassigned };
|
||||
|
||||
EFI_BOOT_MANAGER_KEY_OPTION *mBmContinueKeyOption = NULL;
|
||||
VOID *mBmTxtInExRegistration = NULL;
|
||||
EFI_BOOT_MANAGER_LOAD_OPTION mBmHotkeyBootOption = { LoadOptionNumberUnassigned };
|
||||
|
||||
EFI_BOOT_MANAGER_KEY_OPTION *mBmContinueKeyOption = NULL;
|
||||
VOID *mBmTxtInExRegistration = NULL;
|
||||
|
||||
/**
|
||||
Return the buffer size of the EFI_BOOT_MANAGER_KEY_OPTION data.
|
||||
@@ -40,7 +39,7 @@ BmSizeOfKeyOption (
|
||||
)
|
||||
{
|
||||
return OFFSET_OF (EFI_BOOT_MANAGER_KEY_OPTION, Keys)
|
||||
+ KeyOption->KeyData.Options.InputKeyCount * sizeof (EFI_INPUT_KEY);
|
||||
+ KeyOption->KeyData.Options.InputKeyCount * sizeof (EFI_INPUT_KEY);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -55,14 +54,14 @@ BmSizeOfKeyOption (
|
||||
**/
|
||||
BOOLEAN
|
||||
BmIsKeyOptionValid (
|
||||
IN CONST EFI_BOOT_MANAGER_KEY_OPTION *KeyOption,
|
||||
IN UINTN KeyOptionSize
|
||||
)
|
||||
IN CONST EFI_BOOT_MANAGER_KEY_OPTION *KeyOption,
|
||||
IN UINTN KeyOptionSize
|
||||
)
|
||||
{
|
||||
UINT16 OptionName[BM_OPTION_NAME_LEN];
|
||||
UINT8 *BootOption;
|
||||
UINTN BootOptionSize;
|
||||
UINT32 Crc;
|
||||
UINT16 OptionName[BM_OPTION_NAME_LEN];
|
||||
UINT8 *BootOption;
|
||||
UINTN BootOptionSize;
|
||||
UINT32 Crc;
|
||||
|
||||
if (BmSizeOfKeyOption (KeyOption) != KeyOptionSize) {
|
||||
return FALSE;
|
||||
@@ -72,10 +71,13 @@ BmIsKeyOptionValid (
|
||||
// Check whether corresponding Boot Option exist
|
||||
//
|
||||
UnicodeSPrint (
|
||||
OptionName, sizeof (OptionName), L"%s%04x",
|
||||
mBmLoadOptionName[LoadOptionTypeBoot], KeyOption->BootOption
|
||||
OptionName,
|
||||
sizeof (OptionName),
|
||||
L"%s%04x",
|
||||
mBmLoadOptionName[LoadOptionTypeBoot],
|
||||
KeyOption->BootOption
|
||||
);
|
||||
GetEfiGlobalVariable2 (OptionName, (VOID **) &BootOption, &BootOptionSize);
|
||||
GetEfiGlobalVariable2 (OptionName, (VOID **)&BootOption, &BootOptionSize);
|
||||
|
||||
if (BootOption == NULL) {
|
||||
return FALSE;
|
||||
@@ -87,7 +89,7 @@ BmIsKeyOptionValid (
|
||||
gBS->CalculateCrc32 (BootOption, BootOptionSize, &Crc);
|
||||
FreePool (BootOption);
|
||||
|
||||
return (BOOLEAN) (KeyOption->BootOptionCrc == Crc);
|
||||
return (BOOLEAN)(KeyOption->BootOptionCrc == Crc);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -103,18 +105,19 @@ BmIsKeyOptionValid (
|
||||
**/
|
||||
BOOLEAN
|
||||
BmIsKeyOptionVariable (
|
||||
CHAR16 *Name,
|
||||
EFI_GUID *Guid,
|
||||
UINT16 *OptionNumber
|
||||
CHAR16 *Name,
|
||||
EFI_GUID *Guid,
|
||||
UINT16 *OptionNumber
|
||||
)
|
||||
{
|
||||
UINTN Index;
|
||||
UINTN Uint;
|
||||
UINTN Index;
|
||||
UINTN Uint;
|
||||
|
||||
if (!CompareGuid (Guid, &gEfiGlobalVariableGuid) ||
|
||||
(StrSize (Name) != sizeof (L"Key####")) ||
|
||||
(StrnCmp (Name, L"Key", 3) != 0)
|
||||
) {
|
||||
)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -124,7 +127,7 @@ BmIsKeyOptionVariable (
|
||||
if (Uint == -1) {
|
||||
return FALSE;
|
||||
} else {
|
||||
*OptionNumber = (UINT16) Uint + *OptionNumber * 0x10;
|
||||
*OptionNumber = (UINT16)Uint + *OptionNumber * 0x10;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -132,8 +135,8 @@ BmIsKeyOptionVariable (
|
||||
}
|
||||
|
||||
typedef struct {
|
||||
EFI_BOOT_MANAGER_KEY_OPTION *KeyOptions;
|
||||
UINTN KeyOptionCount;
|
||||
EFI_BOOT_MANAGER_KEY_OPTION *KeyOptions;
|
||||
UINTN KeyOptionCount;
|
||||
} BM_COLLECT_KEY_OPTIONS_PARAM;
|
||||
|
||||
/**
|
||||
@@ -145,18 +148,18 @@ typedef struct {
|
||||
**/
|
||||
VOID
|
||||
BmCollectKeyOptions (
|
||||
CHAR16 *Name,
|
||||
EFI_GUID *Guid,
|
||||
VOID *Context
|
||||
CHAR16 *Name,
|
||||
EFI_GUID *Guid,
|
||||
VOID *Context
|
||||
)
|
||||
{
|
||||
UINTN Index;
|
||||
BM_COLLECT_KEY_OPTIONS_PARAM *Param;
|
||||
VOID *KeyOption;
|
||||
UINT16 OptionNumber;
|
||||
UINTN KeyOptionSize;
|
||||
UINTN Index;
|
||||
BM_COLLECT_KEY_OPTIONS_PARAM *Param;
|
||||
VOID *KeyOption;
|
||||
UINT16 OptionNumber;
|
||||
UINTN KeyOptionSize;
|
||||
|
||||
Param = (BM_COLLECT_KEY_OPTIONS_PARAM *) Context;
|
||||
Param = (BM_COLLECT_KEY_OPTIONS_PARAM *)Context;
|
||||
|
||||
if (BmIsKeyOptionVariable (Name, Guid, &OptionNumber)) {
|
||||
GetEfiGlobalVariable2 (Name, &KeyOption, &KeyOptionSize);
|
||||
@@ -176,11 +179,13 @@ BmCollectKeyOptions (
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
CopyMem (&Param->KeyOptions[Index + 1], &Param->KeyOptions[Index], (Param->KeyOptionCount - Index) * sizeof (EFI_BOOT_MANAGER_KEY_OPTION));
|
||||
CopyMem (&Param->KeyOptions[Index], KeyOption, KeyOptionSize);
|
||||
Param->KeyOptions[Index].OptionNumber = OptionNumber;
|
||||
Param->KeyOptionCount++;
|
||||
}
|
||||
|
||||
FreePool (KeyOption);
|
||||
}
|
||||
}
|
||||
@@ -195,19 +200,19 @@ BmCollectKeyOptions (
|
||||
**/
|
||||
EFI_BOOT_MANAGER_KEY_OPTION *
|
||||
BmGetKeyOptions (
|
||||
OUT UINTN *Count
|
||||
OUT UINTN *Count
|
||||
)
|
||||
{
|
||||
BM_COLLECT_KEY_OPTIONS_PARAM Param;
|
||||
BM_COLLECT_KEY_OPTIONS_PARAM Param;
|
||||
|
||||
if (Count == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Param.KeyOptions = NULL;
|
||||
Param.KeyOptions = NULL;
|
||||
Param.KeyOptionCount = 0;
|
||||
|
||||
BmForEachVariable (BmCollectKeyOptions, (VOID *) &Param);
|
||||
BmForEachVariable (BmCollectKeyOptions, (VOID *)&Param);
|
||||
|
||||
*Count = Param.KeyOptionCount;
|
||||
|
||||
@@ -225,11 +230,11 @@ BmGetKeyOptions (
|
||||
**/
|
||||
BOOLEAN
|
||||
BmBitSet (
|
||||
IN UINT32 Value,
|
||||
IN UINT32 Bit
|
||||
IN UINT32 Value,
|
||||
IN UINT32 Bit
|
||||
)
|
||||
{
|
||||
return (BOOLEAN) ((Value & Bit) != 0);
|
||||
return (BOOLEAN)((Value & Bit) != 0);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -244,12 +249,12 @@ BmBitSet (
|
||||
**/
|
||||
EFI_STATUS
|
||||
BmInitializeKeyFields (
|
||||
IN UINT32 Modifier,
|
||||
IN VA_LIST Args,
|
||||
OUT EFI_BOOT_MANAGER_KEY_OPTION *KeyOption
|
||||
IN UINT32 Modifier,
|
||||
IN VA_LIST Args,
|
||||
OUT EFI_BOOT_MANAGER_KEY_OPTION *KeyOption
|
||||
)
|
||||
{
|
||||
EFI_INPUT_KEY *Key;
|
||||
EFI_INPUT_KEY *Key;
|
||||
|
||||
if (KeyOption == NULL) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
@@ -261,6 +266,7 @@ BmInitializeKeyFields (
|
||||
if (Key == NULL) {
|
||||
break;
|
||||
}
|
||||
|
||||
CopyMem (
|
||||
&KeyOption->Keys[KeyOption->KeyData.Options.InputKeyCount],
|
||||
Key,
|
||||
@@ -277,30 +283,36 @@ BmInitializeKeyFields (
|
||||
}
|
||||
|
||||
if ((Modifier & ~(EFI_BOOT_MANAGER_SHIFT_PRESSED
|
||||
| EFI_BOOT_MANAGER_CONTROL_PRESSED
|
||||
| EFI_BOOT_MANAGER_ALT_PRESSED
|
||||
| EFI_BOOT_MANAGER_LOGO_PRESSED
|
||||
| EFI_BOOT_MANAGER_MENU_KEY_PRESSED
|
||||
| EFI_BOOT_MANAGER_SYS_REQ_PRESSED
|
||||
)) != 0) {
|
||||
| EFI_BOOT_MANAGER_CONTROL_PRESSED
|
||||
| EFI_BOOT_MANAGER_ALT_PRESSED
|
||||
| EFI_BOOT_MANAGER_LOGO_PRESSED
|
||||
| EFI_BOOT_MANAGER_MENU_KEY_PRESSED
|
||||
| EFI_BOOT_MANAGER_SYS_REQ_PRESSED
|
||||
)) != 0)
|
||||
{
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
if (BmBitSet (Modifier, EFI_BOOT_MANAGER_SHIFT_PRESSED)) {
|
||||
KeyOption->KeyData.Options.ShiftPressed = 1;
|
||||
}
|
||||
|
||||
if (BmBitSet (Modifier, EFI_BOOT_MANAGER_CONTROL_PRESSED)) {
|
||||
KeyOption->KeyData.Options.ControlPressed = 1;
|
||||
}
|
||||
|
||||
if (BmBitSet (Modifier, EFI_BOOT_MANAGER_ALT_PRESSED)) {
|
||||
KeyOption->KeyData.Options.AltPressed = 1;
|
||||
}
|
||||
|
||||
if (BmBitSet (Modifier, EFI_BOOT_MANAGER_LOGO_PRESSED)) {
|
||||
KeyOption->KeyData.Options.LogoPressed = 1;
|
||||
}
|
||||
|
||||
if (BmBitSet (Modifier, EFI_BOOT_MANAGER_MENU_KEY_PRESSED)) {
|
||||
KeyOption->KeyData.Options.MenuPressed = 1;
|
||||
}
|
||||
|
||||
if (BmBitSet (Modifier, EFI_BOOT_MANAGER_SYS_REQ_PRESSED)) {
|
||||
KeyOption->KeyData.Options.SysReqPressed = 1;
|
||||
}
|
||||
@@ -337,14 +349,14 @@ EfiBootManagerHotkeyBoot (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
BmHotkeyCallback (
|
||||
IN EFI_KEY_DATA *KeyData
|
||||
)
|
||||
IN EFI_KEY_DATA *KeyData
|
||||
)
|
||||
{
|
||||
LIST_ENTRY *Link;
|
||||
BM_HOTKEY *Hotkey;
|
||||
CHAR16 OptionName[BM_OPTION_NAME_LEN];
|
||||
EFI_STATUS Status;
|
||||
EFI_KEY_DATA *HotkeyData;
|
||||
LIST_ENTRY *Link;
|
||||
BM_HOTKEY *Hotkey;
|
||||
CHAR16 OptionName[BM_OPTION_NAME_LEN];
|
||||
EFI_STATUS Status;
|
||||
EFI_KEY_DATA *HotkeyData;
|
||||
|
||||
if (mBmHotkeyBootOption.OptionNumber != LoadOptionNumberUnassigned) {
|
||||
//
|
||||
@@ -357,9 +369,10 @@ BmHotkeyCallback (
|
||||
|
||||
EfiAcquireLock (&mBmHotkeyLock);
|
||||
for ( Link = GetFirstNode (&mBmHotkeyList)
|
||||
; !IsNull (&mBmHotkeyList, Link)
|
||||
; Link = GetNextNode (&mBmHotkeyList, Link)
|
||||
) {
|
||||
; !IsNull (&mBmHotkeyList, Link)
|
||||
; Link = GetNextNode (&mBmHotkeyList, Link)
|
||||
)
|
||||
{
|
||||
Hotkey = BM_HOTKEY_FROM_LINK (Link);
|
||||
|
||||
//
|
||||
@@ -370,10 +383,10 @@ BmHotkeyCallback (
|
||||
if ((KeyData->Key.ScanCode == HotkeyData->Key.ScanCode) &&
|
||||
(KeyData->Key.UnicodeChar == HotkeyData->Key.UnicodeChar) &&
|
||||
(((KeyData->KeyState.KeyShiftState & EFI_SHIFT_STATE_VALID) != 0) ?
|
||||
(KeyData->KeyState.KeyShiftState == HotkeyData->KeyState.KeyShiftState) : TRUE
|
||||
(KeyData->KeyState.KeyShiftState == HotkeyData->KeyState.KeyShiftState) : TRUE
|
||||
)
|
||||
) {
|
||||
|
||||
)
|
||||
{
|
||||
//
|
||||
// Receive an expecting key stroke, transit to next waiting state
|
||||
//
|
||||
@@ -395,8 +408,11 @@ BmHotkeyCallback (
|
||||
// Launch its BootOption
|
||||
//
|
||||
UnicodeSPrint (
|
||||
OptionName, sizeof (OptionName), L"%s%04x",
|
||||
mBmLoadOptionName[LoadOptionTypeBoot], Hotkey->BootOption
|
||||
OptionName,
|
||||
sizeof (OptionName),
|
||||
L"%s%04x",
|
||||
mBmLoadOptionName[LoadOptionTypeBoot],
|
||||
Hotkey->BootOption
|
||||
);
|
||||
Status = EfiBootManagerVariableToLoadOption (OptionName, &mBmHotkeyBootOption);
|
||||
DEBUG ((DEBUG_INFO, "[Bds]Hotkey for %s pressed - %r\n", OptionName, Status));
|
||||
@@ -413,8 +429,8 @@ BmHotkeyCallback (
|
||||
//
|
||||
Hotkey->WaitingKey = 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
EfiReleaseLock (&mBmHotkeyLock);
|
||||
|
||||
return EFI_SUCCESS;
|
||||
@@ -432,11 +448,11 @@ BmHotkeyCallback (
|
||||
**/
|
||||
EFI_HANDLE *
|
||||
BmGetActiveConsoleIn (
|
||||
OUT UINTN *Count
|
||||
OUT UINTN *Count
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_HANDLE *Handles;
|
||||
EFI_STATUS Status;
|
||||
EFI_HANDLE *Handles;
|
||||
|
||||
Handles = NULL;
|
||||
*Count = 0;
|
||||
@@ -479,20 +495,20 @@ BmGetActiveConsoleIn (
|
||||
**/
|
||||
EFI_STATUS
|
||||
BmUnregisterHotkeyNotify (
|
||||
IN BM_HOTKEY *Hotkey
|
||||
IN BM_HOTKEY *Hotkey
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
UINTN Index;
|
||||
UINTN KeyIndex;
|
||||
EFI_HANDLE *Handles;
|
||||
UINTN HandleCount;
|
||||
EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *TxtInEx;
|
||||
VOID *NotifyHandle;
|
||||
EFI_STATUS Status;
|
||||
UINTN Index;
|
||||
UINTN KeyIndex;
|
||||
EFI_HANDLE *Handles;
|
||||
UINTN HandleCount;
|
||||
EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *TxtInEx;
|
||||
VOID *NotifyHandle;
|
||||
|
||||
Handles = BmGetActiveConsoleIn (&HandleCount);
|
||||
for (Index = 0; Index < HandleCount; Index++) {
|
||||
Status = gBS->HandleProtocol (Handles[Index], &gEfiSimpleTextInputExProtocolGuid, (VOID **) &TxtInEx);
|
||||
Status = gBS->HandleProtocol (Handles[Index], &gEfiSimpleTextInputExProtocolGuid, (VOID **)&TxtInEx);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
for (KeyIndex = 0; KeyIndex < Hotkey->CodeCount; KeyIndex++) {
|
||||
Status = TxtInEx->RegisterKeyNotify (
|
||||
@@ -530,9 +546,9 @@ BmRegisterHotkeyNotify (
|
||||
IN BM_HOTKEY *Hotkey
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
UINTN Index;
|
||||
VOID *NotifyHandle;
|
||||
EFI_STATUS Status;
|
||||
UINTN Index;
|
||||
VOID *NotifyHandle;
|
||||
|
||||
for (Index = 0; Index < Hotkey->CodeCount; Index++) {
|
||||
Status = TxtInEx->RegisterKeyNotify (
|
||||
@@ -573,58 +589,64 @@ BmRegisterHotkeyNotify (
|
||||
**/
|
||||
VOID
|
||||
BmGenerateKeyShiftState (
|
||||
IN UINTN Depth,
|
||||
IN EFI_BOOT_MANAGER_KEY_OPTION *KeyOption,
|
||||
IN UINT32 KeyShiftState,
|
||||
IN UINT32 *KeyShiftStates,
|
||||
IN UINTN *KeyShiftStateCount
|
||||
IN UINTN Depth,
|
||||
IN EFI_BOOT_MANAGER_KEY_OPTION *KeyOption,
|
||||
IN UINT32 KeyShiftState,
|
||||
IN UINT32 *KeyShiftStates,
|
||||
IN UINTN *KeyShiftStateCount
|
||||
)
|
||||
{
|
||||
switch (Depth) {
|
||||
case 0:
|
||||
if (KeyOption->KeyData.Options.ShiftPressed) {
|
||||
BmGenerateKeyShiftState (Depth + 1, KeyOption, KeyShiftState | EFI_RIGHT_SHIFT_PRESSED, KeyShiftStates, KeyShiftStateCount);
|
||||
BmGenerateKeyShiftState (Depth + 1, KeyOption, KeyShiftState | EFI_LEFT_SHIFT_PRESSED, KeyShiftStates, KeyShiftStateCount);
|
||||
} else {
|
||||
BmGenerateKeyShiftState (Depth + 1, KeyOption, KeyShiftState, KeyShiftStates, KeyShiftStateCount);
|
||||
}
|
||||
break;
|
||||
case 0:
|
||||
if (KeyOption->KeyData.Options.ShiftPressed) {
|
||||
BmGenerateKeyShiftState (Depth + 1, KeyOption, KeyShiftState | EFI_RIGHT_SHIFT_PRESSED, KeyShiftStates, KeyShiftStateCount);
|
||||
BmGenerateKeyShiftState (Depth + 1, KeyOption, KeyShiftState | EFI_LEFT_SHIFT_PRESSED, KeyShiftStates, KeyShiftStateCount);
|
||||
} else {
|
||||
BmGenerateKeyShiftState (Depth + 1, KeyOption, KeyShiftState, KeyShiftStates, KeyShiftStateCount);
|
||||
}
|
||||
|
||||
case 1:
|
||||
if (KeyOption->KeyData.Options.ControlPressed) {
|
||||
BmGenerateKeyShiftState (Depth + 1, KeyOption, KeyShiftState | EFI_RIGHT_CONTROL_PRESSED, KeyShiftStates, KeyShiftStateCount);
|
||||
BmGenerateKeyShiftState (Depth + 1, KeyOption, KeyShiftState | EFI_LEFT_CONTROL_PRESSED, KeyShiftStates, KeyShiftStateCount);
|
||||
} else {
|
||||
BmGenerateKeyShiftState (Depth + 1, KeyOption, KeyShiftState, KeyShiftStates, KeyShiftStateCount);
|
||||
}
|
||||
break;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
if (KeyOption->KeyData.Options.AltPressed) {
|
||||
BmGenerateKeyShiftState (Depth + 1, KeyOption, KeyShiftState | EFI_RIGHT_ALT_PRESSED, KeyShiftStates, KeyShiftStateCount);
|
||||
BmGenerateKeyShiftState (Depth + 1, KeyOption, KeyShiftState | EFI_LEFT_ALT_PRESSED, KeyShiftStates, KeyShiftStateCount);
|
||||
} else {
|
||||
BmGenerateKeyShiftState (Depth + 1, KeyOption, KeyShiftState, KeyShiftStates, KeyShiftStateCount);
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (KeyOption->KeyData.Options.LogoPressed) {
|
||||
BmGenerateKeyShiftState (Depth + 1, KeyOption, KeyShiftState | EFI_RIGHT_LOGO_PRESSED, KeyShiftStates, KeyShiftStateCount);
|
||||
BmGenerateKeyShiftState (Depth + 1, KeyOption, KeyShiftState | EFI_LEFT_LOGO_PRESSED, KeyShiftStates, KeyShiftStateCount);
|
||||
} else {
|
||||
BmGenerateKeyShiftState (Depth + 1, KeyOption, KeyShiftState, KeyShiftStates, KeyShiftStateCount);
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
if (KeyOption->KeyData.Options.MenuPressed) {
|
||||
KeyShiftState |= EFI_MENU_KEY_PRESSED;
|
||||
}
|
||||
if (KeyOption->KeyData.Options.SysReqPressed) {
|
||||
KeyShiftState |= EFI_SYS_REQ_PRESSED;
|
||||
}
|
||||
KeyShiftStates[*KeyShiftStateCount] = KeyShiftState;
|
||||
(*KeyShiftStateCount)++;
|
||||
break;
|
||||
case 1:
|
||||
if (KeyOption->KeyData.Options.ControlPressed) {
|
||||
BmGenerateKeyShiftState (Depth + 1, KeyOption, KeyShiftState | EFI_RIGHT_CONTROL_PRESSED, KeyShiftStates, KeyShiftStateCount);
|
||||
BmGenerateKeyShiftState (Depth + 1, KeyOption, KeyShiftState | EFI_LEFT_CONTROL_PRESSED, KeyShiftStates, KeyShiftStateCount);
|
||||
} else {
|
||||
BmGenerateKeyShiftState (Depth + 1, KeyOption, KeyShiftState, KeyShiftStates, KeyShiftStateCount);
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 2:
|
||||
if (KeyOption->KeyData.Options.AltPressed) {
|
||||
BmGenerateKeyShiftState (Depth + 1, KeyOption, KeyShiftState | EFI_RIGHT_ALT_PRESSED, KeyShiftStates, KeyShiftStateCount);
|
||||
BmGenerateKeyShiftState (Depth + 1, KeyOption, KeyShiftState | EFI_LEFT_ALT_PRESSED, KeyShiftStates, KeyShiftStateCount);
|
||||
} else {
|
||||
BmGenerateKeyShiftState (Depth + 1, KeyOption, KeyShiftState, KeyShiftStates, KeyShiftStateCount);
|
||||
}
|
||||
|
||||
break;
|
||||
case 3:
|
||||
if (KeyOption->KeyData.Options.LogoPressed) {
|
||||
BmGenerateKeyShiftState (Depth + 1, KeyOption, KeyShiftState | EFI_RIGHT_LOGO_PRESSED, KeyShiftStates, KeyShiftStateCount);
|
||||
BmGenerateKeyShiftState (Depth + 1, KeyOption, KeyShiftState | EFI_LEFT_LOGO_PRESSED, KeyShiftStates, KeyShiftStateCount);
|
||||
} else {
|
||||
BmGenerateKeyShiftState (Depth + 1, KeyOption, KeyShiftState, KeyShiftStates, KeyShiftStateCount);
|
||||
}
|
||||
|
||||
break;
|
||||
case 4:
|
||||
if (KeyOption->KeyData.Options.MenuPressed) {
|
||||
KeyShiftState |= EFI_MENU_KEY_PRESSED;
|
||||
}
|
||||
|
||||
if (KeyOption->KeyData.Options.SysReqPressed) {
|
||||
KeyShiftState |= EFI_SYS_REQ_PRESSED;
|
||||
}
|
||||
|
||||
KeyShiftStates[*KeyShiftStateCount] = KeyShiftState;
|
||||
(*KeyShiftStateCount)++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -636,22 +658,22 @@ BmGenerateKeyShiftState (
|
||||
**/
|
||||
EFI_STATUS
|
||||
BmProcessKeyOption (
|
||||
IN EFI_BOOT_MANAGER_KEY_OPTION *KeyOption
|
||||
IN EFI_BOOT_MANAGER_KEY_OPTION *KeyOption
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *TxtInEx;
|
||||
EFI_HANDLE *Handles;
|
||||
UINTN HandleCount;
|
||||
UINTN HandleIndex;
|
||||
UINTN Index;
|
||||
BM_HOTKEY *Hotkey;
|
||||
UINTN KeyIndex;
|
||||
EFI_STATUS Status;
|
||||
EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *TxtInEx;
|
||||
EFI_HANDLE *Handles;
|
||||
UINTN HandleCount;
|
||||
UINTN HandleIndex;
|
||||
UINTN Index;
|
||||
BM_HOTKEY *Hotkey;
|
||||
UINTN KeyIndex;
|
||||
//
|
||||
// 16 is enough to enumerate all the possible combination of LEFT_XXX and RIGHT_XXX
|
||||
//
|
||||
UINT32 KeyShiftStates[16];
|
||||
UINTN KeyShiftStateCount;
|
||||
UINT32 KeyShiftStates[16];
|
||||
UINTN KeyShiftStateCount;
|
||||
|
||||
if (KeyOption->KeyData.Options.InputKeyCount > mBmHotkeySupportCount) {
|
||||
return EFI_UNSUPPORTED;
|
||||
@@ -671,17 +693,18 @@ BmProcessKeyOption (
|
||||
|
||||
Hotkey->Signature = BM_HOTKEY_SIGNATURE;
|
||||
Hotkey->BootOption = KeyOption->BootOption;
|
||||
Hotkey->IsContinue = (BOOLEAN) (KeyOption == mBmContinueKeyOption);
|
||||
Hotkey->CodeCount = (UINT8) KeyOption->KeyData.Options.InputKeyCount;
|
||||
Hotkey->IsContinue = (BOOLEAN)(KeyOption == mBmContinueKeyOption);
|
||||
Hotkey->CodeCount = (UINT8)KeyOption->KeyData.Options.InputKeyCount;
|
||||
|
||||
for (KeyIndex = 0; KeyIndex < Hotkey->CodeCount; KeyIndex++) {
|
||||
CopyMem (&Hotkey->KeyData[KeyIndex].Key, &KeyOption->Keys[KeyIndex], sizeof (EFI_INPUT_KEY));
|
||||
Hotkey->KeyData[KeyIndex].KeyState.KeyShiftState = KeyShiftStates[Index];
|
||||
}
|
||||
|
||||
InsertTailList (&mBmHotkeyList, &Hotkey->Link);
|
||||
|
||||
for (HandleIndex = 0; HandleIndex < HandleCount; HandleIndex++) {
|
||||
Status = gBS->HandleProtocol (Handles[HandleIndex], &gEfiSimpleTextInputExProtocolGuid, (VOID **) &TxtInEx);
|
||||
Status = gBS->HandleProtocol (Handles[HandleIndex], &gEfiSimpleTextInputExProtocolGuid, (VOID **)&TxtInEx);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
BmRegisterHotkeyNotify (TxtInEx, Hotkey);
|
||||
}
|
||||
@@ -690,6 +713,7 @@ BmProcessKeyOption (
|
||||
if (Handles != NULL) {
|
||||
FreePool (Handles);
|
||||
}
|
||||
|
||||
EfiReleaseLock (&mBmHotkeyLock);
|
||||
|
||||
return EFI_SUCCESS;
|
||||
@@ -705,8 +729,8 @@ BmProcessKeyOption (
|
||||
VOID
|
||||
EFIAPI
|
||||
BmTxtInExCallback (
|
||||
IN EFI_EVENT Event,
|
||||
IN VOID *Context
|
||||
IN EFI_EVENT Event,
|
||||
IN VOID *Context
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
@@ -717,24 +741,24 @@ BmTxtInExCallback (
|
||||
|
||||
while (TRUE) {
|
||||
BufferSize = sizeof (EFI_HANDLE);
|
||||
Status = gBS->LocateHandle (
|
||||
ByRegisterNotify,
|
||||
NULL,
|
||||
mBmTxtInExRegistration,
|
||||
&BufferSize,
|
||||
&Handle
|
||||
);
|
||||
Status = gBS->LocateHandle (
|
||||
ByRegisterNotify,
|
||||
NULL,
|
||||
mBmTxtInExRegistration,
|
||||
&BufferSize,
|
||||
&Handle
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
//
|
||||
// If no more notification events exist
|
||||
//
|
||||
return ;
|
||||
return;
|
||||
}
|
||||
|
||||
Status = gBS->HandleProtocol (
|
||||
Handle,
|
||||
&gEfiSimpleTextInputExProtocolGuid,
|
||||
(VOID **) &TxtInEx
|
||||
(VOID **)&TxtInEx
|
||||
);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
|
||||
@@ -745,6 +769,7 @@ BmTxtInExCallback (
|
||||
for (Link = GetFirstNode (&mBmHotkeyList); !IsNull (&mBmHotkeyList, Link); Link = GetNextNode (&mBmHotkeyList, Link)) {
|
||||
BmRegisterHotkeyNotify (TxtInEx, BM_HOTKEY_FROM_LINK (Link));
|
||||
}
|
||||
|
||||
EfiReleaseLock (&mBmHotkeyLock);
|
||||
}
|
||||
}
|
||||
@@ -760,8 +785,8 @@ BmTxtInExCallback (
|
||||
**/
|
||||
EFI_STATUS
|
||||
BmFreeKeyOptions (
|
||||
IN EFI_BOOT_MANAGER_KEY_OPTION *KeyOptions,
|
||||
IN UINTN KeyOptionCount
|
||||
IN EFI_BOOT_MANAGER_KEY_OPTION *KeyOptions,
|
||||
IN UINTN KeyOptionCount
|
||||
)
|
||||
{
|
||||
if (KeyOptions != NULL) {
|
||||
@@ -786,7 +811,7 @@ BmFreeKeyOptions (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
EfiBootManagerRegisterContinueKeyOption (
|
||||
IN UINT32 Modifier,
|
||||
IN UINT32 Modifier,
|
||||
...
|
||||
)
|
||||
{
|
||||
@@ -823,12 +848,12 @@ EfiBootManagerRegisterContinueKeyOption (
|
||||
VOID
|
||||
EFIAPI
|
||||
BmStopHotkeyService (
|
||||
IN EFI_EVENT Event,
|
||||
IN VOID *Context
|
||||
IN EFI_EVENT Event,
|
||||
IN VOID *Context
|
||||
)
|
||||
{
|
||||
LIST_ENTRY *Link;
|
||||
BM_HOTKEY *Hotkey;
|
||||
LIST_ENTRY *Link;
|
||||
BM_HOTKEY *Hotkey;
|
||||
|
||||
DEBUG ((DEBUG_INFO, "[Bds]Stop Hotkey Service!\n"));
|
||||
gBS->CloseEvent (Event);
|
||||
@@ -837,9 +862,10 @@ BmStopHotkeyService (
|
||||
for (Link = GetFirstNode (&mBmHotkeyList); !IsNull (&mBmHotkeyList, Link); ) {
|
||||
Hotkey = BM_HOTKEY_FROM_LINK (Link);
|
||||
BmUnregisterHotkeyNotify (Hotkey);
|
||||
Link = RemoveEntryList (Link);
|
||||
Link = RemoveEntryList (Link);
|
||||
FreePool (Hotkey);
|
||||
}
|
||||
|
||||
EfiReleaseLock (&mBmHotkeyLock);
|
||||
}
|
||||
|
||||
@@ -854,7 +880,7 @@ BmStopHotkeyService (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
EfiBootManagerStartHotkeyService (
|
||||
IN EFI_EVENT *HotkeyTriggered
|
||||
IN EFI_EVENT *HotkeyTriggered
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
@@ -864,11 +890,12 @@ EfiBootManagerStartHotkeyService (
|
||||
EFI_EVENT Event;
|
||||
UINT32 *BootOptionSupport;
|
||||
|
||||
GetEfiGlobalVariable2 (EFI_BOOT_OPTION_SUPPORT_VARIABLE_NAME, (VOID **) &BootOptionSupport, NULL);
|
||||
GetEfiGlobalVariable2 (EFI_BOOT_OPTION_SUPPORT_VARIABLE_NAME, (VOID **)&BootOptionSupport, NULL);
|
||||
if (BootOptionSupport != NULL) {
|
||||
if ((*BootOptionSupport & EFI_BOOT_OPTION_SUPPORT_KEY) != 0) {
|
||||
mBmHotkeySupportCount = ((*BootOptionSupport & EFI_BOOT_OPTION_SUPPORT_COUNT) >> LowBitSet32 (EFI_BOOT_OPTION_SUPPORT_COUNT));
|
||||
}
|
||||
|
||||
FreePool (BootOptionSupport);
|
||||
}
|
||||
|
||||
@@ -891,9 +918,10 @@ EfiBootManagerStartHotkeyService (
|
||||
}
|
||||
|
||||
KeyOptions = BmGetKeyOptions (&KeyOptionCount);
|
||||
for (Index = 0; Index < KeyOptionCount; Index ++) {
|
||||
for (Index = 0; Index < KeyOptionCount; Index++) {
|
||||
BmProcessKeyOption (&KeyOptions[Index]);
|
||||
}
|
||||
|
||||
BmFreeKeyOptions (KeyOptions, KeyOptionCount);
|
||||
|
||||
if (mBmContinueKeyOption != NULL) {
|
||||
@@ -942,27 +970,30 @@ EfiBootManagerStartHotkeyService (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
EfiBootManagerAddKeyOptionVariable (
|
||||
OUT EFI_BOOT_MANAGER_KEY_OPTION *AddedOption OPTIONAL,
|
||||
IN UINT16 BootOptionNumber,
|
||||
IN UINT32 Modifier,
|
||||
OUT EFI_BOOT_MANAGER_KEY_OPTION *AddedOption OPTIONAL,
|
||||
IN UINT16 BootOptionNumber,
|
||||
IN UINT32 Modifier,
|
||||
...
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
VA_LIST Args;
|
||||
VOID *BootOption;
|
||||
UINTN BootOptionSize;
|
||||
CHAR16 BootOptionName[BM_OPTION_NAME_LEN];
|
||||
EFI_BOOT_MANAGER_KEY_OPTION KeyOption;
|
||||
EFI_BOOT_MANAGER_KEY_OPTION *KeyOptions;
|
||||
UINTN KeyOptionCount;
|
||||
UINTN Index;
|
||||
UINTN KeyOptionNumber;
|
||||
CHAR16 KeyOptionName[sizeof ("Key####")];
|
||||
EFI_STATUS Status;
|
||||
VA_LIST Args;
|
||||
VOID *BootOption;
|
||||
UINTN BootOptionSize;
|
||||
CHAR16 BootOptionName[BM_OPTION_NAME_LEN];
|
||||
EFI_BOOT_MANAGER_KEY_OPTION KeyOption;
|
||||
EFI_BOOT_MANAGER_KEY_OPTION *KeyOptions;
|
||||
UINTN KeyOptionCount;
|
||||
UINTN Index;
|
||||
UINTN KeyOptionNumber;
|
||||
CHAR16 KeyOptionName[sizeof ("Key####")];
|
||||
|
||||
UnicodeSPrint (
|
||||
BootOptionName, sizeof (BootOptionName), L"%s%04x",
|
||||
mBmLoadOptionName[LoadOptionTypeBoot], BootOptionNumber
|
||||
BootOptionName,
|
||||
sizeof (BootOptionName),
|
||||
L"%s%04x",
|
||||
mBmLoadOptionName[LoadOptionTypeBoot],
|
||||
BootOptionNumber
|
||||
);
|
||||
GetEfiGlobalVariable2 (BootOptionName, &BootOption, &BootOptionSize);
|
||||
|
||||
@@ -972,7 +1003,7 @@ EfiBootManagerAddKeyOptionVariable (
|
||||
|
||||
ZeroMem (&KeyOption, sizeof (EFI_BOOT_MANAGER_KEY_OPTION));
|
||||
KeyOption.BootOption = BootOptionNumber;
|
||||
Status = gBS->CalculateCrc32 (BootOption, BootOptionSize, &KeyOption.BootOptionCrc);
|
||||
Status = gBS->CalculateCrc32 (BootOption, BootOptionSize, &KeyOption.BootOptionCrc);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
FreePool (BootOption);
|
||||
|
||||
@@ -990,16 +1021,19 @@ EfiBootManagerAddKeyOptionVariable (
|
||||
KeyOptions = BmGetKeyOptions (&KeyOptionCount);
|
||||
for (Index = 0; Index < KeyOptionCount; Index++) {
|
||||
if ((KeyOptions[Index].KeyData.PackedValue == KeyOption.KeyData.PackedValue) &&
|
||||
(CompareMem (KeyOptions[Index].Keys, KeyOption.Keys, KeyOption.KeyData.Options.InputKeyCount * sizeof (EFI_INPUT_KEY)) == 0)) {
|
||||
(CompareMem (KeyOptions[Index].Keys, KeyOption.Keys, KeyOption.KeyData.Options.InputKeyCount * sizeof (EFI_INPUT_KEY)) == 0))
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
if ((KeyOptionNumber == LoadOptionNumberUnassigned) &&
|
||||
(KeyOptions[Index].OptionNumber > Index)
|
||||
){
|
||||
)
|
||||
{
|
||||
KeyOptionNumber = Index;
|
||||
}
|
||||
}
|
||||
|
||||
BmFreeKeyOptions (KeyOptions, KeyOptionCount);
|
||||
|
||||
if (Index < KeyOptionCount) {
|
||||
@@ -1053,22 +1087,22 @@ EfiBootManagerAddKeyOptionVariable (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
EfiBootManagerDeleteKeyOptionVariable (
|
||||
IN EFI_BOOT_MANAGER_KEY_OPTION *DeletedOption OPTIONAL,
|
||||
IN UINT32 Modifier,
|
||||
IN EFI_BOOT_MANAGER_KEY_OPTION *DeletedOption OPTIONAL,
|
||||
IN UINT32 Modifier,
|
||||
...
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
UINTN Index;
|
||||
VA_LIST Args;
|
||||
EFI_BOOT_MANAGER_KEY_OPTION KeyOption;
|
||||
EFI_BOOT_MANAGER_KEY_OPTION *KeyOptions;
|
||||
UINTN KeyOptionCount;
|
||||
LIST_ENTRY *Link;
|
||||
BM_HOTKEY *Hotkey;
|
||||
UINT32 ShiftState;
|
||||
BOOLEAN Match;
|
||||
CHAR16 KeyOptionName[sizeof ("Key####")];
|
||||
EFI_STATUS Status;
|
||||
UINTN Index;
|
||||
VA_LIST Args;
|
||||
EFI_BOOT_MANAGER_KEY_OPTION KeyOption;
|
||||
EFI_BOOT_MANAGER_KEY_OPTION *KeyOptions;
|
||||
UINTN KeyOptionCount;
|
||||
LIST_ENTRY *Link;
|
||||
BM_HOTKEY *Hotkey;
|
||||
UINT32 ShiftState;
|
||||
BOOLEAN Match;
|
||||
CHAR16 KeyOptionName[sizeof ("Key####")];
|
||||
|
||||
ZeroMem (&KeyOption, sizeof (EFI_BOOT_MANAGER_KEY_OPTION));
|
||||
VA_START (Args, Modifier);
|
||||
@@ -1086,19 +1120,20 @@ EfiBootManagerDeleteKeyOptionVariable (
|
||||
//
|
||||
for (Link = GetFirstNode (&mBmHotkeyList); !IsNull (&mBmHotkeyList, Link); ) {
|
||||
Hotkey = BM_HOTKEY_FROM_LINK (Link);
|
||||
Match = (BOOLEAN) (Hotkey->CodeCount == KeyOption.KeyData.Options.InputKeyCount);
|
||||
Match = (BOOLEAN)(Hotkey->CodeCount == KeyOption.KeyData.Options.InputKeyCount);
|
||||
|
||||
for (Index = 0; Match && (Index < Hotkey->CodeCount); Index++) {
|
||||
ShiftState = Hotkey->KeyData[Index].KeyState.KeyShiftState;
|
||||
if (
|
||||
(BmBitSet (ShiftState, EFI_RIGHT_SHIFT_PRESSED | EFI_LEFT_SHIFT_PRESSED) != KeyOption.KeyData.Options.ShiftPressed) ||
|
||||
(BmBitSet (ShiftState, EFI_RIGHT_CONTROL_PRESSED | EFI_LEFT_CONTROL_PRESSED) != KeyOption.KeyData.Options.ControlPressed) ||
|
||||
(BmBitSet (ShiftState, EFI_RIGHT_ALT_PRESSED | EFI_LEFT_ALT_PRESSED) != KeyOption.KeyData.Options.AltPressed) ||
|
||||
(BmBitSet (ShiftState, EFI_RIGHT_LOGO_PRESSED | EFI_LEFT_LOGO_PRESSED) != KeyOption.KeyData.Options.LogoPressed) ||
|
||||
(BmBitSet (ShiftState, EFI_MENU_KEY_PRESSED) != KeyOption.KeyData.Options.MenuPressed) ||
|
||||
(BmBitSet (ShiftState, EFI_SYS_REQ_PRESSED) != KeyOption.KeyData.Options.SysReqPressed) ||
|
||||
(CompareMem (&Hotkey->KeyData[Index].Key, &KeyOption.Keys[Index], sizeof (EFI_INPUT_KEY)) != 0)
|
||||
) {
|
||||
(BmBitSet (ShiftState, EFI_RIGHT_SHIFT_PRESSED | EFI_LEFT_SHIFT_PRESSED) != KeyOption.KeyData.Options.ShiftPressed) ||
|
||||
(BmBitSet (ShiftState, EFI_RIGHT_CONTROL_PRESSED | EFI_LEFT_CONTROL_PRESSED) != KeyOption.KeyData.Options.ControlPressed) ||
|
||||
(BmBitSet (ShiftState, EFI_RIGHT_ALT_PRESSED | EFI_LEFT_ALT_PRESSED) != KeyOption.KeyData.Options.AltPressed) ||
|
||||
(BmBitSet (ShiftState, EFI_RIGHT_LOGO_PRESSED | EFI_LEFT_LOGO_PRESSED) != KeyOption.KeyData.Options.LogoPressed) ||
|
||||
(BmBitSet (ShiftState, EFI_MENU_KEY_PRESSED) != KeyOption.KeyData.Options.MenuPressed) ||
|
||||
(BmBitSet (ShiftState, EFI_SYS_REQ_PRESSED) != KeyOption.KeyData.Options.SysReqPressed) ||
|
||||
(CompareMem (&Hotkey->KeyData[Index].Key, &KeyOption.Keys[Index], sizeof (EFI_INPUT_KEY)) != 0)
|
||||
)
|
||||
{
|
||||
//
|
||||
// Break when any field doesn't match
|
||||
//
|
||||
@@ -1123,26 +1158,31 @@ EfiBootManagerDeleteKeyOptionVariable (
|
||||
for (Index = 0; Index < KeyOptionCount; Index++) {
|
||||
if ((KeyOptions[Index].KeyData.PackedValue == KeyOption.KeyData.PackedValue) &&
|
||||
(CompareMem (
|
||||
KeyOptions[Index].Keys, KeyOption.Keys,
|
||||
KeyOption.KeyData.Options.InputKeyCount * sizeof (EFI_INPUT_KEY)) == 0)
|
||||
) {
|
||||
KeyOptions[Index].Keys,
|
||||
KeyOption.Keys,
|
||||
KeyOption.KeyData.Options.InputKeyCount * sizeof (EFI_INPUT_KEY)
|
||||
) == 0)
|
||||
)
|
||||
{
|
||||
UnicodeSPrint (KeyOptionName, sizeof (KeyOptionName), L"Key%04x", KeyOptions[Index].OptionNumber);
|
||||
Status = gRT->SetVariable (
|
||||
KeyOptionName,
|
||||
&gEfiGlobalVariableGuid,
|
||||
EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE,
|
||||
0,
|
||||
NULL
|
||||
);
|
||||
KeyOptionName,
|
||||
&gEfiGlobalVariableGuid,
|
||||
EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE,
|
||||
0,
|
||||
NULL
|
||||
);
|
||||
//
|
||||
// Return the deleted key option in case needed by caller
|
||||
//
|
||||
if (DeletedOption != NULL) {
|
||||
CopyMem (DeletedOption, &KeyOptions[Index], sizeof (EFI_BOOT_MANAGER_KEY_OPTION));
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
BmFreeKeyOptions (KeyOptions, KeyOptionCount);
|
||||
|
||||
EfiReleaseLock (&mBmHotkeyLock);
|
||||
|
Reference in New Issue
Block a user