lib: strto: add simple_strtoll function
authorRoland Gaudig <roland.gaudig@weidmueller.com>
Fri, 23 Jul 2021 12:29:18 +0000 (12:29 +0000)
committerTom Rini <trini@konsulko.com>
Tue, 27 Jul 2021 18:50:47 +0000 (14:50 -0400)
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>
include/vsprintf.h
lib/strto.c

index 2290083..4016de6 100644 (file)
@@ -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
index c00bb58..f8b53d8 100644 (file)
@@ -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;