diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2008-05-12 19:21:00 (GMT) |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2008-05-23 19:50:38 (GMT) |
commit | 93dcc6ea096c51cc30ad0f6647ed05fead2439bf (patch) | |
tree | 2490074ca4ee97e8ef9d4cbaa10bca8a4cd1a597 | |
parent | bb065afb8ebd07a03155502dba29ebf0f6fe67e8 (diff) | |
download | linux-93dcc6ea096c51cc30ad0f6647ed05fead2439bf.tar.xz |
ftrace: simplify hexprint
simplify hex to ascii conversion.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r-- | kernel/trace/trace.c | 23 |
1 files changed, 5 insertions, 18 deletions
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 4723e01..627e399 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -248,19 +248,18 @@ trace_seq_putmem(struct trace_seq *s, void *mem, size_t len) } #define HEX_CHARS 17 +static const char hex2asc[] = "0123456789abcdef"; static int trace_seq_putmem_hex(struct trace_seq *s, void *mem, size_t len) { unsigned char hex[HEX_CHARS]; - unsigned char *data; + unsigned char *data = mem; unsigned char byte; int i, j; BUG_ON(len >= HEX_CHARS); - data = mem; - #ifdef __BIG_ENDIAN for (i = 0, j = 0; i < len; i++) { #else @@ -268,22 +267,10 @@ trace_seq_putmem_hex(struct trace_seq *s, void *mem, size_t len) #endif byte = data[i]; - hex[j] = byte & 0x0f; - if (hex[j] >= 10) - hex[j] += 'a' - 10; - else - hex[j] += '0'; - j++; - - hex[j] = byte >> 4; - if (hex[j] >= 10) - hex[j] += 'a' - 10; - else - hex[j] += '0'; - j++; + hex[j++] = hex2asc[byte & 0x0f]; + hex[j++] = hex2asc[byte >> 4]; } - hex[j] = ' '; - j++; + hex[j++] = ' '; return trace_seq_putmem(s, hex, j); } |