[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