diff options
author | Roland Gaudig <roland.gaudig@weidmueller.com> | 2021-07-23 15:29:18 +0300 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2021-07-27 21:50:47 +0300 |
commit | 0b016428a7be4518e4e880536d8ecd8f980fcfd8 (patch) | |
tree | 86185f7fca1212c57c2e64a0b15632b5cc9ff2e9 | |
parent | 55efa84d0f523b0609d6947d232c000824315a68 (diff) | |
download | u-boot-0b016428a7be4518e4e880536d8ecd8f980fcfd8.tar.xz |
lib: strto: add simple_strtoll function
Add simple_strtoll function for converting a string containing digits
into a long long int value.
Signed-off-by: Roland Gaudig <roland.gaudig@weidmueller.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
-rw-r--r-- | include/vsprintf.h | 1 | ||||
-rw-r--r-- | lib/strto.c | 8 |
2 files changed, 9 insertions, 0 deletions
diff --git a/include/vsprintf.h b/include/vsprintf.h index 2290083eba..4016de6677 100644 --- a/include/vsprintf.h +++ b/include/vsprintf.h @@ -41,6 +41,7 @@ int strict_strtoul(const char *cp, unsigned int base, unsigned long *res); unsigned long long simple_strtoull(const char *cp, char **endp, unsigned int base); long simple_strtol(const char *cp, char **endp, unsigned int base); +long long simple_strtoll(const char *cp, char **endp, unsigned int base); /** * trailing_strtol() - extract a trailing integer from a string diff --git a/lib/strto.c b/lib/strto.c index c00bb5895d..f8b53d846b 100644 --- a/lib/strto.c +++ b/lib/strto.c @@ -143,6 +143,14 @@ unsigned long long simple_strtoull(const char *cp, char **endp, return result; } +long long simple_strtoll(const char *cp, char **endp, unsigned int base) +{ + if (*cp == '-') + return -simple_strtoull(cp + 1, endp, base); + + return simple_strtoull(cp, endp, base); +} + long trailing_strtoln(const char *str, const char *end) { const char *p; |