2018-02-15 11:30:33 +01:00
|
|
|
#/* @file
|
|
|
|
# Copyright (c) 2018, Linaro Limited. All rights reserved.
|
|
|
|
#
|
2019-04-04 01:03:38 +02:00
|
|
|
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
2018-02-15 11:30:33 +01:00
|
|
|
#
|
|
|
|
#*/
|
|
|
|
|
|
|
|
#include <Base.h>
|
|
|
|
#include <Library/BaseLib.h>
|
|
|
|
#include <Library/DebugLib.h>
|
|
|
|
|
|
|
|
unsigned long strtoul(const char *nptr, char **endptr, int base)
|
|
|
|
{
|
|
|
|
RETURN_STATUS Status;
|
|
|
|
UINTN ReturnValue;
|
|
|
|
|
|
|
|
ASSERT (base == 10 || base == 16);
|
|
|
|
|
|
|
|
if (base == 10) {
|
|
|
|
Status = AsciiStrDecimalToUintnS (nptr, endptr, &ReturnValue);
|
|
|
|
} else if (base == 16) {
|
|
|
|
Status = AsciiStrHexToUintnS (nptr, endptr, &ReturnValue);
|
|
|
|
} else {
|
|
|
|
Status = RETURN_INVALID_PARAMETER;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (RETURN_ERROR (Status)) {
|
|
|
|
return MAX_UINTN;
|
|
|
|
}
|
|
|
|
|
|
|
|
return ReturnValue;
|
|
|
|
}
|