MdeModulePkg: Use BmCharToUint in BmIsKeyOptionVariable
The patch also moves the BmCharToUint to BmMisc.c because it belongs to misc functions. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com> Reviewed-by: Sunny Wang <sunnywang@hpe.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18855 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
d95ff8e8d8
commit
418e8cd924
|
@ -88,6 +88,7 @@ BmIsKeyOptionVariable (
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
UINTN Index;
|
UINTN Index;
|
||||||
|
UINTN Uint;
|
||||||
|
|
||||||
if (!CompareGuid (Guid, &gEfiGlobalVariableGuid) ||
|
if (!CompareGuid (Guid, &gEfiGlobalVariableGuid) ||
|
||||||
(StrSize (Name) != sizeof (L"Key####")) ||
|
(StrSize (Name) != sizeof (L"Key####")) ||
|
||||||
|
@ -98,12 +99,11 @@ BmIsKeyOptionVariable (
|
||||||
|
|
||||||
*OptionNumber = 0;
|
*OptionNumber = 0;
|
||||||
for (Index = 3; Index < 7; Index++) {
|
for (Index = 3; Index < 7; Index++) {
|
||||||
if ((Name[Index] >= L'0') && (Name[Index] <= L'9')) {
|
Uint = BmCharToUint (Name[Index]);
|
||||||
*OptionNumber = *OptionNumber * 16 + Name[Index] - L'0';
|
if (Uint == -1) {
|
||||||
} else if ((Name[Index] >= L'A') && (Name[Index] <= L'F')) {
|
|
||||||
*OptionNumber = *OptionNumber * 16 + Name[Index] - L'A' + 10;
|
|
||||||
} else {
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
} else {
|
||||||
|
*OptionNumber = (UINT16) Uint + *OptionNumber * 0x10;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -586,29 +586,6 @@ EfiBootManagerDeleteLoadOptionVariable (
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
Convert a single character to number.
|
|
||||||
It assumes the input Char is in the scope of L'0' ~ L'9' and L'A' ~ L'F'
|
|
||||||
|
|
||||||
@param Char The input char which need to convert to int.
|
|
||||||
**/
|
|
||||||
UINTN
|
|
||||||
BmCharToUint (
|
|
||||||
IN CHAR16 Char
|
|
||||||
)
|
|
||||||
{
|
|
||||||
if ((Char >= L'0') && (Char <= L'9')) {
|
|
||||||
return (UINTN) (Char - L'0');
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((Char >= L'A') && (Char <= L'F')) {
|
|
||||||
return (UINTN) (Char - L'A' + 0xA);
|
|
||||||
}
|
|
||||||
|
|
||||||
ASSERT (FALSE);
|
|
||||||
return (UINTN) -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Returns the size of a device path in bytes.
|
Returns the size of a device path in bytes.
|
||||||
|
|
||||||
|
|
|
@ -384,3 +384,29 @@ BmPrintDp (
|
||||||
FreePool (Str);
|
FreePool (Str);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Convert a single character to number.
|
||||||
|
It assumes the input Char is in the scope of L'0' ~ L'9' and L'A' ~ L'F'
|
||||||
|
|
||||||
|
@param Char The input char which need to convert to int.
|
||||||
|
|
||||||
|
@return The converted 8-bit number or (UINTN) -1 if conversion failed.
|
||||||
|
**/
|
||||||
|
UINTN
|
||||||
|
BmCharToUint (
|
||||||
|
IN CHAR16 Char
|
||||||
|
)
|
||||||
|
{
|
||||||
|
if ((Char >= L'0') && (Char <= L'9')) {
|
||||||
|
return (UINTN) (Char - L'0');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((Char >= L'A') && (Char <= L'F')) {
|
||||||
|
return (UINTN) (Char - L'A' + 0xA);
|
||||||
|
}
|
||||||
|
|
||||||
|
ASSERT (FALSE);
|
||||||
|
return (UINTN) -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -434,4 +434,17 @@ BmPrintDp (
|
||||||
EFI_DEVICE_PATH_PROTOCOL *DevicePath
|
EFI_DEVICE_PATH_PROTOCOL *DevicePath
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Convert a single character to number.
|
||||||
|
It assumes the input Char is in the scope of L'0' ~ L'9' and L'A' ~ L'F'
|
||||||
|
|
||||||
|
@param Char The input char which need to convert to int.
|
||||||
|
|
||||||
|
@return The converted 8-bit number or (UINTN) -1 if conversion failed.
|
||||||
|
**/
|
||||||
|
UINTN
|
||||||
|
BmCharToUint (
|
||||||
|
IN CHAR16 Char
|
||||||
|
);
|
||||||
|
|
||||||
#endif // _INTERNAL_BM_H_
|
#endif // _INTERNAL_BM_H_
|
||||||
|
|
Loading…
Reference in New Issue