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
|
STATIC
|
||||||
VARIABLE_HEADER *
|
VARIABLE_HEADER *
|
||||||
GetNextVariablePtr (
|
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
|
STATIC
|
||||||
|
@ -271,8 +218,8 @@ Returns:
|
||||||
(((INT32 *) VendorGuid)[2] == ((INT32 *) &Variable->VendorGuid)[2]) &&
|
(((INT32 *) VendorGuid)[2] == ((INT32 *) &Variable->VendorGuid)[2]) &&
|
||||||
(((INT32 *) VendorGuid)[3] == ((INT32 *) &Variable->VendorGuid)[3])
|
(((INT32 *) VendorGuid)[3] == ((INT32 *) &Variable->VendorGuid)[3])
|
||||||
) {
|
) {
|
||||||
ASSERT (NameSizeOfVariable (Variable) != 0);
|
ASSERT (NAMESIZE_OF_VARIABLE (Variable) != 0);
|
||||||
if (!CompareMem (VariableName, GET_VARIABLE_NAME_PTR (Variable), NameSizeOfVariable (Variable))) {
|
if (!CompareMem (VariableName, GET_VARIABLE_NAME_PTR (Variable), NAMESIZE_OF_VARIABLE (Variable))) {
|
||||||
PtrTrack->CurrPtr = Variable;
|
PtrTrack->CurrPtr = Variable;
|
||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
@ -479,7 +426,7 @@ Returns:
|
||||||
//
|
//
|
||||||
// Get data size
|
// Get data size
|
||||||
//
|
//
|
||||||
VarDataSize = DataSizeOfVariable (Variable.CurrPtr);
|
VarDataSize = DATASIZE_OF_VARIABLE (Variable.CurrPtr);
|
||||||
if (*DataSize >= VarDataSize) {
|
if (*DataSize >= VarDataSize) {
|
||||||
(*PeiServices)->CopyMem (Data, GET_VARIABLE_DATA_PTR (Variable.CurrPtr), VarDataSize);
|
(*PeiServices)->CopyMem (Data, GET_VARIABLE_DATA_PTR (Variable.CurrPtr), VarDataSize);
|
||||||
|
|
||||||
|
@ -605,9 +552,9 @@ Returns:
|
||||||
while (!(Variable.CurrPtr >= Variable.EndPtr || Variable.CurrPtr == NULL)) {
|
while (!(Variable.CurrPtr >= Variable.EndPtr || Variable.CurrPtr == NULL)) {
|
||||||
if (IsValidVariableHeader (Variable.CurrPtr)) {
|
if (IsValidVariableHeader (Variable.CurrPtr)) {
|
||||||
if (Variable.CurrPtr->State == VAR_ADDED) {
|
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) {
|
if (VarNameSize <= *VariableNameSize) {
|
||||||
(*PeiServices)->CopyMem (VariableName, GET_VARIABLE_NAME_PTR (Variable.CurrPtr), VarNameSize);
|
(*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 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_NAME_PTR(a) (CHAR16 *) ((UINTN) (a) + sizeof (VARIABLE_HEADER))
|
||||||
|
|
||||||
#define GET_VARIABLE_DATA_PTR(a) \
|
#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 {
|
typedef struct {
|
||||||
VARIABLE_HEADER *CurrPtr;
|
VARIABLE_HEADER *CurrPtr;
|
||||||
|
|
|
@ -120,59 +120,6 @@ Returns:
|
||||||
return (VARIABLE_HEADER *) HEADER_ALIGN ((UINTN) VarStoreHeader + VarStoreHeader->Size);
|
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
|
STATIC
|
||||||
VARIABLE_HEADER *
|
VARIABLE_HEADER *
|
||||||
GetNextVariablePtr (
|
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
|
STATIC
|
||||||
|
@ -311,8 +258,8 @@ Returns:
|
||||||
(((INT32 *) VendorGuid)[2] == ((INT32 *) &Variable->VendorGuid)[2]) &&
|
(((INT32 *) VendorGuid)[2] == ((INT32 *) &Variable->VendorGuid)[2]) &&
|
||||||
(((INT32 *) VendorGuid)[3] == ((INT32 *) &Variable->VendorGuid)[3])
|
(((INT32 *) VendorGuid)[3] == ((INT32 *) &Variable->VendorGuid)[3])
|
||||||
) {
|
) {
|
||||||
ASSERT (NameSizeOfVariable (Variable) != 0);
|
ASSERT (NAMESIZE_OF_VARIABLE (Variable) != 0);
|
||||||
if (!CompareMem (VariableName, GET_VARIABLE_NAME_PTR (Variable), NameSizeOfVariable (Variable))) {
|
if (!CompareMem (VariableName, GET_VARIABLE_NAME_PTR (Variable), NAMESIZE_OF_VARIABLE (Variable))) {
|
||||||
PtrTrack->CurrPtr = Variable;
|
PtrTrack->CurrPtr = Variable;
|
||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
@ -521,7 +468,7 @@ Returns:
|
||||||
//
|
//
|
||||||
// Get data size
|
// Get data size
|
||||||
//
|
//
|
||||||
VarDataSize = DataSizeOfVariable (Variable.CurrPtr);
|
VarDataSize = DATASIZE_OF_VARIABLE (Variable.CurrPtr);
|
||||||
if (*DataSize >= VarDataSize) {
|
if (*DataSize >= VarDataSize) {
|
||||||
(*PeiServices)->CopyMem (Data, GET_VARIABLE_DATA_PTR (Variable.CurrPtr), VarDataSize);
|
(*PeiServices)->CopyMem (Data, GET_VARIABLE_DATA_PTR (Variable.CurrPtr), VarDataSize);
|
||||||
|
|
||||||
|
@ -597,9 +544,9 @@ Returns:
|
||||||
while (!(Variable.CurrPtr >= Variable.EndPtr || Variable.CurrPtr == NULL)) {
|
while (!(Variable.CurrPtr >= Variable.EndPtr || Variable.CurrPtr == NULL)) {
|
||||||
if (IsValidVariableHeader (Variable.CurrPtr)) {
|
if (IsValidVariableHeader (Variable.CurrPtr)) {
|
||||||
if (Variable.CurrPtr->State == VAR_ADDED) {
|
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) {
|
if (VarNameSize <= *VariableNameSize) {
|
||||||
(*PeiServices)->CopyMem (VariableName, GET_VARIABLE_NAME_PTR (Variable.CurrPtr), VarNameSize);
|
(*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 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_NAME_PTR(a) (CHAR16 *) ((UINTN) (a) + sizeof (VARIABLE_HEADER))
|
||||||
|
|
||||||
#define GET_VARIABLE_DATA_PTR(a) \
|
#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 {
|
typedef struct {
|
||||||
VARIABLE_HEADER *CurrPtr;
|
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 *
|
UINT8 *
|
||||||
GetVariableDataPtr (
|
GetVariableDataPtr (
|
||||||
IN VARIABLE_HEADER *Variable
|
IN VARIABLE_HEADER *Variable
|
||||||
|
@ -444,7 +390,7 @@ Returns:
|
||||||
//
|
//
|
||||||
// Be careful about pad size for alignment
|
// 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
|
// 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 *
|
VARIABLE_HEADER *
|
||||||
|
@ -836,8 +782,8 @@ Returns:
|
||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
} else {
|
} else {
|
||||||
if (CompareGuid (VendorGuid, &Variable[Index]->VendorGuid)) {
|
if (CompareGuid (VendorGuid, &Variable[Index]->VendorGuid)) {
|
||||||
ASSERT (NameSizeOfVariable (Variable[Index]) != 0);
|
ASSERT (NAMESIZE_OF_VARIABLE (Variable[Index]) != 0);
|
||||||
if (!CompareMem (VariableName, GET_VARIABLE_NAME_PTR (Variable[Index]), NameSizeOfVariable (Variable[Index]))) {
|
if (!CompareMem (VariableName, GET_VARIABLE_NAME_PTR (Variable[Index]), NAMESIZE_OF_VARIABLE (Variable[Index]))) {
|
||||||
PtrTrack->CurrPtr = Variable[Index];
|
PtrTrack->CurrPtr = Variable[Index];
|
||||||
PtrTrack->Volatile = (BOOLEAN)(Index == 0);
|
PtrTrack->Volatile = (BOOLEAN)(Index == 0);
|
||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
|
@ -920,7 +866,7 @@ RuntimeServiceGetVariable (
|
||||||
//
|
//
|
||||||
// Get data size
|
// Get data size
|
||||||
//
|
//
|
||||||
VarDataSize = DataSizeOfVariable (Variable.CurrPtr);
|
VarDataSize = DATASIZE_OF_VARIABLE (Variable.CurrPtr);
|
||||||
ASSERT (VarDataSize != 0);
|
ASSERT (VarDataSize != 0);
|
||||||
|
|
||||||
if (*DataSize >= VarDataSize) {
|
if (*DataSize >= VarDataSize) {
|
||||||
|
@ -1027,7 +973,7 @@ RuntimeServiceGetNextVariableName (
|
||||||
//
|
//
|
||||||
if (IsValidVariableHeader (Variable.CurrPtr) && Variable.CurrPtr->State == VAR_ADDED) {
|
if (IsValidVariableHeader (Variable.CurrPtr) && Variable.CurrPtr->State == VAR_ADDED) {
|
||||||
if (!(EfiAtRuntime () && !(Variable.CurrPtr->Attributes & EFI_VARIABLE_RUNTIME_ACCESS))) {
|
if (!(EfiAtRuntime () && !(Variable.CurrPtr->Attributes & EFI_VARIABLE_RUNTIME_ACCESS))) {
|
||||||
VarNameSize = NameSizeOfVariable (Variable.CurrPtr);
|
VarNameSize = NAMESIZE_OF_VARIABLE (Variable.CurrPtr);
|
||||||
ASSERT (VarNameSize != 0);
|
ASSERT (VarNameSize != 0);
|
||||||
|
|
||||||
if (VarNameSize <= *VariableNameSize) {
|
if (VarNameSize <= *VariableNameSize) {
|
||||||
|
@ -1228,7 +1174,7 @@ RuntimeServiceSetVariable (
|
||||||
// If the variable is marked valid and the same data has been passed in
|
// If the variable is marked valid and the same data has been passed in
|
||||||
// then return to the caller immediately.
|
// 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)) {
|
(CompareMem (Data, GetVariableDataPtr (Variable.CurrPtr), DataSize) == 0)) {
|
||||||
|
|
||||||
UpdateVariableInfo (VariableName, VendorGuid, Volatile, FALSE, TRUE, FALSE, FALSE);
|
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 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_NAME_PTR(a) (CHAR16 *) ((UINTN) (a) + sizeof (VARIABLE_HEADER))
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue