lib: Add a function to convert a string to a hex value

Add an xtoa() function, similar to itoa() but for hex instead.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Artem Lapkin <email2tema@gmail.com>
Tested-by: Artem Lapkin <email2tema@gmail.com>
This commit is contained in:
Simon Glass 2021-10-14 12:48:07 -06:00 committed by Tom Rini
parent 3bfb0f719a
commit 4a255ea3b6
3 changed files with 56 additions and 4 deletions

View file

@ -816,11 +816,12 @@ int vprintf(const char *fmt, va_list args)
}
#endif
static char local_toa[22];
char *simple_itoa(ulong i)
{
/* 21 digits plus null terminator, good for 64-bit or smaller ints */
static char local[22];
char *p = &local[21];
char *p = &local_toa[21];
*p-- = '\0';
do {
@ -830,6 +831,21 @@ char *simple_itoa(ulong i)
return p + 1;
}
char *simple_xtoa(ulong num)
{
/* 16 digits plus nul terminator, good for 64-bit or smaller ints */
char *p = &local_toa[17];
*--p = '\0';
do {
p -= 2;
hex_byte_pack(p, num & 0xff);
num >>= 8;
} while (num > 0);
return p;
}
/* We don't seem to have %'d in U-Boot */
void print_grouped_ull(unsigned long long int_val, int digits)
{