]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Include/Guid/SmmVariableCommon.h
MdeModulePkg/Variable: Add RT GetVariable() cache support
[mirror_edk2.git] / MdeModulePkg / Include / Guid / SmmVariableCommon.h
index c527a598913965b29e95ebc34d5dd7c72c708de0..ceef44dfd2d7c40ef2bcc591399a5a7c2b5e9d31 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   The file defined some common structures used for communicating between SMM variable module and SMM variable wrapper module.\r
 \r
-Copyright (c) 2011 - 2015, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2011 - 2019, Intel Corporation. All rights reserved.<BR>\r
 SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
 **/\r
@@ -9,6 +9,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
 #ifndef _SMM_VARIABLE_COMMON_H_\r
 #define _SMM_VARIABLE_COMMON_H_\r
 \r
+#include <Guid/VariableFormat.h>\r
 #include <Protocol/VarCheck.h>\r
 \r
 #define EFI_SMM_VARIABLE_WRITE_GUID \\r
@@ -66,6 +67,16 @@ typedef struct {
 #define SMM_VARIABLE_FUNCTION_VAR_CHECK_VARIABLE_PROPERTY_GET  10\r
 \r
 #define SMM_VARIABLE_FUNCTION_GET_PAYLOAD_SIZE        11\r
+//\r
+// The payload for this function is SMM_VARIABLE_COMMUNICATE_RUNTIME_VARIABLE_CACHE_CONTEXT\r
+//\r
+#define SMM_VARIABLE_FUNCTION_INIT_RUNTIME_VARIABLE_CACHE_CONTEXT   12\r
+\r
+#define SMM_VARIABLE_FUNCTION_SYNC_RUNTIME_CACHE                    13\r
+//\r
+// The payload for this function is SMM_VARIABLE_COMMUNICATE_GET_RUNTIME_CACHE_INFO\r
+//\r
+#define SMM_VARIABLE_FUNCTION_GET_RUNTIME_CACHE_INFO                14\r
 \r
 ///\r
 /// Size of SMM communicate header, without including the payload.\r
@@ -120,4 +131,20 @@ typedef struct {
   UINTN                         VariablePayloadSize;\r
 } SMM_VARIABLE_COMMUNICATE_GET_PAYLOAD_SIZE;\r
 \r
+typedef struct {\r
+  BOOLEAN                 *ReadLock;\r
+  BOOLEAN                 *PendingUpdate;\r
+  BOOLEAN                 *HobFlushComplete;\r
+  VARIABLE_STORE_HEADER   *RuntimeHobCache;\r
+  VARIABLE_STORE_HEADER   *RuntimeNvCache;\r
+  VARIABLE_STORE_HEADER   *RuntimeVolatileCache;\r
+} SMM_VARIABLE_COMMUNICATE_RUNTIME_VARIABLE_CACHE_CONTEXT;\r
+\r
+typedef struct {\r
+  UINTN                   TotalHobStorageSize;\r
+  UINTN                   TotalNvStorageSize;\r
+  UINTN                   TotalVolatileStorageSize;\r
+  BOOLEAN                 AuthenticatedVariableUsage;\r
+} SMM_VARIABLE_COMMUNICATE_GET_RUNTIME_CACHE_INFO;\r
+\r
 #endif // _SMM_VARIABLE_COMMON_H_\r