summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndre Naujoks <nautsch2@gmail.com>2013-09-13 19:37:12 +0200
committerDavid S. Miller <davem@davemloft.net>2013-09-20 15:38:26 -0400
commitc26d436cbf7a9549ec1073480a2e3f0d3f64e02d (patch)
tree6ba037fbde3d391864208ce94e2b61dc536bab10
parentcc9fa74e2a195f7bab27fbbc4896d2fe3ec32150 (diff)
downloadlwn-c26d436cbf7a9549ec1073480a2e3f0d3f64e02d.tar.gz
lwn-c26d436cbf7a9549ec1073480a2e3f0d3f64e02d.zip
lib: introduce upper case hex ascii helpers
To be able to use the hex ascii functions in case sensitive environments the array hex_asc_upper[] and the needed functions for hex_byte_pack_upper() are introduced. Signed-off-by: Andre Naujoks <nautsch2@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--include/linux/kernel.h11
-rw-r--r--lib/hexdump.c2
2 files changed, 13 insertions, 0 deletions
diff --git a/include/linux/kernel.h b/include/linux/kernel.h
index 482ad2d84a32..672ddc4de4af 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
@@ -439,6 +439,17 @@ static inline char *hex_byte_pack(char *buf, u8 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;
+}
+
static inline char * __deprecated pack_hex_byte(char *buf, u8 byte)
{
return hex_byte_pack(buf, byte);
diff --git a/lib/hexdump.c b/lib/hexdump.c
index 3f0494c9d57a..8499c810909a 100644
--- a/lib/hexdump.c
+++ b/lib/hexdump.c
@@ -14,6 +14,8 @@
const char hex_asc[] = "0123456789abcdef";
EXPORT_SYMBOL(hex_asc);
+const char hex_asc_upper[] = "0123456789ABCDEF";
+EXPORT_SYMBOL(hex_asc_upper);
/**
* hex_to_bin - convert a hex digit to its real value