summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2014-12-08 10:14:29 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2015-01-05 11:30:58 +0100
commit8a7335f8b5117df144d26dddbd465a22f2273df8 (patch)
treef05cde2baacad5786e8484fbd388303cab06194d
parentce5299b0bf8c8f31a701fe5f8de1fb02111ef0cd (diff)
downloadbarebox-8a7335f8b5117df144d26dddbd465a22f2273df8.tar.gz
barebox-8a7335f8b5117df144d26dddbd465a22f2273df8.tar.xz
printf: move simple_strto*() functions to separate file
These are not needed in the PBL, so move them to a separate file. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r--lib/Makefile1
-rw-r--r--lib/strtox.c68
-rw-r--r--lib/vsprintf.c66
3 files changed, 69 insertions, 66 deletions
diff --git a/lib/Makefile b/lib/Makefile
index a6c7dfbbbe..604d934765 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -4,6 +4,7 @@ obj-y += ctype.o
obj-y += rbtree.o
obj-y += display_options.o
obj-y += string.o
+obj-y += strtox.o
obj-y += vsprintf.o
obj-y += div64.o
obj-y += misc.o
diff --git a/lib/strtox.c b/lib/strtox.c
new file mode 100644
index 0000000000..882865b45d
--- /dev/null
+++ b/lib/strtox.c
@@ -0,0 +1,68 @@
+#include <common.h>
+#include <linux/ctype.h>
+
+unsigned long simple_strtoul(const char *cp,char **endp,unsigned int base)
+{
+ unsigned long result = 0,value;
+
+ if (*cp == '0') {
+ cp++;
+ if ((*cp == 'x') && isxdigit(cp[1])) {
+ base = 16;
+ cp++;
+ }
+ if (!base) {
+ base = 8;
+ }
+ }
+ if (!base) {
+ base = 10;
+ }
+ while (isxdigit(*cp) && (value = isdigit(*cp) ? *cp-'0' : (islower(*cp)
+ ? toupper(*cp) : *cp)-'A'+10) < base) {
+ result = result*base + value;
+ cp++;
+ }
+ if (endp)
+ *endp = (char *)cp;
+ return result;
+}
+EXPORT_SYMBOL(simple_strtoul);
+
+long simple_strtol(const char *cp,char **endp,unsigned int base)
+{
+ if(*cp=='-')
+ return -simple_strtoul(cp+1,endp,base);
+ return simple_strtoul(cp,endp,base);
+}
+EXPORT_SYMBOL(simple_strtol);
+
+unsigned long long simple_strtoull (const char *cp, char **endp, unsigned int base)
+{
+ unsigned long long result = 0, value;
+
+ if (*cp == '0') {
+ cp++;
+ if ((*cp == 'x') && isxdigit (cp[1])) {
+ base = 16;
+ cp++;
+ }
+ if (!base) {
+ base = 8;
+ }
+ }
+ if (!base) {
+ base = 10;
+ }
+ while (isxdigit (*cp) && (value = isdigit (*cp)
+ ? *cp - '0'
+ : (islower (*cp) ? toupper (*cp) : *cp) - 'A' + 10) < base) {
+ result = result * base + value;
+ cp++;
+ }
+ if (endp)
+ *endp = (char *) cp;
+ return result;
+}
+EXPORT_SYMBOL(simple_strtoull);
+
diff --git a/lib/vsprintf.c b/lib/vsprintf.c
index a1f95fed26..b474202fc1 100644
--- a/lib/vsprintf.c
+++ b/lib/vsprintf.c
@@ -18,72 +18,6 @@
#include <kallsyms.h>
#include <common.h>
-#include <led.h>
-
-unsigned long simple_strtoul(const char *cp,char **endp,unsigned int base)
-{
- unsigned long result = 0,value;
-
- if (*cp == '0') {
- cp++;
- if ((*cp == 'x') && isxdigit(cp[1])) {
- base = 16;
- cp++;
- }
- if (!base) {
- base = 8;
- }
- }
- if (!base) {
- base = 10;
- }
- while (isxdigit(*cp) && (value = isdigit(*cp) ? *cp-'0' : (islower(*cp)
- ? toupper(*cp) : *cp)-'A'+10) < base) {
- result = result*base + value;
- cp++;
- }
- if (endp)
- *endp = (char *)cp;
- return result;
-}
-EXPORT_SYMBOL(simple_strtoul);
-
-long simple_strtol(const char *cp,char **endp,unsigned int base)
-{
- if(*cp=='-')
- return -simple_strtoul(cp+1,endp,base);
- return simple_strtoul(cp,endp,base);
-}
-EXPORT_SYMBOL(simple_strtol);
-
-unsigned long long simple_strtoull (const char *cp, char **endp, unsigned int base)
-{
- unsigned long long result = 0, value;
-
- if (*cp == '0') {
- cp++;
- if ((*cp == 'x') && isxdigit (cp[1])) {
- base = 16;
- cp++;
- }
- if (!base) {
- base = 8;
- }
- }
- if (!base) {
- base = 10;
- }
- while (isxdigit (*cp) && (value = isdigit (*cp)
- ? *cp - '0'
- : (islower (*cp) ? toupper (*cp) : *cp) - 'A' + 10) < base) {
- result = result * base + value;
- cp++;
- }
- if (endp)
- *endp = (char *) cp;
- return result;
-}
-EXPORT_SYMBOL(simple_strtoull);
/* we use this so that we can do without the ctype library */
#define is_digit(c) ((c) >= '0' && (c) <= '9')