Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[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>

authored by

Scott Wood and committed by
Paul Mackerras
9de78277 4674f2f3

+52 -1
+1 -1
arch/powerpc/boot/Makefile
··· 45 45 ns16550.c serial.c simple_alloc.c div64.S util.S \ 46 46 gunzip_util.c elf_util.c $(zlib) devtree.c oflib.c ofconsole.c \ 47 47 4xx.c ebony.c mv64x60.c mpsc.c mv64x60_i2c.c cuboot.c bamboo.c \ 48 - cpm-serial.c 48 + cpm-serial.c stdlib.c 49 49 src-plat := of.c cuboot-83xx.c cuboot-85xx.c holly.c \ 50 50 cuboot-ebony.c treeboot-ebony.c prpmc2800.c \ 51 51 ps3-head.S ps3-hvcall.S ps3.c treeboot-bamboo.c cuboot-8xx.c \
+45
arch/powerpc/boot/stdlib.c
··· 1 + /* 2 + * stdlib functions 3 + * 4 + * Author: Scott Wood <scottwood@freescale.com> 5 + * 6 + * Copyright (c) 2007 Freescale Semiconductor, Inc. 7 + * 8 + * This program is free software; you can redistribute it and/or modify it 9 + * under the terms of the GNU General Public License version 2 as published 10 + * by the Free Software Foundation. 11 + */ 12 + 13 + #include "stdlib.h" 14 + 15 + /* Not currently supported: leading whitespace, sign, 0x prefix, zero base */ 16 + unsigned long long int strtoull(const char *ptr, char **end, int base) 17 + { 18 + unsigned long long ret = 0; 19 + 20 + if (base > 36) 21 + goto out; 22 + 23 + while (*ptr) { 24 + int digit; 25 + 26 + if (*ptr >= '0' && *ptr <= '9' && *ptr < '0' + base) 27 + digit = *ptr - '0'; 28 + else if (*ptr >= 'A' && *ptr < 'A' + base - 10) 29 + digit = *ptr - 'A' + 10; 30 + else if (*ptr >= 'a' && *ptr < 'a' + base - 10) 31 + digit = *ptr - 'a' + 10; 32 + else 33 + break; 34 + 35 + ret *= base; 36 + ret += digit; 37 + ptr++; 38 + } 39 + 40 + out: 41 + if (end) 42 + *end = (char *)ptr; 43 + 44 + return ret; 45 + }
+6
arch/powerpc/boot/stdlib.h
··· 1 + #ifndef _PPC_BOOT_STDLIB_H_ 2 + #define _PPC_BOOT_STDLIB_H_ 3 + 4 + unsigned long long int strtoull(const char *ptr, char **end, int base); 5 + 6 + #endif