[PATCH 07/21] Add hex_byte_pack and hex_byte_pack_upper from kernel

Sascha Hauer s.hauer at pengutronix.de
Tue Jul 8 01:50:03 PDT 2014


Utility functions needed by the UUID/GUID printf support.

Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
---
 include/linux/kernel.h | 23 ++++++++++++++++++++++-
 lib/misc.c             |  2 ++
 2 files changed, 24 insertions(+), 1 deletion(-)

diff --git a/include/linux/kernel.h b/include/linux/kernel.h
index 4322f01..c5ba99f 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
@@ -117,5 +117,26 @@
 }							\
 )
 
-#endif /* _LINUX_KERNEL_H */
+extern const char hex_asc[];
+#define hex_asc_lo(x)	hex_asc[((x) & 0x0f)]
+#define hex_asc_hi(x)	hex_asc[((x) & 0xf0) >> 4]
+
+static inline char *hex_byte_pack(char *buf, u8 byte)
+{
+	*buf++ = hex_asc_hi(byte);
+	*buf++ = hex_asc_lo(byte);
+	return buf;
+}
+
+extern const char hex_asc_upper[];
+#define hex_asc_upper_lo(x)	hex_asc_upper[((x) & 0x0f)]
+#define hex_asc_upper_hi(x)	hex_asc_upper[((x) & 0xf0) >> 4]
 
+static inline char *hex_byte_pack_upper(char *buf, u8 byte)
+{
+	*buf++ = hex_asc_upper_hi(byte);
+	*buf++ = hex_asc_upper_lo(byte);
+	return buf;
+}
+
+#endif /* _LINUX_KERNEL_H */
diff --git a/lib/misc.c b/lib/misc.c
index 0f3eb9a..9f2067c 100644
--- a/lib/misc.c
+++ b/lib/misc.c
@@ -113,3 +113,5 @@ int parse_area_spec(const char *str, loff_t *start, loff_t *size)
 	return -1;
 }
 EXPORT_SYMBOL(parse_area_spec);
+
+const char hex_asc[] = "0123456789abcdef";
-- 
2.0.0




More information about the barebox mailing list