mirror of https://github.com/acidanthera/audk.git
Change C functions, xxxSizeOfVariable(), to MACRO, which can avoid the ICC compile error "Unspecific evaluated order".
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4552 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
9cad030bc1
commit
ab5f0d6d12
|
@ -80,59 +80,6 @@ Returns:
|
|||
|
||||
}
|
||||
|
||||
|
||||
UINT32
|
||||
NameSizeOfVariable (
|
||||
IN VARIABLE_HEADER *Variable
|
||||
)
|
||||
{
|
||||
//
|
||||
// Check whether the header is valid fully;
|
||||
// Tricky: The unprogramed data in FLASH equals 0xff.
|
||||
//
|
||||
if (Variable->DataSize == (UINT32) -1 ||
|
||||
Variable->Attributes == (UINT32) -1 ||
|
||||
Variable->NameSize == (UINT32) -1) {
|
||||
return 0;
|
||||
}
|
||||
return Variable->NameSize;
|
||||
}
|
||||
|
||||
UINT32
|
||||
DataSizeOfVariable (
|
||||
IN VARIABLE_HEADER *Variable
|
||||
)
|
||||
{
|
||||
//
|
||||
// Check whether the header is valid fully;
|
||||
// Tricky: The unprogramed data in FLASH equals 0xff.
|
||||
//
|
||||
if (Variable->DataSize == (UINT32) -1 ||
|
||||
Variable->Attributes == (UINT32) -1 ||
|
||||
Variable->NameSize == (UINT32) -1) {
|
||||
return 0;
|
||||
}
|
||||
return Variable->DataSize;
|
||||
}
|
||||
|
||||
UINT32
|
||||
AttributesOfVariable (
|
||||
IN VARIABLE_HEADER *Variable
|
||||
)
|
||||
{
|
||||
|
||||
//
|
||||
// Check whether the header is valid fully;
|
||||
// Tricky: The unprogramed data in FLASH equals 0xff.
|
||||
//
|
||||
if (Variable->DataSize == (UINT32) -1 ||
|
||||
Variable->Attributes == (UINT32) -1 ||
|
||||
Variable->NameSize == (UINT32) -1) {
|
||||
return 0;
|
||||
}
|
||||
return Variable->Attributes;
|
||||
}
|
||||
|
||||
STATIC
|
||||
VARIABLE_HEADER *
|
||||
GetNextVariablePtr (
|
||||
|
@ -153,7 +100,7 @@ Returns:
|
|||
|
||||
--*/
|
||||
{
|
||||
return (VARIABLE_HEADER *) HEADER_ALIGN ((UINTN) GET_VARIABLE_DATA_PTR (Variable) + DataSizeOfVariable (Variable) + GET_PAD_SIZE (DataSizeOfVariable (Variable)));
|
||||
return (VARIABLE_HEADER *) HEADER_ALIGN ((UINTN) GET_VARIABLE_DATA_PTR (Variable) + DATASIZE_OF_VARIABLE (Variable) + GET_PAD_SIZE (DATASIZE_OF_VARIABLE (Variable)));
|
||||
}
|
||||
|
||||
STATIC
|
||||
|
@ -271,8 +218,8 @@ Returns:
|
|||
(((INT32 *) VendorGuid)[2] == ((INT32 *) &Variable->VendorGuid)[2]) &&
|
||||
(((INT32 *) VendorGuid)[3] == ((INT32 *) &Variable->VendorGuid)[3])
|
||||
) {
|
||||
ASSERT (NameSizeOfVariable (Variable) != 0);
|
||||
if (!CompareMem (VariableName, GET_VARIABLE_NAME_PTR (Variable), NameSizeOfVariable (Variable))) {
|
||||
ASSERT (NAMESIZE_OF_VARIABLE (Variable) != 0);
|
||||
if (!CompareMem (VariableName, GET_VARIABLE_NAME_PTR (Variable), NAMESIZE_OF_VARIABLE (Variable))) {
|
||||
PtrTrack->CurrPtr = Variable;
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
@ -479,7 +426,7 @@ Returns:
|
|||
//
|
||||
// Get data size
|
||||
//
|
||||
VarDataSize = DataSizeOfVariable (Variable.CurrPtr);
|
||||
VarDataSize = DATASIZE_OF_VARIABLE (Variable.CurrPtr);
|
||||
if (*DataSize >= VarDataSize) {
|
||||
(*PeiServices)->CopyMem (Data, GET_VARIABLE_DATA_PTR (Variable.CurrPtr), VarDataSize);
|
||||
|
||||
|
@ -605,9 +552,9 @@ Returns:
|
|||
while (!(Variable.CurrPtr >= Variable.EndPtr || Variable.CurrPtr == NULL)) {
|
||||
if (IsValidVariableHeader (Variable.CurrPtr)) {
|
||||
if (Variable.CurrPtr->State == VAR_ADDED) {
|
||||
ASSERT (NameSizeOfVariable (Variable.CurrPtr) != 0);
|
||||
ASSERT (NAMESIZE_OF_VARIABLE (Variable.CurrPtr) != 0);
|
||||
|
||||
VarNameSize = (UINTN) NameSizeOfVariable (Variable.CurrPtr);
|
||||
VarNameSize = (UINTN) NAMESIZE_OF_VARIABLE (Variable.CurrPtr);
|
||||
if (VarNameSize <= *VariableNameSize) {
|
||||
(*PeiServices)->CopyMem (VariableName, GET_VARIABLE_NAME_PTR (Variable.CurrPtr), VarNameSize);
|
||||
|
||||
|
|
|
@ -44,10 +44,26 @@ Abstract:
|
|||
|
||||
#define HEADER_ALIGN(Header) (((UINTN) (Header) + HEADER_ALIGNMENT - 1) & (~(HEADER_ALIGNMENT - 1)))
|
||||
|
||||
#define NAMESIZE_OF_VARIABLE(Variable) \
|
||||
((((Variable)->DataSize == (UINT32) -1) || \
|
||||
((Variable)->Attributes == (UINT32) -1) || \
|
||||
((Variable)->NameSize == (UINT32) -1)) ? \
|
||||
0 : \
|
||||
(Variable)->NameSize \
|
||||
)
|
||||
|
||||
#define DATASIZE_OF_VARIABLE(Variable) \
|
||||
((((Variable)->DataSize == (UINT32) -1) || \
|
||||
((Variable)->Attributes == (UINT32) -1) || \
|
||||
((Variable)->NameSize == (UINT32) -1)) ? \
|
||||
0 : \
|
||||
(Variable)->DataSize \
|
||||
)
|
||||
|
||||
#define GET_VARIABLE_NAME_PTR(a) (CHAR16 *) ((UINTN) (a) + sizeof (VARIABLE_HEADER))
|
||||
|
||||
#define GET_VARIABLE_DATA_PTR(a) \
|
||||
(UINT8 *) ((UINTN) GET_VARIABLE_NAME_PTR (a) + NameSizeOfVariable(a) + GET_PAD_SIZE (NameSizeOfVariable(a) ))
|
||||
(UINT8 *) ((UINTN) GET_VARIABLE_NAME_PTR (a) + NAMESIZE_OF_VARIABLE(a) + GET_PAD_SIZE (NAMESIZE_OF_VARIABLE(a)))
|
||||
|
||||
typedef struct {
|
||||
VARIABLE_HEADER *CurrPtr;
|
||||
|
|
|
@ -120,59 +120,6 @@ Returns:
|
|||
return (VARIABLE_HEADER *) HEADER_ALIGN ((UINTN) VarStoreHeader + VarStoreHeader->Size);
|
||||
}
|
||||
|
||||
UINT32
|
||||
NameSizeOfVariable (
|
||||
IN VARIABLE_HEADER *Variable
|
||||
)
|
||||
{
|
||||
//
|
||||
// Check whether the header is valid fully;
|
||||
// Tricky: The unprogramed data in FLASH equals 0xff.
|
||||
//
|
||||
if (Variable->DataSize == (UINT32) -1 ||
|
||||
Variable->Attributes == (UINT32) -1 ||
|
||||
Variable->NameSize == (UINT32) -1) {
|
||||
return 0;
|
||||
}
|
||||
return Variable->NameSize;
|
||||
}
|
||||
|
||||
UINT32
|
||||
DataSizeOfVariable (
|
||||
IN VARIABLE_HEADER *Variable
|
||||
)
|
||||
{
|
||||
//
|
||||
// Check whether the header is valid fully;
|
||||
// Tricky: The unprogramed data in FLASH equals 0xff.
|
||||
//
|
||||
if (Variable->DataSize == (UINT32) -1 ||
|
||||
Variable->Attributes == (UINT32) -1 ||
|
||||
Variable->NameSize == (UINT32) -1) {
|
||||
return 0;
|
||||
}
|
||||
return Variable->DataSize;
|
||||
}
|
||||
|
||||
UINT32
|
||||
AttributesOfVariable (
|
||||
IN VARIABLE_HEADER *Variable
|
||||
)
|
||||
{
|
||||
|
||||
//
|
||||
// Check whether the header is valid fully;
|
||||
// Tricky: The unprogramed data in FLASH equals 0xff.
|
||||
//
|
||||
if (Variable->DataSize == (UINT32) -1 ||
|
||||
Variable->Attributes == (UINT32) -1 ||
|
||||
Variable->NameSize == (UINT32) -1) {
|
||||
return 0;
|
||||
}
|
||||
return Variable->Attributes;
|
||||
}
|
||||
|
||||
|
||||
STATIC
|
||||
VARIABLE_HEADER *
|
||||
GetNextVariablePtr (
|
||||
|
@ -193,7 +140,7 @@ Returns:
|
|||
|
||||
--*/
|
||||
{
|
||||
return (VARIABLE_HEADER *) HEADER_ALIGN ((UINTN) GET_VARIABLE_DATA_PTR (Variable) + DataSizeOfVariable (Variable) + GET_PAD_SIZE (DataSizeOfVariable (Variable)));
|
||||
return (VARIABLE_HEADER *) HEADER_ALIGN ((UINTN) GET_VARIABLE_DATA_PTR (Variable) + DATASIZE_OF_VARIABLE (Variable) + GET_PAD_SIZE (DATASIZE_OF_VARIABLE (Variable)));
|
||||
}
|
||||
|
||||
STATIC
|
||||
|
@ -311,8 +258,8 @@ Returns:
|
|||
(((INT32 *) VendorGuid)[2] == ((INT32 *) &Variable->VendorGuid)[2]) &&
|
||||
(((INT32 *) VendorGuid)[3] == ((INT32 *) &Variable->VendorGuid)[3])
|
||||
) {
|
||||
ASSERT (NameSizeOfVariable (Variable) != 0);
|
||||
if (!CompareMem (VariableName, GET_VARIABLE_NAME_PTR (Variable), NameSizeOfVariable (Variable))) {
|
||||
ASSERT (NAMESIZE_OF_VARIABLE (Variable) != 0);
|
||||
if (!CompareMem (VariableName, GET_VARIABLE_NAME_PTR (Variable), NAMESIZE_OF_VARIABLE (Variable))) {
|
||||
PtrTrack->CurrPtr = Variable;
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
@ -521,7 +468,7 @@ Returns:
|
|||
//
|
||||
// Get data size
|
||||
//
|
||||
VarDataSize = DataSizeOfVariable (Variable.CurrPtr);
|
||||
VarDataSize = DATASIZE_OF_VARIABLE (Variable.CurrPtr);
|
||||
if (*DataSize >= VarDataSize) {
|
||||
(*PeiServices)->CopyMem (Data, GET_VARIABLE_DATA_PTR (Variable.CurrPtr), VarDataSize);
|
||||
|
||||
|
@ -597,9 +544,9 @@ Returns:
|
|||
while (!(Variable.CurrPtr >= Variable.EndPtr || Variable.CurrPtr == NULL)) {
|
||||
if (IsValidVariableHeader (Variable.CurrPtr)) {
|
||||
if (Variable.CurrPtr->State == VAR_ADDED) {
|
||||
ASSERT (NameSizeOfVariable (Variable.CurrPtr) != 0);
|
||||
ASSERT (NAMESIZE_OF_VARIABLE (Variable.CurrPtr) != 0);
|
||||
|
||||
VarNameSize = (UINTN) NameSizeOfVariable (Variable.CurrPtr);
|
||||
VarNameSize = (UINTN) NAMESIZE_OF_VARIABLE (Variable.CurrPtr);
|
||||
if (VarNameSize <= *VariableNameSize) {
|
||||
(*PeiServices)->CopyMem (VariableName, GET_VARIABLE_NAME_PTR (Variable.CurrPtr), VarNameSize);
|
||||
|
||||
|
|
|
@ -43,10 +43,26 @@ Abstract:
|
|||
|
||||
#define HEADER_ALIGN(Header) (((UINTN) (Header) + HEADER_ALIGNMENT - 1) & (~(HEADER_ALIGNMENT - 1)))
|
||||
|
||||
#define NAMESIZE_OF_VARIABLE(Variable) \
|
||||
((((Variable)->DataSize == (UINT32) -1) || \
|
||||
((Variable)->Attributes == (UINT32) -1) || \
|
||||
((Variable)->NameSize == (UINT32) -1)) ? \
|
||||
0 : \
|
||||
(Variable)->NameSize \
|
||||
)
|
||||
|
||||
#define DATASIZE_OF_VARIABLE(Variable) \
|
||||
((((Variable)->DataSize == (UINT32) -1) || \
|
||||
((Variable)->Attributes == (UINT32) -1) || \
|
||||
((Variable)->NameSize == (UINT32) -1)) ? \
|
||||
0 : \
|
||||
(Variable)->DataSize \
|
||||
)
|
||||
|
||||
#define GET_VARIABLE_NAME_PTR(a) (CHAR16 *) ((UINTN) (a) + sizeof (VARIABLE_HEADER))
|
||||
|
||||
#define GET_VARIABLE_DATA_PTR(a) \
|
||||
(UINT8 *) ((UINTN) GET_VARIABLE_NAME_PTR (a) + NameSizeOfVariable(a) + GET_PAD_SIZE (NameSizeOfVariable(a)))
|
||||
(UINT8 *) ((UINTN) GET_VARIABLE_NAME_PTR (a) + NAMESIZE_OF_VARIABLE(a) + GET_PAD_SIZE (NAMESIZE_OF_VARIABLE(a)))
|
||||
|
||||
typedef struct {
|
||||
VARIABLE_HEADER *CurrPtr;
|
||||
|
|
|
@ -367,60 +367,6 @@ Returns:
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
UINT32
|
||||
NameSizeOfVariable (
|
||||
IN VARIABLE_HEADER *Variable
|
||||
)
|
||||
{
|
||||
//
|
||||
// Check whether the header is valid fully;
|
||||
// Tricky: The unprogramed data in FLASH equals 0xff.
|
||||
//
|
||||
if (Variable->DataSize == (UINT32) -1 ||
|
||||
Variable->Attributes == (UINT32) -1 ||
|
||||
Variable->NameSize == (UINT32) -1) {
|
||||
return 0;
|
||||
}
|
||||
return Variable->NameSize;
|
||||
}
|
||||
|
||||
UINT32
|
||||
DataSizeOfVariable (
|
||||
IN VARIABLE_HEADER *Variable
|
||||
)
|
||||
{
|
||||
//
|
||||
// Check whether the header is valid fully;
|
||||
// Tricky: The unprogramed data in FLASH equals 0xff.
|
||||
//
|
||||
if (Variable->DataSize == (UINT32) -1 ||
|
||||
Variable->Attributes == (UINT32) -1 ||
|
||||
Variable->NameSize == (UINT32) -1) {
|
||||
return 0;
|
||||
}
|
||||
return Variable->DataSize;
|
||||
}
|
||||
|
||||
UINT32
|
||||
AttributesOfVariable (
|
||||
IN VARIABLE_HEADER *Variable
|
||||
)
|
||||
{
|
||||
|
||||
//
|
||||
// Check whether the header is valid fully;
|
||||
// Tricky: The unprogramed data in FLASH equals 0xff.
|
||||
//
|
||||
if (Variable->DataSize == (UINT32) -1 ||
|
||||
Variable->Attributes == (UINT32) -1 ||
|
||||
Variable->NameSize == (UINT32) -1) {
|
||||
return 0;
|
||||
}
|
||||
return Variable->Attributes;
|
||||
}
|
||||
|
||||
|
||||
UINT8 *
|
||||
GetVariableDataPtr (
|
||||
IN VARIABLE_HEADER *Variable
|
||||
|
@ -444,7 +390,7 @@ Returns:
|
|||
//
|
||||
// Be careful about pad size for alignment
|
||||
//
|
||||
return (UINT8 *) ((UINTN) GET_VARIABLE_NAME_PTR (Variable) + NameSizeOfVariable (Variable) + GET_PAD_SIZE (NameSizeOfVariable (Variable)));
|
||||
return (UINT8 *) ((UINTN) GET_VARIABLE_NAME_PTR (Variable) + NAMESIZE_OF_VARIABLE (Variable) + GET_PAD_SIZE (NAMESIZE_OF_VARIABLE (Variable)));
|
||||
}
|
||||
|
||||
|
||||
|
@ -474,7 +420,7 @@ Returns:
|
|||
//
|
||||
// Be careful about pad size for alignment
|
||||
//
|
||||
return (VARIABLE_HEADER *) HEADER_ALIGN (((UINTN) GetVariableDataPtr (Variable) + DataSizeOfVariable (Variable) + GET_PAD_SIZE (DataSizeOfVariable (Variable))));
|
||||
return (VARIABLE_HEADER *) HEADER_ALIGN (((UINTN) GetVariableDataPtr (Variable) + DATASIZE_OF_VARIABLE (Variable) + GET_PAD_SIZE (DATASIZE_OF_VARIABLE (Variable))));
|
||||
}
|
||||
|
||||
VARIABLE_HEADER *
|
||||
|
@ -836,8 +782,8 @@ Returns:
|
|||
return EFI_SUCCESS;
|
||||
} else {
|
||||
if (CompareGuid (VendorGuid, &Variable[Index]->VendorGuid)) {
|
||||
ASSERT (NameSizeOfVariable (Variable[Index]) != 0);
|
||||
if (!CompareMem (VariableName, GET_VARIABLE_NAME_PTR (Variable[Index]), NameSizeOfVariable (Variable[Index]))) {
|
||||
ASSERT (NAMESIZE_OF_VARIABLE (Variable[Index]) != 0);
|
||||
if (!CompareMem (VariableName, GET_VARIABLE_NAME_PTR (Variable[Index]), NAMESIZE_OF_VARIABLE (Variable[Index]))) {
|
||||
PtrTrack->CurrPtr = Variable[Index];
|
||||
PtrTrack->Volatile = (BOOLEAN)(Index == 0);
|
||||
return EFI_SUCCESS;
|
||||
|
@ -920,7 +866,7 @@ RuntimeServiceGetVariable (
|
|||
//
|
||||
// Get data size
|
||||
//
|
||||
VarDataSize = DataSizeOfVariable (Variable.CurrPtr);
|
||||
VarDataSize = DATASIZE_OF_VARIABLE (Variable.CurrPtr);
|
||||
ASSERT (VarDataSize != 0);
|
||||
|
||||
if (*DataSize >= VarDataSize) {
|
||||
|
@ -1027,7 +973,7 @@ RuntimeServiceGetNextVariableName (
|
|||
//
|
||||
if (IsValidVariableHeader (Variable.CurrPtr) && Variable.CurrPtr->State == VAR_ADDED) {
|
||||
if (!(EfiAtRuntime () && !(Variable.CurrPtr->Attributes & EFI_VARIABLE_RUNTIME_ACCESS))) {
|
||||
VarNameSize = NameSizeOfVariable (Variable.CurrPtr);
|
||||
VarNameSize = NAMESIZE_OF_VARIABLE (Variable.CurrPtr);
|
||||
ASSERT (VarNameSize != 0);
|
||||
|
||||
if (VarNameSize <= *VariableNameSize) {
|
||||
|
@ -1228,7 +1174,7 @@ RuntimeServiceSetVariable (
|
|||
// If the variable is marked valid and the same data has been passed in
|
||||
// then return to the caller immediately.
|
||||
//
|
||||
if (DataSizeOfVariable (Variable.CurrPtr) == DataSize &&
|
||||
if (DATASIZE_OF_VARIABLE (Variable.CurrPtr) == DataSize &&
|
||||
(CompareMem (Data, GetVariableDataPtr (Variable.CurrPtr), DataSize) == 0)) {
|
||||
|
||||
UpdateVariableInfo (VariableName, VendorGuid, Volatile, FALSE, TRUE, FALSE, FALSE);
|
||||
|
|
|
@ -59,6 +59,22 @@ Abstract:
|
|||
|
||||
#define HEADER_ALIGN(Header) (((UINTN) (Header) + HEADER_ALIGNMENT - 1) & (~(HEADER_ALIGNMENT - 1)))
|
||||
|
||||
#define NAMESIZE_OF_VARIABLE(Variable) \
|
||||
((((Variable)->DataSize == (UINT32) -1) || \
|
||||
((Variable)->Attributes == (UINT32) -1) || \
|
||||
((Variable)->NameSize == (UINT32) -1)) ? \
|
||||
0 : \
|
||||
(Variable)->NameSize \
|
||||
)
|
||||
|
||||
#define DATASIZE_OF_VARIABLE(Variable) \
|
||||
((((Variable)->DataSize == (UINT32) -1) || \
|
||||
((Variable)->Attributes == (UINT32) -1) || \
|
||||
((Variable)->NameSize == (UINT32) -1)) ? \
|
||||
0 : \
|
||||
(Variable)->DataSize \
|
||||
)
|
||||
|
||||
#define GET_VARIABLE_NAME_PTR(a) (CHAR16 *) ((UINTN) (a) + sizeof (VARIABLE_HEADER))
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue