]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Variable/RuntimeDxe/VariableDxe.c
MdeModulePkg Variable: Enhance variable performance by reading from existed memory...
[mirror_edk2.git] / MdeModulePkg / Universal / Variable / RuntimeDxe / VariableDxe.c
index caf51dfba6150069094795dd7eeace1d7ae41273..dfed03133efec40a41f4a9f96a5c63b09b29ca82 100644 (file)
@@ -4,6 +4,7 @@
 \r
 Copyright (C) 2013, Red Hat, Inc.\r
 Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>\r
+(C) Copyright 2015 Hewlett Packard Enterprise Development LP<BR>\r
 This program and the accompanying materials\r
 are licensed and made available under the terms and conditions of the BSD License\r
 which accompanies this distribution.  The full text of the license may be found at\r
@@ -16,18 +17,19 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 \r
 #include "Variable.h"\r
 \r
-extern VARIABLE_STORE_HEADER   *mNvVariableCache;\r
-extern VARIABLE_INFO_ENTRY     *gVariableInfo;\r
-EFI_HANDLE                     mHandle                    = NULL;\r
-EFI_EVENT                      mVirtualAddressChangeEvent = NULL;\r
-EFI_EVENT                      mFtwRegistration           = NULL;\r
-extern BOOLEAN                 mEndOfDxe;\r
-VOID                           ***mVarCheckAddressPointer = NULL;\r
-UINTN                          mVarCheckAddressPointerCount = 0;\r
-EDKII_VARIABLE_LOCK_PROTOCOL   mVariableLock              = { VariableLockRequestToLock };\r
-EDKII_VAR_CHECK_PROTOCOL       mVarCheck                  = { VarCheckRegisterSetVariableCheckHandler,\r
-                                                              VarCheckVariablePropertySet,\r
-                                                              VarCheckVariablePropertyGet };\r
+extern VARIABLE_STORE_HEADER        *mNvVariableCache;\r
+extern EFI_FIRMWARE_VOLUME_HEADER   *mNvFvHeaderCache;\r
+extern VARIABLE_INFO_ENTRY          *gVariableInfo;\r
+EFI_HANDLE                          mHandle                    = NULL;\r
+EFI_EVENT                           mVirtualAddressChangeEvent = NULL;\r
+EFI_EVENT                           mFtwRegistration           = NULL;\r
+extern BOOLEAN                      mEndOfDxe;\r
+VOID                                ***mVarCheckAddressPointer = NULL;\r
+UINTN                               mVarCheckAddressPointerCount = 0;\r
+EDKII_VARIABLE_LOCK_PROTOCOL        mVariableLock              = { VariableLockRequestToLock };\r
+EDKII_VAR_CHECK_PROTOCOL            mVarCheck                  = { VarCheckRegisterSetVariableCheckHandler,\r
+                                                                    VarCheckVariablePropertySet,\r
+                                                                    VarCheckVariablePropertyGet };\r
 \r
 /**\r
   Return TRUE if ExitBootServices () has been called.\r
@@ -243,6 +245,7 @@ VariableClassAddressChangeEvent (
   EfiConvertPointer (0x0, (VOID **) &mVariableModuleGlobal->VariableGlobal.HobVariableBase);\r
   EfiConvertPointer (0x0, (VOID **) &mVariableModuleGlobal);\r
   EfiConvertPointer (0x0, (VOID **) &mNvVariableCache);\r
+  EfiConvertPointer (0x0, (VOID **) &mNvFvHeaderCache);\r
 \r
   if (mAuthContextOut.AddressPointer != NULL) {\r
     for (Index = 0; Index < mAuthContextOut.AddressPointerCount; Index++) {\r