lkml.org 
[lkml]   [2008]   [Apr]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH] ftrace: simplify hex print
    simplify hex to ascii conversion with a lookup table.

    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

    ---
    kernel/trace/trace.c | 23 +++++------------------
    1 file changed, 5 insertions(+), 18 deletions(-)

    Index: linux/kernel/trace/trace.c
    ===================================================================
    --- linux.orig/kernel/trace/trace.c
    +++ linux/kernel/trace/trace.c
    @@ -248,19 +248,18 @@ trace_seq_putmem(struct trace_seq *s, vo
    }

    #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
    #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);
    }

    \
     
     \ /
      Last update: 2008-04-18 14:37    [W:0.023 / U:1.148 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site