]> git.proxmox.com Git - mirror_edk2.git/commitdiff
MdeModulePkg/BdsDxe: Update BdsEntry to use Variable Policy
authorKen Lautner <klautner@microsoft.com>
Mon, 21 Jun 2021 19:59:54 +0000 (03:59 +0800)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Tue, 22 Jun 2021 08:21:09 +0000 (08:21 +0000)
Changed BdsEntry.c to use Variable Policy instead of Variable Lock
as Variable Lock will be Deprecated eventually

Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Hao A Wu <hao.a.wu@intel.com>
Cc: Zhichao Gao <zhichao.gao@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Signed-off-by: Kenneth Lautner <kenlautner3@gmail.com>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
MdeModulePkg/Universal/BdsDxe/Bds.h
MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
MdeModulePkg/Universal/BdsDxe/BdsEntry.c

index e7a9b5b4b7cb88be02da148ce2c594796d2a845d..84548041e861e294e90feda89531cb070ac1df38 100644 (file)
@@ -17,7 +17,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
 \r
 #include <Protocol/Bds.h>\r
 #include <Protocol/LoadedImage.h>\r
-#include <Protocol/VariableLock.h>\r
 #include <Protocol/DeferredImageLoad.h>\r
 \r
 #include <Library/UefiDriverEntryPoint.h>\r
index 9310b4dccb184ad3aa33746c972dbb208e5627e1..5bac635def9399092311243d8055b403d3ca6128 100644 (file)
@@ -50,6 +50,7 @@
   BaseMemoryLib\r
   DebugLib\r
   UefiBootManagerLib\r
+  VariablePolicyHelperLib\r
   PlatformBootManagerLib\r
   PcdLib\r
   PrintLib\r
@@ -77,7 +78,7 @@
 [Protocols]\r
   gEfiBdsArchProtocolGuid                       ## PRODUCES\r
   gEfiSimpleTextInputExProtocolGuid             ## CONSUMES\r
-  gEdkiiVariableLockProtocolGuid                ## SOMETIMES_CONSUMES\r
+  gEdkiiVariablePolicyProtocolGuid              ## SOMETIMES_CONSUMES\r
   gEfiDeferredImageLoadProtocolGuid             ## CONSUMES\r
 \r
 [FeaturePcd]\r
index 83b773a2fa5f75343017c7f841b11df41b75f1a9..13c10bdc5bf8fcc4811336e107a9c97742c79f5b 100644 (file)
@@ -15,6 +15,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
 #include "Bds.h"\r
 #include "Language.h"\r
 #include "HwErrRecSupport.h"\r
+#include <Library/VariablePolicyHelperLib.h>\r
 \r
 #define SET_BOOT_OPTION_SUPPORT_KEY_COUNT(a, c) {  \\r
       (a) = ((a) & ~EFI_BOOT_OPTION_SUPPORT_COUNT) | (((c) << LowBitSet32 (EFI_BOOT_OPTION_SUPPORT_COUNT)) & EFI_BOOT_OPTION_SUPPORT_COUNT); \\r
@@ -670,7 +671,7 @@ BdsEntry (
   EFI_STATUS                      Status;\r
   UINT32                          BootOptionSupport;\r
   UINT16                          BootTimeOut;\r
-  EDKII_VARIABLE_LOCK_PROTOCOL    *VariableLock;\r
+  EDKII_VARIABLE_POLICY_PROTOCOL  *VariablePolicy;\r
   UINTN                           Index;\r
   EFI_BOOT_MANAGER_LOAD_OPTION    LoadOption;\r
   UINT16                          *BootNext;\r
@@ -716,12 +717,21 @@ BdsEntry (
   //\r
   // Mark the read-only variables if the Variable Lock protocol exists\r
   //\r
-  Status = gBS->LocateProtocol (&gEdkiiVariableLockProtocolGuid, NULL, (VOID **) &VariableLock);\r
-  DEBUG ((EFI_D_INFO, "[BdsDxe] Locate Variable Lock protocol - %r\n", Status));\r
+  Status = gBS->LocateProtocol(&gEdkiiVariablePolicyProtocolGuid, NULL, (VOID**)&VariablePolicy);\r
+  DEBUG((DEBUG_INFO, "[BdsDxe] Locate Variable Policy protocol - %r\n", Status));\r
   if (!EFI_ERROR (Status)) {\r
     for (Index = 0; Index < ARRAY_SIZE (mReadOnlyVariables); Index++) {\r
-      Status = VariableLock->RequestToLock (VariableLock, mReadOnlyVariables[Index], &gEfiGlobalVariableGuid);\r
-      ASSERT_EFI_ERROR (Status);\r
+      Status = RegisterBasicVariablePolicy(\r
+                 VariablePolicy,\r
+                 &gEfiGlobalVariableGuid,\r
+                 mReadOnlyVariables[Index],\r
+                 VARIABLE_POLICY_NO_MIN_SIZE,\r
+                 VARIABLE_POLICY_NO_MAX_SIZE,\r
+                 VARIABLE_POLICY_NO_MUST_ATTR,\r
+                 VARIABLE_POLICY_NO_CANT_ATTR,\r
+                 VARIABLE_POLICY_TYPE_LOCK_NOW\r
+                 );\r
+      ASSERT_EFI_ERROR(Status);\r
     }\r
   }\r
 \r