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