/** @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
#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
#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
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