Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 #undef TRACE_SYSTEM
0003 #define TRACE_SYSTEM printk
0004 
0005 #if !defined(_TRACE_PRINTK_H) || defined(TRACE_HEADER_MULTI_READ)
0006 #define _TRACE_PRINTK_H
0007 
0008 #include <linux/tracepoint.h>
0009 
0010 TRACE_EVENT(console,
0011     TP_PROTO(const char *text, size_t len),
0012 
0013     TP_ARGS(text, len),
0014 
0015     TP_STRUCT__entry(
0016         __dynamic_array(char, msg, len + 1)
0017     ),
0018 
0019     TP_fast_assign(
0020         /*
0021          * Each trace entry is printed in a new line.
0022          * If the msg finishes with '\n', cut it off
0023          * to avoid blank lines in the trace.
0024          */
0025         if ((len > 0) && (text[len-1] == '\n'))
0026             len -= 1;
0027 
0028         memcpy(__get_str(msg), text, len);
0029         __get_str(msg)[len] = 0;
0030     ),
0031 
0032     TP_printk("%s", __get_str(msg))
0033 );
0034 #endif /* _TRACE_PRINTK_H */
0035 
0036 /* This part must be outside protection */
0037 #include <trace/define_trace.h>