xref: /linux/kernel/trace/trace_benchmark.h (revision b7b037eb)
1 // SPDX-License-Identifier: GPL-2.0
2 #undef TRACE_SYSTEM
3 #define TRACE_SYSTEM benchmark
4 
5 #if !defined(_TRACE_BENCHMARK_H) || defined(TRACE_HEADER_MULTI_READ)
6 #define _TRACE_BENCHMARK_H
7 
8 #include <linux/tracepoint.h>
9 
10 extern int trace_benchmark_reg(void);
11 extern void trace_benchmark_unreg(void);
12 
13 #define BENCHMARK_EVENT_STRLEN		128
14 
15 TRACE_EVENT_FN(benchmark_event,
16 
17 	TP_PROTO(const char *str, u64 delta),
18 
19 	TP_ARGS(str, delta),
20 
21 	TP_STRUCT__entry(
22 		__array(	char,	str,	BENCHMARK_EVENT_STRLEN	)
23 		__field(	u64,	delta)
24 	),
25 
26 	TP_fast_assign(
27 		memcpy(__entry->str, str, BENCHMARK_EVENT_STRLEN);
28 		__entry->delta = delta;
29 	),
30 
31 	TP_printk("%s delta=%llu", __entry->str, __entry->delta),
32 
33 	trace_benchmark_reg, trace_benchmark_unreg
34 );
35 
36 #endif /* _TRACE_BENCHMARK_H */
37 
38 #undef TRACE_INCLUDE_FILE
39 #undef TRACE_INCLUDE_PATH
40 #define TRACE_INCLUDE_PATH .
41 #define TRACE_INCLUDE_FILE trace_benchmark
42 
43 /* This part must be outside protection */
44 #include <trace/define_trace.h>
45