]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
lib: provide function hextoull()
authorHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Sun, 3 Nov 2024 22:42:20 +0000 (23:42 +0100)
committerTom Rini <trini@konsulko.com>
Wed, 13 Nov 2024 14:14:23 +0000 (08:14 -0600)
We often convert hexadecimal strings to hextoull(). Provide a wrapper
function to simple_strtoull() that does not require specifying the radix.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
include/vsprintf.h
lib/strto.c

index fe951471426d77cf19a86b370b67568bdae7d2b5..9da6ce7cc4ded4114e83d1eae9665aa126041af9 100644 (file)
@@ -44,6 +44,19 @@ ulong simple_strtoul(const char *cp, char **endp, unsigned int base);
  */
 unsigned long hextoul(const char *cp, char **endp);
 
+/**
+ * hex_strtoull - convert a string in hex to an unsigned long long
+ *
+ * @cp: The string to be converted
+ * @endp: Updated to point to the first character not converted
+ * Return: value decoded from string (0 if invalid)
+ *
+ * Converts a hex string to an unsigned long long. If there are invalid
+ * characters at the end these are ignored. In the worst case, if all characters
+ * are invalid, 0 is returned
+ */
+unsigned long long hextoull(const char *cp, char **endp);
+
 /**
  * dec_strtoul - convert a string in decimal to an unsigned long
  *
index f83ac67c6662b75f58fdada6c4321473543022af..206d1e918479354a8d62065d91ea321fccb041b2 100644 (file)
@@ -78,6 +78,11 @@ ulong hextoul(const char *cp, char **endp)
        return simple_strtoul(cp, endp, 16);
 }
 
+unsigned long long hextoull(const char *cp, char **endp)
+{
+       return simple_strtoull(cp, endp, 16);
+}
+
 ulong dectoul(const char *cp, char **endp)
 {
        return simple_strtoul(cp, endp, 10);