33 IN CHAR16 *VariableName,
34 IN EFI_GUID *VendorGuid,
35 OUT AUTH_VARIABLE_INFO *AuthVariableInfo
40 AUTHENTICATED_VARIABLE_HEADER *AuthVariable;
49 if (EFI_ERROR (Status)) {
50 AuthVariableInfo->Data = NULL;
51 AuthVariableInfo->DataSize = 0;
52 AuthVariableInfo->Attributes = 0;
53 AuthVariableInfo->PubKeyIndex = 0;
54 AuthVariableInfo->MonotonicCount = 0;
55 AuthVariableInfo->TimeStamp = NULL;
61 AuthVariableInfo->Attributes = Variable.
CurrPtr->Attributes;
63 AuthVariable = (AUTHENTICATED_VARIABLE_HEADER *)Variable.
CurrPtr;
64 AuthVariableInfo->PubKeyIndex = AuthVariable->PubKeyIndex;
65 AuthVariableInfo->MonotonicCount =
ReadUnaligned64 (&(AuthVariable->MonotonicCount));
66 AuthVariableInfo->TimeStamp = &AuthVariable->TimeStamp;
93 IN CHAR16 *VariableName,
94 IN EFI_GUID *VendorGuid,
95 OUT AUTH_VARIABLE_INFO *AuthVariableInfo
99 VARIABLE_HEADER *VariablePtr;
100 AUTHENTICATED_VARIABLE_HEADER *AuthVariablePtr;
114 if (EFI_ERROR (Status)) {
115 AuthVariableInfo->VariableName = NULL;
116 AuthVariableInfo->VendorGuid = NULL;
117 AuthVariableInfo->Data = NULL;
118 AuthVariableInfo->DataSize = 0;
119 AuthVariableInfo->Attributes = 0;
120 AuthVariableInfo->PubKeyIndex = 0;
121 AuthVariableInfo->MonotonicCount = 0;
122 AuthVariableInfo->TimeStamp = NULL;
130 AuthVariableInfo->Attributes = VariablePtr->Attributes;
132 AuthVariablePtr = (AUTHENTICATED_VARIABLE_HEADER *)VariablePtr;
133 AuthVariableInfo->PubKeyIndex = AuthVariablePtr->PubKeyIndex;
134 AuthVariableInfo->MonotonicCount =
ReadUnaligned64 (&(AuthVariablePtr->MonotonicCount));
135 AuthVariableInfo->TimeStamp = &AuthVariablePtr->TimeStamp;
156 IN AUTH_VARIABLE_INFO *AuthVariableInfo
163 AuthVariableInfo->VariableName,
164 AuthVariableInfo->VendorGuid,
165 AuthVariableInfo->Data,
166 AuthVariableInfo->DataSize,
167 AuthVariableInfo->Attributes,
168 AuthVariableInfo->PubKeyIndex,
169 AuthVariableInfo->MonotonicCount,
171 AuthVariableInfo->TimeStamp
190 IN OUT UINTN *ScratchBufferSize,
191 OUT VOID **ScratchBuffer
197 if (*ScratchBufferSize > MaxBufferSize) {
198 *ScratchBufferSize = MaxBufferSize;
199 return EFI_UNSUPPORTED;
228 IN UINT32 Attributes,
235 VA_START (Marker, Attributes);
UINT64 EFIAPI ReadUnaligned64(IN CONST UINT64 *Buffer)
EFI_STATUS UpdateVariable(IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN VOID *Data, IN UINTN DataSize, IN UINT32 Attributes OPTIONAL, IN UINT32 KeyIndex OPTIONAL, IN UINT64 MonotonicCount OPTIONAL, IN OUT VARIABLE_POINTER_TRACK *CacheVariable, IN EFI_TIME *TimeStamp OPTIONAL)
BOOLEAN EFIAPI CheckRemainingSpaceForConsistencyInternal(IN UINT32 Attributes, IN VA_LIST Marker)
VARIABLE_STORE_HEADER * mNvVariableCache
EFI_STATUS FindVariable(IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, OUT VARIABLE_POINTER_TRACK *PtrTrack, IN VARIABLE_GLOBAL *Global, IN BOOLEAN IgnoreRtCheck)
VARIABLE_MODULE_GLOBAL * mVariableModuleGlobal
@ VariableStoreTypeVolatile
EFI_STATUS EFIAPI VariableExLibGetScratchBuffer(IN OUT UINTN *ScratchBufferSize, OUT VOID **ScratchBuffer)
BOOLEAN EFIAPI VariableExLibAtRuntime(VOID)
BOOLEAN EFIAPI VariableExLibCheckRemainingSpaceForConsistency(IN UINT32 Attributes,...)
EFI_STATUS EFIAPI VariableExLibFindVariable(IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, OUT AUTH_VARIABLE_INFO *AuthVariableInfo)
EFI_STATUS EFIAPI VariableExLibUpdateVariable(IN AUTH_VARIABLE_INFO *AuthVariableInfo)
EFI_STATUS EFIAPI VariableExLibFindNextVariable(IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, OUT AUTH_VARIABLE_INFO *AuthVariableInfo)
EFI_GUID * GetVendorGuidPtr(IN VARIABLE_HEADER *Variable, IN BOOLEAN AuthFormat)
UINT8 * GetVariableDataPtr(IN VARIABLE_HEADER *Variable, IN BOOLEAN AuthFormat)
EFI_STATUS EFIAPI VariableServiceGetNextVariableInternal(IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN VARIABLE_STORE_HEADER **VariableStoreList, OUT VARIABLE_HEADER **VariablePtr, IN BOOLEAN AuthFormat)
VARIABLE_HEADER * GetEndPointer(IN VARIABLE_STORE_HEADER *VarStoreHeader)
UINTN DataSizeOfVariable(IN VARIABLE_HEADER *Variable, IN BOOLEAN AuthFormat)
CHAR16 * GetVariableNamePtr(IN VARIABLE_HEADER *Variable, IN BOOLEAN AuthFormat)
EFI_PHYSICAL_ADDRESS VolatileVariableBase
EFI_PHYSICAL_ADDRESS HobVariableBase
VARIABLE_GLOBAL VariableGlobal
VARIABLE_HEADER * CurrPtr