1  /* SPDX-License-Identifier: GPL-2.0 */
2  #undef TRACE_SYSTEM
3  #define TRACE_SYSTEM printk
4  
5  #if !defined(_TRACE_PRINTK_H) || defined(TRACE_HEADER_MULTI_READ)
6  #define _TRACE_PRINTK_H
7  
8  #include <linux/tracepoint.h>
9  
10  TRACE_EVENT(console,
11  	TP_PROTO(const char *text, size_t len),
12  
13  	TP_ARGS(text, len),
14  
15  	TP_STRUCT__entry(
16  		__dynamic_array(char, msg, len + 1)
17  	),
18  
19  	TP_fast_assign(
20  		/*
21  		 * Each trace entry is printed in a new line.
22  		 * If the msg finishes with '\n', cut it off
23  		 * to avoid blank lines in the trace.
24  		 */
25  		if ((len > 0) && (text[len-1] == '\n'))
26  			len -= 1;
27  
28  		memcpy(__get_str(msg), text, len);
29  		__get_str(msg)[len] = 0;
30  	),
31  
32  	TP_printk("%s", __get_str(msg))
33  );
34  #endif /* _TRACE_PRINTK_H */
35  
36  /* This part must be outside protection */
37  #include <trace/define_trace.h>
38