[PATCH 1/3] include: debug_ll: define puthexc_ll
Ahmad Fatoum
a.fatoum at pengutronix.de
Wed Oct 19 05:38:15 PDT 2022
puthex_ll prints a single zero-padded unsigned long, which for a single
byte is not very readable, especially on 64-bit systems. Define
puthexc_ll() as well, which just accepts a byte and formats its nibbles
as hexadecimal characters.
Signed-off-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
---
include/debug_ll.h | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/include/debug_ll.h b/include/debug_ll.h
index 735033b314cc..856a157bf52c 100644
--- a/include/debug_ll.h
+++ b/include/debug_ll.h
@@ -33,17 +33,25 @@ static inline void putc_ll(char value)
PUTC_LL(value);
}
-static inline void puthex_ll(unsigned long value)
+static inline void puthexc_ll(unsigned char value)
{
int i; unsigned char ch;
- for (i = sizeof(unsigned long) * 2; i--; ) {
+ for (i = 2; i--; ) {
ch = ((value >> (i * 4)) & 0xf);
ch += (ch >= 10) ? 'a' - 10 : '0';
putc_ll(ch);
}
}
+static inline void puthex_ll(unsigned long value)
+{
+ int i;
+
+ for (i = sizeof(unsigned long); i--; )
+ puthexc_ll(value >> (i * 8));
+}
+
/*
* Be careful with puts_ll, it only works if the binary is running at the
* link address which often is not the case during early startup. If in doubt
@@ -66,6 +74,10 @@ static inline void putc_ll(char value)
{
}
+static inline void puthexc_ll(unsigned char value)
+{
+}
+
static inline void puthex_ll(unsigned long value)
{
}
--
2.30.2
More information about the barebox
mailing list