//\r
// The end of variable store\r
//\r
- return (VARIABLE_HEADER *) ((UINTN) VolHeader + VolHeader->Size);\r
+ return (VARIABLE_HEADER *) HEADER_ALIGN (VolHeader + 1);\r
}\r
\r
/**\r
if ((Attributes & EFI_VARIABLE_NON_VOLATILE) != 0) {\r
NonVolatileVarableStoreSize = ((VARIABLE_STORE_HEADER *)(UINTN)(Global->NonVolatileVariableBase))->Size;\r
if ((((Attributes & EFI_VARIABLE_HARDWARE_ERROR_RECORD) != 0) \r
- && ((VarSize + mVariableModuleGlobal->HwErrVariableTotalSize) > PcdGet32 (PcdHwErrStorageSize)))\r
+ && ((HEADER_ALIGN (VarSize) + mVariableModuleGlobal->HwErrVariableTotalSize) > PcdGet32 (PcdHwErrStorageSize)))\r
|| (((Attributes & EFI_VARIABLE_HARDWARE_ERROR_RECORD) == 0) \r
- && ((VarSize + mVariableModuleGlobal->CommonVariableTotalSize) > NonVolatileVarableStoreSize - sizeof (VARIABLE_STORE_HEADER) - PcdGet32 (PcdHwErrStorageSize)))) {\r
+ && ((HEADER_ALIGN (VarSize) + mVariableModuleGlobal->CommonVariableTotalSize) > NonVolatileVarableStoreSize - sizeof (VARIABLE_STORE_HEADER) - PcdGet32 (PcdHwErrStorageSize)))) {\r
Status = EFI_OUT_OF_RESOURCES;\r
goto Done;\r
}\r
mVariableModuleGlobal->CommonVariableTotalSize += HEADER_ALIGN (VarSize);\r
}\r
} else {\r
- if ((UINT32) (VarSize + mVariableModuleGlobal->VolatileLastVariableOffset) >\r
+ if ((UINT32) (HEADER_ALIGN (VarSize) + mVariableModuleGlobal->VolatileLastVariableOffset) >\r
((VARIABLE_STORE_HEADER *) ((UINTN) (Global->VolatileVariableBase)))->Size\r
) {\r
Status = EFI_OUT_OF_RESOURCES;\r
// Start Pointers for the variable.\r
// Actual Data Pointer where data can be written.\r
//\r
- Variable[0] = (VARIABLE_HEADER *) (VariableStoreHeader[0] + 1);\r
- Variable[1] = (VARIABLE_HEADER *) (VariableStoreHeader[1] + 1);\r
+ Variable[0] = (VARIABLE_HEADER *) HEADER_ALIGN (VariableStoreHeader[0] + 1);\r
+ Variable[1] = (VARIABLE_HEADER *) HEADER_ALIGN (VariableStoreHeader[1] + 1);\r
\r
if (VariableName[0] != 0 && VendorGuid == NULL) {\r
return EFI_INVALID_PARAMETER;\r
// Find the variable by walk through non-volatile and volatile variable store\r
//\r
for (Index = 0; Index < 2; Index++) {\r
- PtrTrack->StartPtr = (VARIABLE_HEADER *) (VariableStoreHeader[Index] + 1);\r
+ PtrTrack->StartPtr = (VARIABLE_HEADER *) HEADER_ALIGN (VariableStoreHeader[Index] + 1);\r
PtrTrack->EndPtr = GetEndPointer (VariableStoreHeader[Index]);\r
\r
while ((Variable[Index] < GetEndPointer (VariableStoreHeader[Index])) && (Variable[Index] != NULL)) {\r
if (Variable.CurrPtr >= Variable.EndPtr || Variable.CurrPtr == NULL) {\r
Variable.Volatile = (BOOLEAN) (Variable.Volatile ^ ((BOOLEAN) 0x1));\r
if (Variable.Volatile) {\r
- Variable.StartPtr = (VARIABLE_HEADER *) ((UINTN) (Global->VolatileVariableBase + sizeof (VARIABLE_STORE_HEADER)));\r
+ Variable.StartPtr = (VARIABLE_HEADER *) HEADER_ALIGN ((UINTN) (Global->VolatileVariableBase + sizeof (VARIABLE_STORE_HEADER)));\r
Variable.EndPtr = (VARIABLE_HEADER *) GetEndPointer ((VARIABLE_STORE_HEADER *) ((UINTN) Global->VolatileVariableBase));\r
} else {\r
Status = EFI_NOT_FOUND;\r
//\r
// Point to the starting address of the variables.\r
//\r
- Variable = (VARIABLE_HEADER *) (VariableStoreHeader + 1);\r
+ Variable = (VARIABLE_HEADER *) HEADER_ALIGN (VariableStoreHeader + 1);\r
\r
//\r
// Now walk through the related variable store.\r
//\r
// Flush the HOB variable to Emulation Variable storage.\r
//\r
- for ( Variable = (VARIABLE_HEADER *) (VariableStoreHeader + 1)\r
+ for ( Variable = (VARIABLE_HEADER *) HEADER_ALIGN (VariableStoreHeader + 1)\r
; (Variable < GetEndPointer (VariableStoreHeader) && (Variable != NULL))\r
; Variable = GetNextVariablePtr (Variable)\r
) {\r