mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 20:51:44 +00:00
[POWERPC] bootwrapper: Add strtoull()
This will be needed by PlanetCore firmware support. Signed-off-by: Scott Wood <scottwood@freescale.com> Acked-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
parent
4674f2f339
commit
9de782770b
@ -45,7 +45,7 @@ src-wlib := string.S crt0.S stdio.c main.c flatdevtree.c flatdevtree_misc.c \
|
||||
ns16550.c serial.c simple_alloc.c div64.S util.S \
|
||||
gunzip_util.c elf_util.c $(zlib) devtree.c oflib.c ofconsole.c \
|
||||
4xx.c ebony.c mv64x60.c mpsc.c mv64x60_i2c.c cuboot.c bamboo.c \
|
||||
cpm-serial.c
|
||||
cpm-serial.c stdlib.c
|
||||
src-plat := of.c cuboot-83xx.c cuboot-85xx.c holly.c \
|
||||
cuboot-ebony.c treeboot-ebony.c prpmc2800.c \
|
||||
ps3-head.S ps3-hvcall.S ps3.c treeboot-bamboo.c cuboot-8xx.c \
|
||||
|
45
arch/powerpc/boot/stdlib.c
Normal file
45
arch/powerpc/boot/stdlib.c
Normal file
@ -0,0 +1,45 @@
|
||||
/*
|
||||
* stdlib functions
|
||||
*
|
||||
* Author: Scott Wood <scottwood@freescale.com>
|
||||
*
|
||||
* Copyright (c) 2007 Freescale Semiconductor, Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 as published
|
||||
* by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#include "stdlib.h"
|
||||
|
||||
/* Not currently supported: leading whitespace, sign, 0x prefix, zero base */
|
||||
unsigned long long int strtoull(const char *ptr, char **end, int base)
|
||||
{
|
||||
unsigned long long ret = 0;
|
||||
|
||||
if (base > 36)
|
||||
goto out;
|
||||
|
||||
while (*ptr) {
|
||||
int digit;
|
||||
|
||||
if (*ptr >= '0' && *ptr <= '9' && *ptr < '0' + base)
|
||||
digit = *ptr - '0';
|
||||
else if (*ptr >= 'A' && *ptr < 'A' + base - 10)
|
||||
digit = *ptr - 'A' + 10;
|
||||
else if (*ptr >= 'a' && *ptr < 'a' + base - 10)
|
||||
digit = *ptr - 'a' + 10;
|
||||
else
|
||||
break;
|
||||
|
||||
ret *= base;
|
||||
ret += digit;
|
||||
ptr++;
|
||||
}
|
||||
|
||||
out:
|
||||
if (end)
|
||||
*end = (char *)ptr;
|
||||
|
||||
return ret;
|
||||
}
|
6
arch/powerpc/boot/stdlib.h
Normal file
6
arch/powerpc/boot/stdlib.h
Normal file
@ -0,0 +1,6 @@
|
||||
#ifndef _PPC_BOOT_STDLIB_H_
|
||||
#define _PPC_BOOT_STDLIB_H_
|
||||
|
||||
unsigned long long int strtoull(const char *ptr, char **end, int base);
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue
Block a user