common fw: Add hexval() utility function
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Change-Id: I724c14d1dee9e268f666030053fbf62ce5e1ba71
diff --git a/firmware/ice40-riscv/common/utils.c b/firmware/ice40-riscv/common/utils.c
index 1ac111b..7c7d3d0 100644
--- a/firmware/ice40-riscv/common/utils.c
+++ b/firmware/ice40-riscv/common/utils.c
@@ -36,6 +36,19 @@
return buf;
}
+uint8_t
+hexval(char c)
+{
+ if (c >= '0' && c <= '9')
+ return c - '0';
+ else if (c >= 'a' && c <= 'f')
+ return 10 + (c - 'a');
+ else if (c >= 'A' && c <= 'F')
+ return 10 + (c - 'A');
+ else
+ return 0;
+}
+
void
_panic(const char *file, int lineno, const char *fmt, ...)
diff --git a/firmware/ice40-riscv/common/utils.h b/firmware/ice40-riscv/common/utils.h
index 03359ae..37cc88e 100644
--- a/firmware/ice40-riscv/common/utils.h
+++ b/firmware/ice40-riscv/common/utils.h
@@ -10,6 +10,7 @@
#include <stdbool.h>
char *hexstr(void *d, int n, bool space);
+uint8_t hexval(char c);
void _panic(const char *file, int lineno, const char *fmt, ...);
#define panic(fmt, ...) _panic(__FILE__, __LINE__, fmt, ##__VA_ARGS__)