diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2012-07-02 10:58:32 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2012-07-02 10:58:32 +0200 |
commit | a3251562dbdc8dda29da84ac1ab271e927dc8ae0 (patch) | |
tree | 8335db3837ca1a04dc81730c0a40e4edbf467179 /lib | |
parent | 9d0b51ea7e5b3fece57f91e17349b79a5b4b37e7 (diff) | |
parent | cfcfc66d5486c2061316ebcdf32ef2f1ecbda433 (diff) | |
download | barebox-a3251562dbdc8dda29da84ac1ab271e927dc8ae0.tar.gz barebox-a3251562dbdc8dda29da84ac1ab271e927dc8ae0.tar.xz |
Merge branch 'for-next/64bit'
Diffstat (limited to 'lib')
-rw-r--r-- | lib/misc.c | 24 | ||||
-rw-r--r-- | lib/vsprintf.c | 1 |
2 files changed, 16 insertions, 9 deletions
diff --git a/lib/misc.c b/lib/misc.c index 549b9601c9..8a95396eda 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); /* @@ -69,15 +75,15 @@ EXPORT_SYMBOL(strtoul_suffix); * 0x1000 -> start = 0x1000, size = ~0 * 1M+1k -> start = 0x100000, size = 0x400 */ -int parse_area_spec(const char *str, ulong *start, ulong *size) +int parse_area_spec(const char *str, loff_t *start, loff_t *size) { char *endp; - ulong end; + loff_t end; if (!isdigit(*str)) return -1; - *start = strtoul_suffix(str, &endp, 0); + *start = strtoull_suffix(str, &endp, 0); str = endp; @@ -89,7 +95,7 @@ int parse_area_spec(const char *str, ulong *start, ulong *size) if (*str == '-') { /* beginning and end given */ - end = strtoul_suffix(str + 1, NULL, 0); + end = strtoull_suffix(str + 1, NULL, 0); if (end < *start) { printf("end < start\n"); return -1; @@ -100,7 +106,7 @@ int parse_area_spec(const char *str, ulong *start, ulong *size) if (*str == '+') { /* beginning and size given */ - *size = strtoul_suffix(str + 1, NULL, 0); + *size = strtoull_suffix(str + 1, NULL, 0); return 0; } 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') |