summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2021-07-24 18:03:29 +0300
committerTom Rini <trini@konsulko.com>2021-08-02 20:32:14 +0300
commit7e5f460ec457fe310156e399198a41eb0ce1e98c (patch)
tree7e89e4d15fcea2d2263c4b4af1be69905537ef42 /lib
parent031725f8cdf33e836d19f35d3fe82c5baa5a2976 (diff)
downloadu-boot-7e5f460ec457fe310156e399198a41eb0ce1e98c.tar.xz
global: Convert simple_strtoul() with hex to hextoul()
It is a pain to have to specify the value 16 in each call. Add a new hextoul() function and update the code to use it. Add a proper comment to simple_strtoul() while we are here. Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'lib')
-rw-r--r--lib/net_utils.c2
-rw-r--r--lib/strto.c12
-rw-r--r--lib/uuid.c14
-rw-r--r--lib/vsprintf.c2
4 files changed, 17 insertions, 13 deletions
diff --git a/lib/net_utils.c b/lib/net_utils.c
index 0a8a557319..f596c8f280 100644
--- a/lib/net_utils.c
+++ b/lib/net_utils.c
@@ -52,7 +52,7 @@ void string_to_enetaddr(const char *addr, uint8_t *enetaddr)
return;
for (i = 0; i < 6; ++i) {
- enetaddr[i] = addr ? simple_strtoul(addr, &end, 16) : 0;
+ enetaddr[i] = addr ? hextoul(addr, &end) : 0;
if (addr)
addr = (*end) ? end + 1 : end;
}
diff --git a/lib/strto.c b/lib/strto.c
index f8b53d846b..57d62163da 100644
--- a/lib/strto.c
+++ b/lib/strto.c
@@ -30,11 +30,10 @@ static const char *_parse_integer_fixup_radix(const char *s, unsigned int *base)
return s;
}
-unsigned long simple_strtoul(const char *cp, char **endp,
- unsigned int base)
+ulong simple_strtoul(const char *cp, char **endp, uint base)
{
- unsigned long result = 0;
- unsigned long value;
+ ulong result = 0;
+ ulong value;
cp = _parse_integer_fixup_radix(cp, &base);
@@ -50,6 +49,11 @@ unsigned long simple_strtoul(const char *cp, char **endp,
return result;
}
+ulong hextoul(const char *cp, char **endp)
+{
+ return simple_strtoul(cp, endp, 16);
+}
+
int strict_strtoul(const char *cp, unsigned int base, unsigned long *res)
{
char *tail;
diff --git a/lib/uuid.c b/lib/uuid.c
index 5bc68674d0..67267c66a3 100644
--- a/lib/uuid.c
+++ b/lib/uuid.c
@@ -164,26 +164,26 @@ int uuid_str_to_bin(const char *uuid_str, unsigned char *uuid_bin,
}
if (str_format == UUID_STR_FORMAT_STD) {
- tmp32 = cpu_to_be32(simple_strtoul(uuid_str, NULL, 16));
+ tmp32 = cpu_to_be32(hextoul(uuid_str, NULL));
memcpy(uuid_bin, &tmp32, 4);
- tmp16 = cpu_to_be16(simple_strtoul(uuid_str + 9, NULL, 16));
+ tmp16 = cpu_to_be16(hextoul(uuid_str + 9, NULL));
memcpy(uuid_bin + 4, &tmp16, 2);
- tmp16 = cpu_to_be16(simple_strtoul(uuid_str + 14, NULL, 16));
+ tmp16 = cpu_to_be16(hextoul(uuid_str + 14, NULL));
memcpy(uuid_bin + 6, &tmp16, 2);
} else {
- tmp32 = cpu_to_le32(simple_strtoul(uuid_str, NULL, 16));
+ tmp32 = cpu_to_le32(hextoul(uuid_str, NULL));
memcpy(uuid_bin, &tmp32, 4);
- tmp16 = cpu_to_le16(simple_strtoul(uuid_str + 9, NULL, 16));
+ tmp16 = cpu_to_le16(hextoul(uuid_str + 9, NULL));
memcpy(uuid_bin + 4, &tmp16, 2);
- tmp16 = cpu_to_le16(simple_strtoul(uuid_str + 14, NULL, 16));
+ tmp16 = cpu_to_le16(hextoul(uuid_str + 14, NULL));
memcpy(uuid_bin + 6, &tmp16, 2);
}
- tmp16 = cpu_to_be16(simple_strtoul(uuid_str + 19, NULL, 16));
+ tmp16 = cpu_to_be16(hextoul(uuid_str + 19, NULL));
memcpy(uuid_bin + 8, &tmp16, 2);
tmp64 = cpu_to_be64(simple_strtoull(uuid_str + 24, NULL, 16));
diff --git a/lib/vsprintf.c b/lib/vsprintf.c
index c14176dd39..d7ee35b477 100644
--- a/lib/vsprintf.c
+++ b/lib/vsprintf.c
@@ -858,7 +858,7 @@ bool str2long(const char *p, ulong *num)
{
char *endptr;
- *num = simple_strtoul(p, &endptr, 16);
+ *num = hextoul(p, &endptr);
return *p != '\0' && *endptr == '\0';
}