From 16e5944abde9ea3f01c9ccff2a86a41e5a6a1dd0 Mon Sep 17 00:00:00 2001 From: niruiyu Date: Fri, 1 Jun 2012 03:39:39 +0000 Subject: Refine BdsDxe driver and GenericBdsLib library so that the GenericBdsLib doesn't depend on the BdsDxe implementation. Signed-off-by: Ruiyu Ni Reviewed-by: Eric Dong git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13418 6f19259b-4bc3-4df7-8a09-765794883524 --- .../Universal/BdsDxe/BootMaint/Variable.c | 72 +++++++--------------- 1 file changed, 22 insertions(+), 50 deletions(-) (limited to 'IntelFrameworkModulePkg/Universal/BdsDxe/BootMaint/Variable.c') diff --git a/IntelFrameworkModulePkg/Universal/BdsDxe/BootMaint/Variable.c b/IntelFrameworkModulePkg/Universal/BdsDxe/BootMaint/Variable.c index c4b83ba0ff..ef36ae2dc8 100644 --- a/IntelFrameworkModulePkg/Universal/BdsDxe/BootMaint/Variable.c +++ b/IntelFrameworkModulePkg/Universal/BdsDxe/BootMaint/Variable.c @@ -1,7 +1,7 @@ /** @file Variable operation that will be used by bootmaint -Copyright (c) 2004 - 2011, Intel Corporation. All rights reserved.
+Copyright (c) 2004 - 2012, Intel Corporation. All rights reserved.
This program and the accompanying materials 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 @@ -161,7 +161,7 @@ Var_ChangeBootOrder ( Status = gRT->SetVariable ( L"BootOrder", &gEfiGlobalVariableGuid, - VAR_FLAG, + EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE, BootOrderListSize * sizeof (UINT16), BootOrderList ); @@ -299,7 +299,7 @@ Var_ChangeDriverOrder ( Status = gRT->SetVariable ( L"DriverOrder", &gEfiGlobalVariableGuid, - VAR_FLAG, + EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE, DriverOrderListSize * sizeof (UINT16), DriverOrderList ); @@ -334,7 +334,7 @@ Var_UpdateAllConsoleOption ( Status = gRT->SetVariable ( L"ConOut", &gEfiGlobalVariableGuid, - VAR_FLAG, + EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE, GetDevicePathSize (OutDevicePath), OutDevicePath ); @@ -346,7 +346,7 @@ Var_UpdateAllConsoleOption ( Status = gRT->SetVariable ( L"ConIn", &gEfiGlobalVariableGuid, - VAR_FLAG, + EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE, GetDevicePathSize (InpDevicePath), InpDevicePath ); @@ -358,7 +358,7 @@ Var_UpdateAllConsoleOption ( Status = gRT->SetVariable ( L"ErrOut", &gEfiGlobalVariableGuid, - VAR_FLAG, + EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE, GetDevicePathSize (ErrDevicePath), ErrDevicePath ); @@ -461,7 +461,7 @@ Var_UpdateConsoleOption ( Status = gRT->SetVariable ( ConsoleName, &gEfiGlobalVariableGuid, - VAR_FLAG, + EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE, GetDevicePathSize (ConDevicePath), ConDevicePath ); @@ -663,7 +663,7 @@ Var_UpdateDriverOption ( Status = gRT->SetVariable ( DriverString, &gEfiGlobalVariableGuid, - VAR_FLAG, + EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE, BufferSize, Buffer ); @@ -684,7 +684,7 @@ Var_UpdateDriverOption ( Status = gRT->SetVariable ( L"DriverOrder", &gEfiGlobalVariableGuid, - VAR_FLAG, + EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE, DriverOrderListSize + sizeof (UINT16), NewDriverOrderList ); @@ -831,7 +831,7 @@ Var_UpdateBootOption ( Status = gRT->SetVariable ( BootString, &gEfiGlobalVariableGuid, - VAR_FLAG, + EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE, BufferSize, Buffer ); @@ -855,7 +855,7 @@ Var_UpdateBootOption ( Status = gRT->SetVariable ( L"BootOrder", &gEfiGlobalVariableGuid, - VAR_FLAG, + EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE, BootOrderListSize + sizeof (UINT16), NewBootOrderList ); @@ -920,7 +920,7 @@ Var_UpdateBootNext ( Status = gRT->SetVariable ( L"BootNext", &gEfiGlobalVariableGuid, - VAR_FLAG, + EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE, sizeof (UINT16), &NewMenuEntry->OptionNumber ); @@ -980,20 +980,17 @@ Var_UpdateBootOrder ( } } - GroupMultipleLegacyBootOption4SameType ( - BootOrderList, - BootOrderListSize / sizeof (UINT16) - ); - Status = gRT->SetVariable ( L"BootOrder", &gEfiGlobalVariableGuid, - VAR_FLAG, + EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE, BootOrderListSize, BootOrderList ); FreePool (BootOrderList); + GroupMultipleLegacyBootOption4SameType (); + BOpt_FreeMenu (&BootOptionMenu); BOpt_GetBootOptions (CallbackData); @@ -1057,7 +1054,7 @@ Var_UpdateDriverOrder ( Status = gRT->SetVariable ( L"DriverOrder", &gEfiGlobalVariableGuid, - VAR_FLAG, + EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE, DriverOrderListSize, NewDriverOrderList ); @@ -1108,7 +1105,6 @@ Var_UpdateBBSOption ( UINTN EnBootOptionCount; UINT16 *DisBootOption; UINTN DisBootOptionCount; - UINT16 *BootOrder; DisMap = NULL; NewOrder = NULL; @@ -1219,7 +1215,7 @@ Var_UpdateBBSOption ( Status = gRT->SetVariable ( VAR_LEGACY_DEV_ORDER, &gEfiLegacyDevOrderVariableGuid, - VAR_FLAG, + EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE, VarSize, OriginalPtr ); @@ -1231,39 +1227,15 @@ Var_UpdateBBSOption ( // 1. Re-order the Option Number in BootOrder according to Legacy Dev Order // ASSERT (OptionMenu->MenuNumber == DevOrder->Length / sizeof (UINT16) - 1); - BootOrder = BdsLibGetVariableAndSize ( - L"BootOrder", - &gEfiGlobalVariableGuid, - &VarSize - ); - ASSERT (BootOrder != NULL); - - DisBootOption = AllocatePool (VarSize); - ASSERT (DisBootOption != NULL); - EnBootOption = AllocatePool (VarSize); - ASSERT (EnBootOption != NULL); - + OrderLegacyBootOption4SameType ( - BootOrder, - VarSize / sizeof (UINT16), DevOrder->Data, DevOrder->Length / sizeof (UINT16) - 1, - EnBootOption, + &EnBootOption, &EnBootOptionCount, - DisBootOption, + &DisBootOption, &DisBootOptionCount ); - - Status = gRT->SetVariable ( - L"BootOrder", - &gEfiGlobalVariableGuid, - VAR_FLAG, - VarSize, - BootOrder - ); - ASSERT_EFI_ERROR (Status); - - FreePool (BootOrder); // // 2. Deactivate the DisBootOption and activate the EnBootOption @@ -1282,7 +1254,7 @@ Var_UpdateBBSOption ( Status = gRT->SetVariable ( VarName, &gEfiGlobalVariableGuid, - VAR_FLAG, + EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE, OptionSize, BootOptionVar ); @@ -1305,7 +1277,7 @@ Var_UpdateBBSOption ( Status = gRT->SetVariable ( VarName, &gEfiGlobalVariableGuid, - VAR_FLAG, + EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE, OptionSize, BootOptionVar ); -- cgit v1.2.3