Revision: 16688
          http://sourceforge.net/p/edk2/code/16688
Author:   lzeng14
Date:     2015-02-02 09:31:08 +0000 (Mon, 02 Feb 2015)
Log Message:
-----------
SecurityPkg Variable: Introduce PcdReclaimVariableSpaceAtEndOfDxe

for trying to reclaim variable space at EndOfDxe.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Star Zeng <[email protected]>
Reviewed-by: Liming Gao <[email protected]>

Modified Paths:
--------------
    trunk/edk2/SecurityPkg/VariableAuthenticated/RuntimeDxe/Variable.c
    trunk/edk2/SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableDxe.c
    
trunk/edk2/SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableRuntimeDxe.inf
    trunk/edk2/SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableSmm.c
    trunk/edk2/SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableSmm.inf

Modified: trunk/edk2/SecurityPkg/VariableAuthenticated/RuntimeDxe/Variable.c
===================================================================
--- trunk/edk2/SecurityPkg/VariableAuthenticated/RuntimeDxe/Variable.c  
2015-02-02 09:30:34 UTC (rev 16687)
+++ trunk/edk2/SecurityPkg/VariableAuthenticated/RuntimeDxe/Variable.c  
2015-02-02 09:31:08 UTC (rev 16688)
@@ -3603,7 +3603,16 @@
   EFI_STATUS                     Status;
   UINTN                          RemainingCommonRuntimeVariableSpace;
   UINTN                          RemainingHwErrVariableSpace;
+  STATIC BOOLEAN                 Reclaimed;
 
+  //
+  // This function will be called only once at EndOfDxe or ReadyToBoot event.
+  //
+  if (Reclaimed) {
+    return;
+  }
+  Reclaimed = TRUE;
+
   Status  = EFI_SUCCESS;
 
   if (mVariableModuleGlobal->CommonRuntimeVariableSpace < 
mVariableModuleGlobal->CommonVariableTotalSize) {

Modified: trunk/edk2/SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableDxe.c
===================================================================
--- trunk/edk2/SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableDxe.c       
2015-02-02 09:30:34 UTC (rev 16687)
+++ trunk/edk2/SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableDxe.c       
2015-02-02 09:31:08 UTC (rev 16688)
@@ -317,6 +317,9 @@
   // The initialization for variable quota.
   //
   InitializeVariableQuota ();
+  if (PcdGetBool (PcdReclaimVariableSpaceAtEndOfDxe)) {
+    ReclaimForOS ();
+  }
 }
 
 /**

Modified: 
trunk/edk2/SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableRuntimeDxe.inf
===================================================================
--- 
trunk/edk2/SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableRuntimeDxe.inf  
    2015-02-02 09:30:34 UTC (rev 16687)
+++ 
trunk/edk2/SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableRuntimeDxe.inf  
    2015-02-02 09:31:08 UTC (rev 16688)
@@ -144,6 +144,7 @@
   gEfiMdeModulePkgTokenSpaceGuid.PcdHwErrStorageSize                 ## 
CONSUMES
   gEfiMdeModulePkgTokenSpaceGuid.PcdMaxUserNvVariableSpaceSize           ## 
CONSUMES
   gEfiMdeModulePkgTokenSpaceGuid.PcdBoottimeReservedNvVariableSpaceSize  ## 
CONSUMES
+  gEfiMdeModulePkgTokenSpaceGuid.PcdReclaimVariableSpaceAtEndOfDxe   ## 
CONSUMES
 
 [FeaturePcd]
   gEfiMdeModulePkgTokenSpaceGuid.PcdVariableCollectStatistics        ## 
CONSUMES  # statistic the information of variable.

Modified: trunk/edk2/SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableSmm.c
===================================================================
--- trunk/edk2/SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableSmm.c       
2015-02-02 09:30:34 UTC (rev 16687)
+++ trunk/edk2/SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableSmm.c       
2015-02-02 09:31:08 UTC (rev 16688)
@@ -854,6 +854,9 @@
   // The initialization for variable quota.
   //
   InitializeVariableQuota ();
+  if (PcdGetBool (PcdReclaimVariableSpaceAtEndOfDxe)) {
+    ReclaimForOS ();
+  }
   return EFI_SUCCESS;
 }
 

Modified: 
trunk/edk2/SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableSmm.inf
===================================================================
--- trunk/edk2/SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableSmm.inf     
2015-02-02 09:30:34 UTC (rev 16687)
+++ trunk/edk2/SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableSmm.inf     
2015-02-02 09:31:08 UTC (rev 16688)
@@ -151,6 +151,7 @@
   gEfiMdeModulePkgTokenSpaceGuid.PcdHwErrStorageSize                 ## 
CONSUMES
   gEfiMdeModulePkgTokenSpaceGuid.PcdMaxUserNvVariableSpaceSize           ## 
CONSUMES
   gEfiMdeModulePkgTokenSpaceGuid.PcdBoottimeReservedNvVariableSpaceSize  ## 
CONSUMES
+  gEfiMdeModulePkgTokenSpaceGuid.PcdReclaimVariableSpaceAtEndOfDxe   ## 
CONSUMES
 
 [FeaturePcd]
   gEfiMdeModulePkgTokenSpaceGuid.PcdVariableCollectStatistics        ## 
CONSUMES  # statistic the information of variable.


------------------------------------------------------------------------------
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to