\r
typedef struct {\r
VARIABLE_HEADER *CurrPtr;\r
+ //\r
+ // If both ADDED and IN_DELETED_TRANSITION variable are present,\r
+ // InDeletedTransitionPtr will point to the IN_DELETED_TRANSITION one.\r
+ // Otherwise, CurrPtr will point to the ADDED or IN_DELETED_TRANSITION one,\r
+ // and InDeletedTransitionPtr will be NULL at the same time.\r
+ //\r
+ VARIABLE_HEADER *InDeletedTransitionPtr;\r
VARIABLE_HEADER *EndPtr;\r
VARIABLE_HEADER *StartPtr;\r
BOOLEAN Volatile;\r
@param[in] Attributes Attributes of the variable.\r
@param[in] KeyIndex Index of associated public key.\r
@param[in] MonotonicCount Value of associated monotonic count.\r
- @param[in] Variable The variable information that is used to keep track of variable usage.\r
+ @param[in, out] Variable The variable information that is used to keep track of variable usage.\r
\r
@param[in] TimeStamp Value of associated TimeStamp.\r
\r
IN UINT32 Attributes OPTIONAL,\r
IN UINT32 KeyIndex OPTIONAL,\r
IN UINT64 MonotonicCount OPTIONAL,\r
- IN VARIABLE_POINTER_TRACK *Variable,\r
+ IN OUT VARIABLE_POINTER_TRACK *Variable,\r
IN EFI_TIME *TimeStamp OPTIONAL \r
);\r
\r
If ReclaimPubKeyStore is TRUE, reclaim invalid key in public key database and update the PubKeyIndex\r
for all the count-based authenticate variable in NV storage.\r
\r
- @param[in] VariableBase Base address of variable store.\r
- @param[out] LastVariableOffset Offset of last variable.\r
- @param[in] IsVolatile The variable store is volatile or not;\r
- if it is non-volatile, need FTW.\r
- @param[in] UpdatingVariable Pointer to updating variable.\r
- @param[in] ReclaimPubKeyStore Reclaim for public key database or not.\r
- @param[in] ReclaimAnyway If TRUE, do reclaim anyway.\r
+ @param[in] VariableBase Base address of variable store.\r
+ @param[out] LastVariableOffset Offset of last variable.\r
+ @param[in] IsVolatile The variable store is volatile or not;\r
+ if it is non-volatile, need FTW.\r
+ @param[in, out] UpdatingPtrTrack Pointer to updating variable pointer track structure.\r
+ @param[in] ReclaimPubKeyStore Reclaim for public key database or not.\r
+ @param[in] ReclaimAnyway If TRUE, do reclaim anyway.\r
\r
- @return EFI_OUT_OF_RESOURCES No enough memory resources.\r
@return EFI_SUCCESS Reclaim operation has finished successfully.\r
+ @return EFI_OUT_OF_RESOURCES No enough memory resources.\r
+ @return EFI_DEVICE_ERROR The public key database doesn't exist.\r
@return Others Unexpect error happened during reclaim operation.\r
\r
**/\r
EFI_STATUS\r
Reclaim (\r
- IN EFI_PHYSICAL_ADDRESS VariableBase,\r
- OUT UINTN *LastVariableOffset,\r
- IN BOOLEAN IsVolatile,\r
- IN VARIABLE_HEADER *UpdatingVariable,\r
- IN BOOLEAN ReclaimPubKeyStore,\r
- IN BOOLEAN ReclaimAnyway\r
+ IN EFI_PHYSICAL_ADDRESS VariableBase,\r
+ OUT UINTN *LastVariableOffset,\r
+ IN BOOLEAN IsVolatile,\r
+ IN OUT VARIABLE_POINTER_TRACK *UpdatingPtrTrack,\r
+ IN BOOLEAN ReclaimPubKeyStore,\r
+ IN BOOLEAN ReclaimAnyway\r
);\r
\r
/**\r