trace: add variant without spacing in trace_print_hex_seq
For upcoming tracepoint support for BPF, we want to dump the program's tag. Format should be similar to __print_hex(), but without spacing. Add a __print_hex_str() variant for exactly that purpose that reuses trace_print_hex_seq(). Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Cc: Steven Rostedt <rostedt@goodmis.org> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
60b1af3300
Коммит
2acae0d5b0
|
@ -33,7 +33,8 @@ const char *trace_print_bitmask_seq(struct trace_seq *p, void *bitmask_ptr,
|
|||
unsigned int bitmask_size);
|
||||
|
||||
const char *trace_print_hex_seq(struct trace_seq *p,
|
||||
const unsigned char *buf, int len);
|
||||
const unsigned char *buf, int len,
|
||||
bool spacing);
|
||||
|
||||
const char *trace_print_array_seq(struct trace_seq *p,
|
||||
const void *buf, int count,
|
||||
|
|
|
@ -297,7 +297,12 @@ TRACE_MAKE_SYSTEM_STR();
|
|||
#endif
|
||||
|
||||
#undef __print_hex
|
||||
#define __print_hex(buf, buf_len) trace_print_hex_seq(p, buf, buf_len)
|
||||
#define __print_hex(buf, buf_len) \
|
||||
trace_print_hex_seq(p, buf, buf_len, true)
|
||||
|
||||
#undef __print_hex_str
|
||||
#define __print_hex_str(buf, buf_len) \
|
||||
trace_print_hex_seq(p, buf, buf_len, false)
|
||||
|
||||
#undef __print_array
|
||||
#define __print_array(array, count, el_size) \
|
||||
|
@ -711,6 +716,7 @@ static inline void ftrace_test_probe_##call(void) \
|
|||
#undef __print_flags
|
||||
#undef __print_symbolic
|
||||
#undef __print_hex
|
||||
#undef __print_hex_str
|
||||
#undef __get_dynamic_array
|
||||
#undef __get_dynamic_array_len
|
||||
#undef __get_str
|
||||
|
|
|
@ -163,14 +163,15 @@ trace_print_bitmask_seq(struct trace_seq *p, void *bitmask_ptr,
|
|||
EXPORT_SYMBOL_GPL(trace_print_bitmask_seq);
|
||||
|
||||
const char *
|
||||
trace_print_hex_seq(struct trace_seq *p, const unsigned char *buf, int buf_len)
|
||||
trace_print_hex_seq(struct trace_seq *p, const unsigned char *buf, int buf_len,
|
||||
bool spacing)
|
||||
{
|
||||
int i;
|
||||
const char *ret = trace_seq_buffer_ptr(p);
|
||||
|
||||
for (i = 0; i < buf_len; i++)
|
||||
trace_seq_printf(p, "%s%2.2x", i == 0 ? "" : " ", buf[i]);
|
||||
|
||||
trace_seq_printf(p, "%s%2.2x", !spacing || i == 0 ? "" : " ",
|
||||
buf[i]);
|
||||
trace_seq_putc(p, 0);
|
||||
|
||||
return ret;
|
||||
|
|
Загрузка…
Ссылка в новой задаче