1bb730b58SSteven Rostedt (VMware) // SPDX-License-Identifier: GPL-2.0
281dc9f0eSSteven Rostedt (Red Hat) #undef TRACE_SYSTEM
381dc9f0eSSteven Rostedt (Red Hat) #define TRACE_SYSTEM benchmark
481dc9f0eSSteven Rostedt (Red Hat) 
581dc9f0eSSteven Rostedt (Red Hat) #if !defined(_TRACE_BENCHMARK_H) || defined(TRACE_HEADER_MULTI_READ)
681dc9f0eSSteven Rostedt (Red Hat) #define _TRACE_BENCHMARK_H
781dc9f0eSSteven Rostedt (Red Hat) 
881dc9f0eSSteven Rostedt (Red Hat) #include <linux/tracepoint.h>
981dc9f0eSSteven Rostedt (Red Hat) 
108cf868afSSteven Rostedt (Red Hat) extern int trace_benchmark_reg(void);
1181dc9f0eSSteven Rostedt (Red Hat) extern void trace_benchmark_unreg(void);
1281dc9f0eSSteven Rostedt (Red Hat) 
1381dc9f0eSSteven Rostedt (Red Hat) #define BENCHMARK_EVENT_STRLEN		128
1481dc9f0eSSteven Rostedt (Red Hat) 
1581dc9f0eSSteven Rostedt (Red Hat) TRACE_EVENT_FN(benchmark_event,
1681dc9f0eSSteven Rostedt (Red Hat) 
17*b7b037ebSSteven Rostedt (Google) 	TP_PROTO(const char *str, u64 delta),
1881dc9f0eSSteven Rostedt (Red Hat) 
19*b7b037ebSSteven Rostedt (Google) 	TP_ARGS(str, delta),
2081dc9f0eSSteven Rostedt (Red Hat) 
2181dc9f0eSSteven Rostedt (Red Hat) 	TP_STRUCT__entry(
2281dc9f0eSSteven Rostedt (Red Hat) 		__array(	char,	str,	BENCHMARK_EVENT_STRLEN	)
23*b7b037ebSSteven Rostedt (Google) 		__field(	u64,	delta)
2481dc9f0eSSteven Rostedt (Red Hat) 	),
2581dc9f0eSSteven Rostedt (Red Hat) 
2681dc9f0eSSteven Rostedt (Red Hat) 	TP_fast_assign(
2781dc9f0eSSteven Rostedt (Red Hat) 		memcpy(__entry->str, str, BENCHMARK_EVENT_STRLEN);
28*b7b037ebSSteven Rostedt (Google) 		__entry->delta = delta;
2981dc9f0eSSteven Rostedt (Red Hat) 	),
3081dc9f0eSSteven Rostedt (Red Hat) 
31*b7b037ebSSteven Rostedt (Google) 	TP_printk("%s delta=%llu", __entry->str, __entry->delta),
3281dc9f0eSSteven Rostedt (Red Hat) 
3381dc9f0eSSteven Rostedt (Red Hat) 	trace_benchmark_reg, trace_benchmark_unreg
3481dc9f0eSSteven Rostedt (Red Hat) );
3581dc9f0eSSteven Rostedt (Red Hat) 
3681dc9f0eSSteven Rostedt (Red Hat) #endif /* _TRACE_BENCHMARK_H */
3781dc9f0eSSteven Rostedt (Red Hat) 
3881dc9f0eSSteven Rostedt (Red Hat) #undef TRACE_INCLUDE_FILE
3981dc9f0eSSteven Rostedt (Red Hat) #undef TRACE_INCLUDE_PATH
4081dc9f0eSSteven Rostedt (Red Hat) #define TRACE_INCLUDE_PATH .
4181dc9f0eSSteven Rostedt (Red Hat) #define TRACE_INCLUDE_FILE trace_benchmark
4281dc9f0eSSteven Rostedt (Red Hat) 
4381dc9f0eSSteven Rostedt (Red Hat) /* This part must be outside protection */
4481dc9f0eSSteven Rostedt (Red Hat) #include <trace/define_trace.h>
45