**/\r
BOOLEAN\r
IsValidVariableHeader (\r
- IN VARIABLE_HEADER *Variable,\r
- IN VARIABLE_HEADER *VariableStoreEnd\r
+ IN VARIABLE_HEADER *Variable,\r
+ IN VARIABLE_HEADER *VariableStoreEnd\r
);\r
\r
/**\r
**/\r
VARIABLE_STORE_STATUS\r
GetVariableStoreStatus (\r
- IN VARIABLE_STORE_HEADER *VarStoreHeader\r
+ IN VARIABLE_STORE_HEADER *VarStoreHeader\r
);\r
\r
/**\r
This code gets the size of variable header.\r
\r
+ @param[in] AuthFormat TRUE indicates authenticated variables are used.\r
+ FALSE indicates authenticated variables are not used.\r
+\r
@return Size of variable header in bytes in type UINTN.\r
\r
**/\r
UINTN\r
GetVariableHeaderSize (\r
- VOID\r
+ IN BOOLEAN AuthFormat\r
);\r
\r
/**\r
\r
This code gets the size of name of variable.\r
\r
- @param Variable Pointer to the Variable Header.\r
+ @param[in] Variable Pointer to the variable header.\r
+ @param[in] AuthFormat TRUE indicates authenticated variables are used.\r
+ FALSE indicates authenticated variables are not used.\r
\r
@return UINTN Size of variable in bytes.\r
\r
**/\r
UINTN\r
NameSizeOfVariable (\r
- IN VARIABLE_HEADER *Variable\r
+ IN VARIABLE_HEADER *Variable,\r
+ IN BOOLEAN AuthFormat\r
);\r
\r
/**\r
This code sets the size of name of variable.\r
\r
- @param[in] Variable Pointer to the Variable Header.\r
- @param[in] NameSize Name size to set.\r
+ @param[in] Variable Pointer to the Variable Header.\r
+ @param[in] NameSize Name size to set.\r
+ @param[in] AuthFormat TRUE indicates authenticated variables are used.\r
+ FALSE indicates authenticated variables are not used.\r
\r
**/\r
VOID\r
SetNameSizeOfVariable (\r
- IN VARIABLE_HEADER *Variable,\r
- IN UINTN NameSize\r
+ IN VARIABLE_HEADER *Variable,\r
+ IN UINTN NameSize,\r
+ IN BOOLEAN AuthFormat\r
);\r
\r
/**\r
\r
This code gets the size of variable data.\r
\r
- @param Variable Pointer to the Variable Header.\r
+ @param[in] Variable Pointer to the Variable Header.\r
+ @param[in] AuthFormat TRUE indicates authenticated variables are used.\r
+ FALSE indicates authenticated variables are not used.\r
\r
@return Size of variable in bytes.\r
\r
**/\r
UINTN\r
DataSizeOfVariable (\r
- IN VARIABLE_HEADER *Variable\r
+ IN VARIABLE_HEADER *Variable,\r
+ IN BOOLEAN AuthFormat\r
);\r
\r
/**\r
\r
@param[in] Variable Pointer to the Variable Header.\r
@param[in] DataSize Data size to set.\r
+ @param[in] AuthFormat TRUE indicates authenticated variables are used.\r
+ FALSE indicates authenticated variables are not used.\r
\r
**/\r
VOID\r
SetDataSizeOfVariable (\r
- IN VARIABLE_HEADER *Variable,\r
- IN UINTN DataSize\r
+ IN VARIABLE_HEADER *Variable,\r
+ IN UINTN DataSize,\r
+ IN BOOLEAN AuthFormat\r
);\r
\r
/**\r
\r
This code gets the pointer to the variable name.\r
\r
- @param Variable Pointer to the Variable Header.\r
+ @param[in] Variable Pointer to the Variable Header.\r
+ @param[in] AuthFormat TRUE indicates authenticated variables are used.\r
+ FALSE indicates authenticated variables are not used.\r
\r
@return Pointer to Variable Name which is Unicode encoding.\r
\r
**/\r
CHAR16 *\r
GetVariableNamePtr (\r
- IN VARIABLE_HEADER *Variable\r
+ IN VARIABLE_HEADER *Variable,\r
+ IN BOOLEAN AuthFormat\r
);\r
\r
/**\r
This code gets the pointer to the variable guid.\r
\r
- @param Variable Pointer to the Variable Header.\r
+ @param[in] Variable Pointer to the Variable Header.\r
+ @param[in] AuthFormat TRUE indicates authenticated variables are used.\r
+ FALSE indicates authenticated variables are not used.\r
\r
@return A EFI_GUID* pointer to Vendor Guid.\r
\r
**/\r
EFI_GUID *\r
GetVendorGuidPtr (\r
- IN VARIABLE_HEADER *Variable\r
+ IN VARIABLE_HEADER *Variable,\r
+ IN BOOLEAN AuthFormat\r
);\r
\r
/**\r
\r
This code gets the pointer to the variable data.\r
\r
- @param Variable Pointer to the Variable Header.\r
+ @param[in] Variable Pointer to the Variable Header.\r
+ @param[in] AuthFormat TRUE indicates authenticated variables are used.\r
+ FALSE indicates authenticated variables are not used.\r
\r
@return Pointer to Variable Data.\r
\r
**/\r
UINT8 *\r
GetVariableDataPtr (\r
- IN VARIABLE_HEADER *Variable\r
+ IN VARIABLE_HEADER *Variable,\r
+ IN BOOLEAN AuthFormat\r
);\r
\r
/**\r
This code gets the variable data offset related to variable header.\r
\r
- @param Variable Pointer to the Variable Header.\r
+ @param[in] Variable Pointer to the Variable Header.\r
+ @param[in] AuthFormat TRUE indicates authenticated variables are used.\r
+ FALSE indicates authenticated variables are not used.\r
\r
@return Variable Data offset.\r
\r
**/\r
UINTN\r
GetVariableDataOffset (\r
- IN VARIABLE_HEADER *Variable\r
+ IN VARIABLE_HEADER *Variable,\r
+ IN BOOLEAN AuthFormat\r
);\r
\r
/**\r
\r
This code gets the pointer to the next variable header.\r
\r
- @param Variable Pointer to the Variable Header.\r
+ @param[in] Variable Pointer to the Variable Header.\r
+ @param[in] AuthFormat TRUE indicates authenticated variables are used.\r
+ FALSE indicates authenticated variables are not used.\r
\r
@return Pointer to next variable header.\r
\r
**/\r
VARIABLE_HEADER *\r
GetNextVariablePtr (\r
- IN VARIABLE_HEADER *Variable\r
+ IN VARIABLE_HEADER *Variable,\r
+ IN BOOLEAN AuthFormat\r
);\r
\r
/**\r
**/\r
VARIABLE_HEADER *\r
GetStartPointer (\r
- IN VARIABLE_STORE_HEADER *VarStoreHeader\r
+ IN VARIABLE_STORE_HEADER *VarStoreHeader\r
);\r
\r
/**\r
**/\r
VARIABLE_HEADER *\r
GetEndPointer (\r
- IN VARIABLE_STORE_HEADER *VarStoreHeader\r
+ IN VARIABLE_STORE_HEADER *VarStoreHeader\r
);\r
\r
/**\r
**/\r
BOOLEAN\r
VariableCompareTimeStampInternal (\r
- IN EFI_TIME *FirstTime,\r
- IN EFI_TIME *SecondTime\r
+ IN EFI_TIME *FirstTime,\r
+ IN EFI_TIME *SecondTime\r
);\r
\r
/**\r
@param[in] IgnoreRtCheck Ignore EFI_VARIABLE_RUNTIME_ACCESS attribute\r
check at runtime when searching variable.\r
@param[in, out] PtrTrack Variable Track Pointer structure that contains Variable Information.\r
+ @param[in] AuthFormat TRUE indicates authenticated variables are used.\r
+ FALSE indicates authenticated variables are not used.\r
\r
@retval EFI_SUCCESS Variable found successfully\r
@retval EFI_NOT_FOUND Variable not found\r
IN CHAR16 *VariableName,\r
IN EFI_GUID *VendorGuid,\r
IN BOOLEAN IgnoreRtCheck,\r
- IN OUT VARIABLE_POINTER_TRACK *PtrTrack\r
+ IN OUT VARIABLE_POINTER_TRACK *PtrTrack,\r
+ IN BOOLEAN AuthFormat\r
);\r
\r
/**\r
- This code Finds the Next available variable.\r
+ This code finds the next available variable.\r
\r
Caution: This function may receive untrusted input.\r
This function may be invoked in SMM mode. This function will do basic validation, before parse the data.\r
\r
- @param[in] VariableName Pointer to variable name.\r
- @param[in] VendorGuid Variable Vendor Guid.\r
- @param[out] VariablePtr Pointer to variable header address.\r
+ @param[in] VariableName Pointer to variable name.\r
+ @param[in] VendorGuid Variable Vendor Guid.\r
+ @param[in] VariableStoreList A list of variable stores that should be used to get the next variable.\r
+ The maximum number of entries is the max value of VARIABLE_STORE_TYPE.\r
+ @param[out] VariablePtr Pointer to variable header address.\r
+ @param[in] AuthFormat TRUE indicates authenticated variables are used.\r
+ FALSE indicates authenticated variables are not used.\r
\r
@retval EFI_SUCCESS The function completed successfully.\r
@retval EFI_NOT_FOUND The next variable was not found.\r
EFI_STATUS\r
EFIAPI\r
VariableServiceGetNextVariableInternal (\r
- IN CHAR16 *VariableName,\r
- IN EFI_GUID *VendorGuid,\r
- OUT VARIABLE_HEADER **VariablePtr\r
+ IN CHAR16 *VariableName,\r
+ IN EFI_GUID *VendorGuid,\r
+ IN VARIABLE_STORE_HEADER **VariableStoreList,\r
+ OUT VARIABLE_HEADER **VariablePtr,\r
+ IN BOOLEAN AuthFormat\r
);\r
\r
/**\r
the transaction. Data is allocated by this routine, but never\r
freed.\r
\r
- @param[in] VariableName Name of the Variable to track.\r
- @param[in] VendorGuid Guid of the Variable to track.\r
- @param[in] Volatile TRUE if volatile FALSE if non-volatile.\r
- @param[in] Read TRUE if GetVariable() was called.\r
- @param[in] Write TRUE if SetVariable() was called.\r
- @param[in] Delete TRUE if deleted via SetVariable().\r
- @param[in] Cache TRUE for a cache hit.\r
+ @param[in] VariableName Name of the Variable to track.\r
+ @param[in] VendorGuid Guid of the Variable to track.\r
+ @param[in] Volatile TRUE if volatile FALSE if non-volatile.\r
+ @param[in] Read TRUE if GetVariable() was called.\r
+ @param[in] Write TRUE if SetVariable() was called.\r
+ @param[in] Delete TRUE if deleted via SetVariable().\r
+ @param[in] Cache TRUE for a cache hit.\r
+ @param[in,out] VariableInfo Pointer to a pointer of VARIABLE_INFO_ENTRY structures.\r
\r
**/\r
VOID\r
IN BOOLEAN Read,\r
IN BOOLEAN Write,\r
IN BOOLEAN Delete,\r
- IN BOOLEAN Cache\r
+ IN BOOLEAN Cache,\r
+ IN OUT VARIABLE_INFO_ENTRY **VariableInfo\r
);\r
\r
#endif\r