[PATCH v2 1/4] lib: provide function hextoull()
Ilias Apalodimas
ilias.apalodimas at linaro.org
Thu Nov 7 10:45:54 CET 2024
On Sun, 3 Nov 2024 at 22:42, Heinrich Schuchardt
<heinrich.schuchardt at canonical.com> wrote:
>
> 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 at canonical.com>
> ---
> v2:
> no change
> ---
> include/vsprintf.h | 13 +++++++++++++
> lib/strto.c | 5 +++++
> 2 files changed, 18 insertions(+)
>
> diff --git a/include/vsprintf.h b/include/vsprintf.h
> index fe951471426..9da6ce7cc4d 100644
> --- a/include/vsprintf.h
> +++ b/include/vsprintf.h
> @@ -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
> *
> diff --git a/lib/strto.c b/lib/strto.c
> index f83ac67c666..206d1e91847 100644
> --- a/lib/strto.c
> +++ b/lib/strto.c
> @@ -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);
> --
> 2.45.2
>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas at linaro.org>
More information about the U-Boot
mailing list