Support RouteConfig function for BdsDxe driver.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Eric Dong <eric.dong@intel.com> Reviewed-by: Gao, Liming <liming,gao@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15563 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@@ -752,16 +752,16 @@ Var_UpdateBootOption (
|
||||
Index = BOpt_GetBootOptionNumber () ;
|
||||
UnicodeSPrint (BootString, sizeof (BootString), L"Boot%04x", Index);
|
||||
|
||||
if (NvRamMap->DescriptionData[0] == 0x0000) {
|
||||
StrCpy (NvRamMap->DescriptionData, BootString);
|
||||
if (NvRamMap->BootDescriptionData[0] == 0x0000) {
|
||||
StrCpy (NvRamMap->BootDescriptionData, BootString);
|
||||
}
|
||||
|
||||
BufferSize = sizeof (UINT32) + sizeof (UINT16) + StrSize (NvRamMap->DescriptionData);
|
||||
BufferSize = sizeof (UINT32) + sizeof (UINT16) + StrSize (NvRamMap->BootDescriptionData);
|
||||
BufferSize += GetDevicePathSize (CallbackData->LoadContext->FilePathList);
|
||||
|
||||
if (NvRamMap->OptionalData[0] != 0x0000) {
|
||||
if (NvRamMap->BootOptionalData[0] != 0x0000) {
|
||||
OptionalDataExist = TRUE;
|
||||
BufferSize += StrSize (NvRamMap->OptionalData);
|
||||
BufferSize += StrSize (NvRamMap->BootOptionalData);
|
||||
}
|
||||
|
||||
Buffer = AllocateZeroPool (BufferSize);
|
||||
@@ -791,21 +791,21 @@ Var_UpdateBootOption (
|
||||
|
||||
CopyMem (
|
||||
Ptr,
|
||||
NvRamMap->DescriptionData,
|
||||
StrSize (NvRamMap->DescriptionData)
|
||||
NvRamMap->BootDescriptionData,
|
||||
StrSize (NvRamMap->BootDescriptionData)
|
||||
);
|
||||
|
||||
NewLoadContext->Description = AllocateZeroPool (StrSize (NvRamMap->DescriptionData));
|
||||
NewLoadContext->Description = AllocateZeroPool (StrSize (NvRamMap->BootDescriptionData));
|
||||
ASSERT (NewLoadContext->Description != NULL);
|
||||
|
||||
NewMenuEntry->DisplayString = NewLoadContext->Description;
|
||||
CopyMem (
|
||||
NewLoadContext->Description,
|
||||
(VOID *) Ptr,
|
||||
StrSize (NvRamMap->DescriptionData)
|
||||
StrSize (NvRamMap->BootDescriptionData)
|
||||
);
|
||||
|
||||
Ptr += StrSize (NvRamMap->DescriptionData);
|
||||
Ptr += StrSize (NvRamMap->BootDescriptionData);
|
||||
CopyMem (
|
||||
Ptr,
|
||||
CallbackData->LoadContext->FilePathList,
|
||||
@@ -838,7 +838,7 @@ Var_UpdateBootOption (
|
||||
if (OptionalDataExist) {
|
||||
Ptr += (UINT8) GetDevicePathSize (CallbackData->LoadContext->FilePathList);
|
||||
|
||||
CopyMem (Ptr, NvRamMap->OptionalData, StrSize (NvRamMap->OptionalData));
|
||||
CopyMem (Ptr, NvRamMap->BootOptionalData, StrSize (NvRamMap->BootOptionalData));
|
||||
}
|
||||
|
||||
Status = gRT->SetVariable (
|
||||
@@ -879,8 +879,8 @@ Var_UpdateBootOption (
|
||||
InsertTailList (&BootOptionMenu.Head, &NewMenuEntry->Link);
|
||||
BootOptionMenu.MenuNumber++;
|
||||
|
||||
NvRamMap->DescriptionData[0] = 0x0000;
|
||||
NvRamMap->OptionalData[0] = 0x0000;
|
||||
NvRamMap->BootDescriptionData[0] = 0x0000;
|
||||
NvRamMap->BootOptionalData[0] = 0x0000;
|
||||
}
|
||||
}
|
||||
return EFI_SUCCESS;
|
||||
@@ -983,11 +983,11 @@ Var_UpdateBootOrder (
|
||||
return EFI_OUT_OF_RESOURCES;
|
||||
}
|
||||
|
||||
ASSERT (BootOptionMenu.MenuNumber <= (sizeof (CallbackData->BmmFakeNvData.OptionOrder) / sizeof (CallbackData->BmmFakeNvData.OptionOrder[0])));
|
||||
ASSERT (BootOptionMenu.MenuNumber <= (sizeof (CallbackData->BmmFakeNvData.BootOptionOrder) / sizeof (CallbackData->BmmFakeNvData.BootOptionOrder[0])));
|
||||
|
||||
for (OrderIndex = 0; (OrderIndex < BootOptionMenu.MenuNumber) && (CallbackData->BmmFakeNvData.OptionOrder[OrderIndex] != 0); OrderIndex++) {
|
||||
for (OrderIndex = 0; (OrderIndex < BootOptionMenu.MenuNumber) && (CallbackData->BmmFakeNvData.BootOptionOrder[OrderIndex] != 0); OrderIndex++) {
|
||||
for (Index = OrderIndex; Index < BootOrderListSize / sizeof (UINT16); Index++) {
|
||||
if ((BootOrderList[Index] == (UINT16) (CallbackData->BmmFakeNvData.OptionOrder[OrderIndex] - 1)) && (OrderIndex != Index)) {
|
||||
if ((BootOrderList[Index] == (UINT16) (CallbackData->BmmFakeNvData.BootOptionOrder[OrderIndex] - 1)) && (OrderIndex != Index)) {
|
||||
OptionNumber = BootOrderList[Index];
|
||||
CopyMem (&BootOrderList[OrderIndex + 1], &BootOrderList[OrderIndex], (Index - OrderIndex) * sizeof (UINT16));
|
||||
BootOrderList[OrderIndex] = OptionNumber;
|
||||
@@ -1065,9 +1065,9 @@ Var_UpdateDriverOrder (
|
||||
FreePool (DriverOrderList);
|
||||
}
|
||||
|
||||
ASSERT (DriverOptionMenu.MenuNumber <= (sizeof (CallbackData->BmmFakeNvData.OptionOrder) / sizeof (CallbackData->BmmFakeNvData.OptionOrder[0])));
|
||||
ASSERT (DriverOptionMenu.MenuNumber <= (sizeof (CallbackData->BmmFakeNvData.DriverOptionOrder) / sizeof (CallbackData->BmmFakeNvData.DriverOptionOrder[0])));
|
||||
for (Index = 0; Index < DriverOptionMenu.MenuNumber; Index++) {
|
||||
NewDriverOrderList[Index] = (UINT16) (CallbackData->BmmFakeNvData.OptionOrder[Index] - 1);
|
||||
NewDriverOrderList[Index] = (UINT16) (CallbackData->BmmFakeNvData.DriverOptionOrder[Index] - 1);
|
||||
}
|
||||
|
||||
Status = gRT->SetVariable (
|
||||
@@ -1100,7 +1100,8 @@ Var_UpdateDriverOrder (
|
||||
**/
|
||||
EFI_STATUS
|
||||
Var_UpdateBBSOption (
|
||||
IN BMM_CALLBACK_DATA *CallbackData
|
||||
IN BMM_CALLBACK_DATA *CallbackData,
|
||||
IN EFI_FORM_ID FormId
|
||||
)
|
||||
{
|
||||
UINTN Index;
|
||||
@@ -1129,7 +1130,7 @@ Var_UpdateBBSOption (
|
||||
DisMap = NULL;
|
||||
NewOrder = NULL;
|
||||
|
||||
switch (CallbackData->BmmPreviousPageId) {
|
||||
switch (FormId) {
|
||||
case FORM_SET_FD_ORDER_ID:
|
||||
OptionMenu = (BM_MENU_OPTION *) &LegacyFDMenu;
|
||||
LegacyDev = CallbackData->BmmFakeNvData.LegacyFD;
|
||||
|
Reference in New Issue
Block a user