summaryrefslogtreecommitdiff
path: root/SecurityPkg/VariableAuthenticated/RuntimeDxe/Variable.h
diff options
context:
space:
mode:
authorDong Guo <guo.dong@intel.com>2014-03-27 10:54:23 +0000
committergdong1 <gdong1@6f19259b-4bc3-4df7-8a09-765794883524>2014-03-27 10:54:23 +0000
commit9a12e5825aa338f9a81fca3d451bb032fadaad33 (patch)
treedd4c7aaa9ffd5fe99cb331e407482ffb8b7efdcb /SecurityPkg/VariableAuthenticated/RuntimeDxe/Variable.h
parent2c775600d5131cd9b55552f938750c7bdb36c478 (diff)
downloadedk2-platforms-9a12e5825aa338f9a81fca3d451bb032fadaad33.tar.xz
Calculate enough space for 2 variables (public key and variable data) instead of directly setting them 1 by 1.
Fixed a bug in public key reclaim(). Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Dong Guo <guo.dong@intel.com> Reviewed-by: Yao Jiewen <jiewen.yao@intel.com> Reviewed-by: Zeng, Star <star.zeng@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15404 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'SecurityPkg/VariableAuthenticated/RuntimeDxe/Variable.h')
-rw-r--r--SecurityPkg/VariableAuthenticated/RuntimeDxe/Variable.h30
1 files changed, 26 insertions, 4 deletions
diff --git a/SecurityPkg/VariableAuthenticated/RuntimeDxe/Variable.h b/SecurityPkg/VariableAuthenticated/RuntimeDxe/Variable.h
index b9f4f43402..c0497afe5e 100644
--- a/SecurityPkg/VariableAuthenticated/RuntimeDxe/Variable.h
+++ b/SecurityPkg/VariableAuthenticated/RuntimeDxe/Variable.h
@@ -111,10 +111,6 @@ typedef struct {
typedef struct {
EFI_GUID *Guid;
CHAR16 *Name;
-// UINT32 Attributes;
- //
- // Variable size include variable header, name and data.
- //
UINTN VariableSize;
} VARIABLE_ENTRY_CONSISTENCY;
@@ -222,6 +218,32 @@ DataSizeOfVariable (
);
/**
+ This function is to check if the remaining variable space is enough to set
+ all Variables from argument list successfully. The purpose of the check
+ is to keep the consistency of the Variables to be in variable storage.
+
+ Note: Variables are assumed to be in same storage.
+ The set sequence of Variables will be same with the sequence of VariableEntry from argument list,
+ so follow the argument sequence to check the Variables.
+
+ @param[in] Attributes Variable attributes for Variable entries.
+ @param ... The variable argument list with type VARIABLE_ENTRY_CONSISTENCY *.
+ A NULL terminates the list. The VariableSize of
+ VARIABLE_ENTRY_CONSISTENCY is the variable data size as input.
+ It will be changed to variable total size as output.
+
+ @retval TRUE Have enough variable space to set the Variables successfully.
+ @retval FALSE No enough variable space to set the Variables successfully.
+
+**/
+BOOLEAN
+EFIAPI
+CheckRemainingSpaceForConsistency (
+ IN UINT32 Attributes,
+ ...
+ );
+
+/**
Update the variable region with Variable information. If EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS is set,
index of associated public key is needed.