]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.h
MdeModulePkg/Variable: Add RT GetVariable() cache support
[mirror_edk2.git] / MdeModulePkg / Universal / Variable / RuntimeDxe / Variable.h
index fb574b2e328525a6799e347cd4d1d9aff35b9fa7..0b2bb6ae66481e7bb5236f9fc32632d1818e7e7c 100644 (file)
@@ -64,6 +64,21 @@ typedef enum {
   VariableStoreTypeMax\r
 } VARIABLE_STORE_TYPE;\r
 \r
+typedef struct {\r
+  UINT32                  PendingUpdateOffset;\r
+  UINT32                  PendingUpdateLength;\r
+  VARIABLE_STORE_HEADER   *Store;\r
+} VARIABLE_RUNTIME_CACHE;\r
+\r
+typedef struct {\r
+  BOOLEAN                 *ReadLock;\r
+  BOOLEAN                 *PendingUpdate;\r
+  BOOLEAN                 *HobFlushComplete;\r
+  VARIABLE_RUNTIME_CACHE  VariableRuntimeHobCache;\r
+  VARIABLE_RUNTIME_CACHE  VariableRuntimeNvCache;\r
+  VARIABLE_RUNTIME_CACHE  VariableRuntimeVolatileCache;\r
+} VARIABLE_RUNTIME_CACHE_CONTEXT;\r
+\r
 typedef struct {\r
   VARIABLE_HEADER *CurrPtr;\r
   //\r
@@ -79,14 +94,15 @@ typedef struct {
 } VARIABLE_POINTER_TRACK;\r
 \r
 typedef struct {\r
-  EFI_PHYSICAL_ADDRESS  HobVariableBase;\r
-  EFI_PHYSICAL_ADDRESS  VolatileVariableBase;\r
-  EFI_PHYSICAL_ADDRESS  NonVolatileVariableBase;\r
-  EFI_LOCK              VariableServicesLock;\r
-  UINT32                ReentrantState;\r
-  BOOLEAN               AuthFormat;\r
-  BOOLEAN               AuthSupport;\r
-  BOOLEAN               EmuNvMode;\r
+  EFI_PHYSICAL_ADDRESS            HobVariableBase;\r
+  EFI_PHYSICAL_ADDRESS            VolatileVariableBase;\r
+  EFI_PHYSICAL_ADDRESS            NonVolatileVariableBase;\r
+  VARIABLE_RUNTIME_CACHE_CONTEXT  VariableRuntimeCacheContext;\r
+  EFI_LOCK                        VariableServicesLock;\r
+  UINT32                          ReentrantState;\r
+  BOOLEAN                         AuthFormat;\r
+  BOOLEAN                         AuthSupport;\r
+  BOOLEAN                         EmuNvMode;\r
 } VARIABLE_GLOBAL;\r
 \r
 typedef struct {\r