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:
		
							parent
							
								
									60b1af3300
								
							
						
					
					
						commit
						2acae0d5b0
					
				| @ -33,7 +33,8 @@ const char *trace_print_bitmask_seq(struct trace_seq *p, void *bitmask_ptr, | |||||||
| 				    unsigned int bitmask_size); | 				    unsigned int bitmask_size); | ||||||
| 
 | 
 | ||||||
| const char *trace_print_hex_seq(struct trace_seq *p, | 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 char *trace_print_array_seq(struct trace_seq *p, | ||||||
| 				   const void *buf, int count, | 				   const void *buf, int count, | ||||||
|  | |||||||
| @ -297,7 +297,12 @@ TRACE_MAKE_SYSTEM_STR(); | |||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| #undef __print_hex | #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 | #undef __print_array | ||||||
| #define __print_array(array, count, el_size)				\ | #define __print_array(array, count, el_size)				\ | ||||||
| @ -711,6 +716,7 @@ static inline void ftrace_test_probe_##call(void)			\ | |||||||
| #undef __print_flags | #undef __print_flags | ||||||
| #undef __print_symbolic | #undef __print_symbolic | ||||||
| #undef __print_hex | #undef __print_hex | ||||||
|  | #undef __print_hex_str | ||||||
| #undef __get_dynamic_array | #undef __get_dynamic_array | ||||||
| #undef __get_dynamic_array_len | #undef __get_dynamic_array_len | ||||||
| #undef __get_str | #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); | EXPORT_SYMBOL_GPL(trace_print_bitmask_seq); | ||||||
| 
 | 
 | ||||||
| const char * | 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; | 	int i; | ||||||
| 	const char *ret = trace_seq_buffer_ptr(p); | 	const char *ret = trace_seq_buffer_ptr(p); | ||||||
| 
 | 
 | ||||||
| 	for (i = 0; i < buf_len; i++) | 	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); | 	trace_seq_putc(p, 0); | ||||||
| 
 | 
 | ||||||
| 	return ret; | 	return ret; | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user