diff options
author | Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> | 2012-12-05 16:48:27 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-01-17 15:19:09 -0500 |
commit | 7a555613eb77c69eb6e48b61bc5f72dd42fa1780 (patch) | |
tree | fd2c5ef59a77ba532a5957923f9919fa170027f9 /include/linux/dynamic_debug.h | |
parent | f657fd21e16e3ab7432c03008e19069c2ef8e150 (diff) |
dynamic_debug: dynamic hex dump
Introduce print_hex_dump_debug() that can be dynamically controlled, similar to
pr_debug.
Also, make print_hex_dump_bytes() dynamically controlled
Implement only 'p' flag (_DPRINTK_FLAGS_PRINT) to keep it simple since hex dump prints
multiple lines and long prefix would impact readability.
To provide line/file etc. information, use pr_debug or similar
before/after print_hex_dump_debug()
Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>
Signed-off-by: Jason Baron <jbaron@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include/linux/dynamic_debug.h')
-rw-r--r-- | include/linux/dynamic_debug.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/include/linux/dynamic_debug.h b/include/linux/dynamic_debug.h index 6dd4787a798a..2fe93b26b42f 100644 --- a/include/linux/dynamic_debug.h +++ b/include/linux/dynamic_debug.h | |||
@@ -95,6 +95,17 @@ do { \ | |||
95 | ##__VA_ARGS__); \ | 95 | ##__VA_ARGS__); \ |
96 | } while (0) | 96 | } while (0) |
97 | 97 | ||
98 | #define dynamic_hex_dump(prefix_str, prefix_type, rowsize, \ | ||
99 | groupsize, buf, len, ascii) \ | ||
100 | do { \ | ||
101 | DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, \ | ||
102 | __builtin_constant_p(prefix_str) ? prefix_str : "hexdump");\ | ||
103 | if (unlikely(descriptor.flags & _DPRINTK_FLAGS_PRINT)) \ | ||
104 | print_hex_dump(KERN_DEBUG, prefix_str, \ | ||
105 | prefix_type, rowsize, groupsize, \ | ||
106 | buf, len, ascii); \ | ||
107 | } while (0) | ||
108 | |||
98 | #else | 109 | #else |
99 | 110 | ||
100 | #include <linux/string.h> | 111 | #include <linux/string.h> |