summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/common.h1
-rw-r--r--lib/misc.c14
-rw-r--r--lib/vsprintf.c1
3 files changed, 12 insertions, 4 deletions
diff --git a/include/common.h b/include/common.h
index 9287a7dd2b..41b99f22c9 100644
--- a/include/common.h
+++ b/include/common.h
@@ -160,6 +160,7 @@ int parse_area_spec(const char *str, ulong *start, ulong *size);
/* Just like simple_strtoul(), but this one honors a K/M/G suffix */
unsigned long strtoul_suffix(const char *str, char **endp, int base);
+unsigned long long strtoull_suffix(const char *str, char **endp, int base);
void start_barebox(void);
void shutdown_barebox(void);
diff --git a/lib/misc.c b/lib/misc.c
index 549b9601c9..cdf01857a1 100644
--- a/lib/misc.c
+++ b/lib/misc.c
@@ -27,15 +27,15 @@
#include <linux/ctype.h>
/*
- * Like simple_strtoul() but handles an optional G, M, K or k
+ * Like simple_strtoull() but handles an optional G, M, K or k
* suffix for Gigabyte, Megabyte or Kilobyte
*/
-unsigned long strtoul_suffix(const char *str, char **endp, int base)
+unsigned long long strtoull_suffix(const char *str, char **endp, int base)
{
- unsigned long val;
+ unsigned long long val;
char *end;
- val = simple_strtoul(str, &end, base);
+ val = simple_strtoull(str, &end, base);
switch (*end) {
case 'G':
@@ -55,6 +55,12 @@ unsigned long strtoul_suffix(const char *str, char **endp, int base)
return val;
}
+EXPORT_SYMBOL(strtoull_suffix);
+
+unsigned long strtoul_suffix(const char *str, char **endp, int base)
+{
+ return strtoull_suffix(str, endp, base);
+}
EXPORT_SYMBOL(strtoul_suffix);
/*
diff --git a/lib/vsprintf.c b/lib/vsprintf.c
index 9763515130..17c197334a 100644
--- a/lib/vsprintf.c
+++ b/lib/vsprintf.c
@@ -83,6 +83,7 @@ unsigned long long simple_strtoull (const char *cp, char **endp, unsigned int ba
*endp = (char *) cp;
return result;
}
+EXPORT_SYMBOL(simple_strtoll);
/* we use this so that we can do without the ctype library */
#define is_digit(c) ((c) >= '0' && (c) <= '9')