1 #undef TRACE_SYSTEM 2 #define TRACE_SYSTEM printk 3 4 #if !defined(_TRACE_PRINTK_H) || defined(TRACE_HEADER_MULTI_READ) 5 #define _TRACE_PRINTK_H 6 7 #include <linux/tracepoint.h> 8 9 TRACE_EVENT_CONDITION(console, 10 TP_PROTO(const char *log_buf, unsigned start, unsigned end, 11 unsigned log_buf_len), 12 13 TP_ARGS(log_buf, start, end, log_buf_len), 14 15 TP_CONDITION(start != end), 16 17 TP_STRUCT__entry( 18 __dynamic_array(char, msg, end - start + 1) 19 ), 20 21 TP_fast_assign( 22 if ((start & (log_buf_len - 1)) > (end & (log_buf_len - 1))) { 23 memcpy(__get_dynamic_array(msg), 24 log_buf + (start & (log_buf_len - 1)), 25 log_buf_len - (start & (log_buf_len - 1))); 26 memcpy((char *)__get_dynamic_array(msg) + 27 log_buf_len - (start & (log_buf_len - 1)), 28 log_buf, end & (log_buf_len - 1)); 29 } else 30 memcpy(__get_dynamic_array(msg), 31 log_buf + (start & (log_buf_len - 1)), 32 end - start); 33 ((char *)__get_dynamic_array(msg))[end - start] = 0; 34 ), 35 36 TP_printk("%s", __get_str(msg)) 37 ); 38 #endif /* _TRACE_PRINTK_H */ 39 40 /* This part must be outside protection */ 41 #include <trace/define_trace.h> 42