]> git.proxmox.com Git - mirror_edk2.git/commitdiff
SecurityPkg Variable: Introduce PcdReclaimVariableSpaceAtEndOfDxe
authorStar Zeng <star.zeng@intel.com>
Mon, 2 Feb 2015 09:31:08 +0000 (09:31 +0000)
committerlzeng14 <lzeng14@Edk2>
Mon, 2 Feb 2015 09:31:08 +0000 (09:31 +0000)
for trying to reclaim variable space at EndOfDxe.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16688 6f19259b-4bc3-4df7-8a09-765794883524

SecurityPkg/VariableAuthenticated/RuntimeDxe/Variable.c
SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableDxe.c
SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableRuntimeDxe.inf
SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableSmm.c
SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableSmm.inf

index 32a218022dc98b7f50fdce329927ba0f4e27c55e..ec857665fda4d442aecec3a410a1c0961e45a14f 100644 (file)
@@ -3603,6 +3603,15 @@ ReclaimForOS(
   EFI_STATUS                     Status;\r
   UINTN                          RemainingCommonRuntimeVariableSpace;\r
   UINTN                          RemainingHwErrVariableSpace;\r
   EFI_STATUS                     Status;\r
   UINTN                          RemainingCommonRuntimeVariableSpace;\r
   UINTN                          RemainingHwErrVariableSpace;\r
+  STATIC BOOLEAN                 Reclaimed;\r
+\r
+  //\r
+  // This function will be called only once at EndOfDxe or ReadyToBoot event.\r
+  //\r
+  if (Reclaimed) {\r
+    return;\r
+  }\r
+  Reclaimed = TRUE;\r
 \r
   Status  = EFI_SUCCESS;\r
 \r
 \r
   Status  = EFI_SUCCESS;\r
 \r
index 375a604df2acbd859e503642d42b9d2deed46590..05a90fa8fcd1d91ac0ebf8f9f38552aff0c87f82 100644 (file)
@@ -317,6 +317,9 @@ OnEndOfDxe (
   // The initialization for variable quota.\r
   //\r
   InitializeVariableQuota ();\r
   // The initialization for variable quota.\r
   //\r
   InitializeVariableQuota ();\r
+  if (PcdGetBool (PcdReclaimVariableSpaceAtEndOfDxe)) {\r
+    ReclaimForOS ();\r
+  }\r
 }\r
 \r
 /**\r
 }\r
 \r
 /**\r
index 4e31178e164823fd75a0d0abfba78dfe5e7899e9..cbf7da0add6d765c8b62770757fe657794f25164 100644 (file)
   gEfiMdeModulePkgTokenSpaceGuid.PcdHwErrStorageSize                 ## CONSUMES\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdMaxUserNvVariableSpaceSize           ## CONSUMES\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdBoottimeReservedNvVariableSpaceSize  ## CONSUMES\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdHwErrStorageSize                 ## CONSUMES\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdMaxUserNvVariableSpaceSize           ## CONSUMES\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdBoottimeReservedNvVariableSpaceSize  ## CONSUMES\r
+  gEfiMdeModulePkgTokenSpaceGuid.PcdReclaimVariableSpaceAtEndOfDxe   ## CONSUMES\r
 \r
 [FeaturePcd]\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdVariableCollectStatistics        ## CONSUMES  # statistic the information of variable.\r
 \r
 [FeaturePcd]\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdVariableCollectStatistics        ## CONSUMES  # statistic the information of variable.\r
index 9af9eafe14df952c00da159646f80915f074760f..439a4fe20debdfdc8afe44dfee183f519e0bd3c9 100644 (file)
@@ -854,6 +854,9 @@ SmmEndOfDxeCallback (
   // The initialization for variable quota.\r
   //\r
   InitializeVariableQuota ();\r
   // The initialization for variable quota.\r
   //\r
   InitializeVariableQuota ();\r
+  if (PcdGetBool (PcdReclaimVariableSpaceAtEndOfDxe)) {\r
+    ReclaimForOS ();\r
+  }\r
   return EFI_SUCCESS;\r
 }\r
 \r
   return EFI_SUCCESS;\r
 }\r
 \r
index ec4249a95ff160857a199ebdc1337a9c34fe1681..317f13c2a4088d06465146b6ddc35621fe6332e6 100644 (file)
   gEfiMdeModulePkgTokenSpaceGuid.PcdHwErrStorageSize                 ## CONSUMES\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdMaxUserNvVariableSpaceSize           ## CONSUMES\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdBoottimeReservedNvVariableSpaceSize  ## CONSUMES\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdHwErrStorageSize                 ## CONSUMES\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdMaxUserNvVariableSpaceSize           ## CONSUMES\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdBoottimeReservedNvVariableSpaceSize  ## CONSUMES\r
+  gEfiMdeModulePkgTokenSpaceGuid.PcdReclaimVariableSpaceAtEndOfDxe   ## CONSUMES\r
 \r
 [FeaturePcd]\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdVariableCollectStatistics        ## CONSUMES  # statistic the information of variable.\r
 \r
 [FeaturePcd]\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdVariableCollectStatistics        ## CONSUMES  # statistic the information of variable.\r