#include <Guid/SystemNvDataGuid.h>\r
#include <Guid/FaultTolerantWrite.h>\r
#include <Guid/HardwareErrorVariable.h>\r
+#include <Guid/VarErrorFlag.h>\r
\r
#define EFI_VARIABLE_ATTRIBUTES_MASK (EFI_VARIABLE_NON_VOLATILE | \\r
EFI_VARIABLE_BOOTSERVICE_ACCESS | \\r
#define VARIABLE_ATTRIBUTE_NV_BS_RT_AT (VARIABLE_ATTRIBUTE_NV_BS_RT | EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS)\r
#define VARIABLE_ATTRIBUTE_NV_BS_RT_HR (VARIABLE_ATTRIBUTE_NV_BS_RT | EFI_VARIABLE_HARDWARE_ERROR_RECORD)\r
#define VARIABLE_ATTRIBUTE_NV_BS_RT_AW (VARIABLE_ATTRIBUTE_NV_BS_RT | EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS)\r
- \r
+#define VARIABLE_ATTRIBUTE_NV_BS_RT_AT_HR_AW (VARIABLE_ATTRIBUTE_NV_BS_RT_AT | EFI_VARIABLE_HARDWARE_ERROR_RECORD | EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS)\r
+#define VARIABLE_ATTRIBUTE_AT_AW (EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS | EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS)\r
+\r
+#define MAX_NV_VARIABLE_SIZE (MAX (MAX (PcdGet32 (PcdMaxVariableSize), \\r
+ PcdGet32 (PcdMaxAuthVariableSize)), \\r
+ PcdGet32 (PcdMaxHardwareErrorVariableSize)))\r
+\r
///\r
/// The size of a 3 character ISO639 language code.\r
///\r
VARIABLE_GLOBAL VariableGlobal;\r
UINTN VolatileLastVariableOffset;\r
UINTN NonVolatileLastVariableOffset;\r
+ UINTN CommonVariableSpace;\r
+ UINTN CommonMaxUserVariableSpace;\r
+ UINTN CommonRuntimeVariableSpace;\r
UINTN CommonVariableTotalSize;\r
+ UINTN CommonUserVariableTotalSize;\r
UINTN HwErrVariableTotalSize;\r
+ UINTN MaxVariableSize;\r
+ UINTN MaxAuthVariableSize;\r
+ UINTN ScratchBufferSize;\r
CHAR8 *PlatformLangCodes;\r
CHAR8 *LangCodes;\r
CHAR8 *PlatformLang;\r
EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *FvbInstance;\r
} VARIABLE_MODULE_GLOBAL;\r
\r
-typedef struct {\r
- EFI_GUID *Guid;\r
- CHAR16 *Name;\r
- UINTN VariableSize;\r
-} VARIABLE_ENTRY_CONSISTENCY;\r
-\r
typedef struct {\r
LIST_ENTRY Link;\r
EFI_GUID Guid;\r
IN BOOLEAN IgnoreRtCheck\r
);\r
\r
+/**\r
+\r
+ Gets the pointer to the end of the variable storage area.\r
+\r
+ This function gets pointer to the end of the variable storage\r
+ area, according to the input variable store header.\r
+\r
+ @param VarStoreHeader Pointer to the Variable Store Header.\r
+\r
+ @return Pointer to the end of the variable storage area.\r
+\r
+**/\r
+VARIABLE_HEADER *\r
+GetEndPointer (\r
+ IN VARIABLE_STORE_HEADER *VarStoreHeader\r
+ );\r
+\r
/**\r
\r
This code gets the pointer to the variable data.\r
IN VAR_CHECK_SET_VARIABLE_CHECK_HANDLER Handler\r
);\r
\r
+/**\r
+ Internal variable property get.\r
+\r
+ @param[in] Name Pointer to the variable name.\r
+ @param[in] Guid Pointer to the vendor GUID.\r
+ @param[out] VariableProperty Pointer to the output variable property.\r
+\r
+ @retval EFI_SUCCESS The property of variable specified by the Name and Guid was got successfully.\r
+ @retval EFI_NOT_FOUND The property of variable specified by the Name and Guid was not found.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+InternalVarCheckVariablePropertyGet (\r
+ IN CHAR16 *Name,\r
+ IN EFI_GUID *Guid,\r
+ OUT VAR_CHECK_VARIABLE_PROPERTY *VariableProperty\r
+ );\r
+\r
/**\r
Variable property set.\r
\r
OUT VAR_CHECK_VARIABLE_PROPERTY *VariableProperty\r
);\r
\r
+/**\r
+ Initialize variable quota.\r
+\r
+**/\r
+VOID\r
+InitializeVariableQuota (\r
+ VOID\r
+ );\r
+\r
extern VARIABLE_MODULE_GLOBAL *mVariableModuleGlobal;\r
\r
#endif\r