From: Ken Lautner <klautner@...>Changed BdsEntry.c to use Variable Policy instead of Variable Lockas Variable Lock will be Deprecated eventuallyCc: Jian J Wang <jian.j.wang@...>Cc: Hao A Wu <hao.a.wu@...>Cc: Zhichao Gao <zhichao.gao@...>Cc: Ray Ni <ray.ni@...>Cc: Liming Gao <gaoliming@...>Signed-off-by: Kenneth Lautner <kenlautner3@...>Reviewed-by: Liming Gao <gaoliming@...>--- MdeModulePkg/Universal/BdsDxe/Bds.h | 1 - MdeModulePkg/Universal/BdsDxe/BdsDxe.inf | 3 ++- MdeModulePkg/Universal/BdsDxe/BdsEntry.c | 20 +++++++++++++++----- 3 files changed, 17 insertions(+), 7 deletions(-)diff --git a/MdeModulePkg/Universal/BdsDxe/Bds.h b/MdeModulePkg/Universal/BdsDxe/Bds.hindex e7a9b5b4b7cb..84548041e861 100644--- a/MdeModulePkg/Universal/BdsDxe/Bds.h+++ b/MdeModulePkg/Universal/BdsDxe/Bds.h@@ -17,7 +17,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent #include <Protocol/Bds.h> #include <Protocol/LoadedImage.h>-#include <Protocol/VariableLock.h> #include <Protocol/DeferredImageLoad.h> #include <Library/UefiDriverEntryPoint.h>diff --git a/MdeModulePkg/Universal/BdsDxe/BdsDxe.inf b/MdeModulePkg/Universal/BdsDxe/BdsDxe.infindex 9310b4dccb18..5bac635def93 100644--- a/MdeModulePkg/Universal/BdsDxe/BdsDxe.inf+++ b/MdeModulePkg/Universal/BdsDxe/BdsDxe.inf@@ -50,6 +50,7 @@ BaseMemoryLib DebugLib UefiBootManagerLib+ VariablePolicyHelperLib PlatformBootManagerLib PcdLib PrintLib@@ -77,7 +78,7 @@ [Protocols] gEfiBdsArchProtocolGuid ## PRODUCES gEfiSimpleTextInputExProtocolGuid ## CONSUMES- gEdkiiVariableLockProtocolGuid ## SOMETIMES_CONSUMES+ gEdkiiVariablePolicyProtocolGuid ## SOMETIMES_CONSUMES gEfiDeferredImageLoadProtocolGuid ## CONSUMES [FeaturePcd]diff --git a/MdeModulePkg/Universal/BdsDxe/BdsEntry.c b/MdeModulePkg/Universal/BdsDxe/BdsEntry.cindex 83b773a2fa5f..13c10bdc5bf8 100644--- a/MdeModulePkg/Universal/BdsDxe/BdsEntry.c+++ b/MdeModulePkg/Universal/BdsDxe/BdsEntry.c@@ -15,6 +15,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent #include "Bds.h" #include "Language.h" #include "HwErrRecSupport.h"+#include <Library/VariablePolicyHelperLib.h> #define SET_BOOT_OPTION_SUPPORT_KEY_COUNT(a, c) { \ (a) = ((a) & ~EFI_BOOT_OPTION_SUPPORT_COUNT) | (((c) << LowBitSet32 (EFI_BOOT_OPTION_SUPPORT_COUNT)) & EFI_BOOT_OPTION_SUPPORT_COUNT); \@@ -670,7 +671,7 @@ BdsEntry ( EFI_STATUS Status; UINT32 BootOptionSupport; UINT16 BootTimeOut;- EDKII_VARIABLE_LOCK_PROTOCOL *VariableLock;+ EDKII_VARIABLE_POLICY_PROTOCOL *VariablePolicy; UINTN Index; EFI_BOOT_MANAGER_LOAD_OPTION LoadOption; UINT16 *BootNext;@@ -716,12 +717,21 @@ BdsEntry ( // // Mark the read-only variables if the Variable Lock protocol exists //- Status = gBS->LocateProtocol (&gEdkiiVariableLockProtocolGuid, NULL, (VOID **) &VariableLock);- DEBUG ((EFI_D_INFO, "[BdsDxe] Locate Variable Lock protocol - %r\n", Status));+ Status = gBS->LocateProtocol(&gEdkiiVariablePolicyProtocolGuid, NULL, (VOID**)&VariablePolicy);+ DEBUG((DEBUG_INFO, "[BdsDxe] Locate Variable Policy protocol - %r\n", Status)); if (!EFI_ERROR (Status)) { for (Index = 0; Index < ARRAY_SIZE (mReadOnlyVariables); Index++) {- Status = VariableLock->RequestToLock (VariableLock, mReadOnlyVariables[Index], &gEfiGlobalVariableGuid);- ASSERT_EFI_ERROR (Status);+ Status = RegisterBasicVariablePolicy(+ VariablePolicy,+ &gEfiGlobalVariableGuid,+ mReadOnlyVariables[Index],+ VARIABLE_POLICY_NO_MIN_SIZE,+ VARIABLE_POLICY_NO_MAX_SIZE,+ VARIABLE_POLICY_NO_MUST_ATTR,+ VARIABLE_POLICY_NO_CANT_ATTR,+ VARIABLE_POLICY_TYPE_LOCK_NOW+ );+ ASSERT_EFI_ERROR(Status); } }
© 2023 Groups.io