]> git.proxmox.com Git - mirror_edk2.git/blob - EmbeddedPkg/Library/FdtLib/fdt_strtoul.c
EmbeddedPkg/FdtLib: incorporate missing overlay support
[mirror_edk2.git] / EmbeddedPkg / Library / FdtLib / fdt_strtoul.c
1 #/* @file
2 # Copyright (c) 2018, Linaro Limited. All rights reserved.
3 #
4 # This program and the accompanying materials
5 # are licensed and made available under the terms and conditions of the BSD License
6 # which accompanies this distribution. The full text of the license may be found at
7 # http://opensource.org/licenses/bsd-license.php
8 #
9 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11 #
12 #*/
13
14 #include <Base.h>
15 #include <Library/BaseLib.h>
16 #include <Library/DebugLib.h>
17
18 unsigned long strtoul(const char *nptr, char **endptr, int base)
19 {
20 RETURN_STATUS Status;
21 UINTN ReturnValue;
22
23 ASSERT (base == 10 || base == 16);
24
25 if (base == 10) {
26 Status = AsciiStrDecimalToUintnS (nptr, endptr, &ReturnValue);
27 } else if (base == 16) {
28 Status = AsciiStrHexToUintnS (nptr, endptr, &ReturnValue);
29 } else {
30 Status = RETURN_INVALID_PARAMETER;
31 }
32
33 if (RETURN_ERROR (Status)) {
34 return MAX_UINTN;
35 }
36
37 return ReturnValue;
38 }