mirror of https://github.com/acidanthera/audk.git
Fix the issue that Windows Server 2003 installation fails on Tiger.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2575 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
7689c0808e
commit
a0586cb857
|
@ -59,6 +59,39 @@ ReleaseLockOnlyAtBootTime (
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
A temparaty function that returns the size of a Null-terminated Unicode
|
||||||
|
string in bytes, including the Null terminator.
|
||||||
|
|
||||||
|
This function returns the size, in bytes, of the Null-terminated Unicode
|
||||||
|
string specified by String. It duplicates the functionality of StrSize()
|
||||||
|
in MDE library, but avoids using PCD, because IPF currently cannot convert
|
||||||
|
address of global variable for runtime.
|
||||||
|
|
||||||
|
If String is NULL, then ASSERT().
|
||||||
|
If String is not aligned on a 16-bit boundary, then ASSERT().
|
||||||
|
|
||||||
|
@param String Pointer to a Null-terminated Unicode string.
|
||||||
|
|
||||||
|
@return The size of String.
|
||||||
|
|
||||||
|
**/
|
||||||
|
STATIC
|
||||||
|
UINTN
|
||||||
|
StrSizeOfVariableName (
|
||||||
|
IN CONST CHAR16 *String
|
||||||
|
)
|
||||||
|
{
|
||||||
|
UINTN Length;
|
||||||
|
|
||||||
|
ASSERT (String != NULL);
|
||||||
|
ASSERT (((UINTN) String & 0x01) == 0);
|
||||||
|
|
||||||
|
for (Length = 0; *String != L'\0'; String++, Length++);
|
||||||
|
|
||||||
|
return (Length + 1) * sizeof (*String);
|
||||||
|
}
|
||||||
|
|
||||||
STATIC
|
STATIC
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
EFIAPI
|
EFIAPI
|
||||||
|
@ -835,7 +868,7 @@ Returns:
|
||||||
//
|
//
|
||||||
Status = EFI_WRITE_PROTECTED;
|
Status = EFI_WRITE_PROTECTED;
|
||||||
goto Done;
|
goto Done;
|
||||||
} else if (sizeof (VARIABLE_HEADER) + StrSize (VariableName) + DataSize > MAX_VARIABLE_SIZE) {
|
} else if (sizeof (VARIABLE_HEADER) + StrSizeOfVariableName (VariableName) + DataSize > MAX_VARIABLE_SIZE) {
|
||||||
//
|
//
|
||||||
// The size of the VariableName, including the Unicode Null in bytes plus
|
// The size of the VariableName, including the Unicode Null in bytes plus
|
||||||
// the DataSize is limited to maximum size of MAX_VARIABLE_SIZE (1024) bytes.
|
// the DataSize is limited to maximum size of MAX_VARIABLE_SIZE (1024) bytes.
|
||||||
|
@ -944,7 +977,7 @@ Returns:
|
||||||
//
|
//
|
||||||
NextVariable->Reserved = 0;
|
NextVariable->Reserved = 0;
|
||||||
VarNameOffset = sizeof (VARIABLE_HEADER);
|
VarNameOffset = sizeof (VARIABLE_HEADER);
|
||||||
VarNameSize = StrSize (VariableName);
|
VarNameSize = StrSizeOfVariableName (VariableName);
|
||||||
CopyMem (
|
CopyMem (
|
||||||
(UINT8 *) ((UINTN) NextVariable + VarNameOffset),
|
(UINT8 *) ((UINTN) NextVariable + VarNameOffset),
|
||||||
VariableName,
|
VariableName,
|
||||||
|
|
Loading…
Reference in New Issue