Some tracepoints have a registration function that gets enabled when the tracepoint is enabled. There may be cases that the registraction function must fail (for example, can't allocate enough memory). In this case, the tracepoint should also fail to register, otherwise the user would not know why the tracepoint is not working. Cc: David Howells <dhowells@redhat.com> Cc: Seiji Aguchi <seiji.aguchi@hds.com> Cc: Anton Blanchard <anton@samba.org> Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
		
			
				
	
	
		
			42 lines
		
	
	
		
			835 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			835 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #undef TRACE_SYSTEM
 | |
| #define TRACE_SYSTEM benchmark
 | |
| 
 | |
| #if !defined(_TRACE_BENCHMARK_H) || defined(TRACE_HEADER_MULTI_READ)
 | |
| #define _TRACE_BENCHMARK_H
 | |
| 
 | |
| #include <linux/tracepoint.h>
 | |
| 
 | |
| extern int trace_benchmark_reg(void);
 | |
| extern void trace_benchmark_unreg(void);
 | |
| 
 | |
| #define BENCHMARK_EVENT_STRLEN		128
 | |
| 
 | |
| TRACE_EVENT_FN(benchmark_event,
 | |
| 
 | |
| 	TP_PROTO(const char *str),
 | |
| 
 | |
| 	TP_ARGS(str),
 | |
| 
 | |
| 	TP_STRUCT__entry(
 | |
| 		__array(	char,	str,	BENCHMARK_EVENT_STRLEN	)
 | |
| 	),
 | |
| 
 | |
| 	TP_fast_assign(
 | |
| 		memcpy(__entry->str, str, BENCHMARK_EVENT_STRLEN);
 | |
| 	),
 | |
| 
 | |
| 	TP_printk("%s", __entry->str),
 | |
| 
 | |
| 	trace_benchmark_reg, trace_benchmark_unreg
 | |
| );
 | |
| 
 | |
| #endif /* _TRACE_BENCHMARK_H */
 | |
| 
 | |
| #undef TRACE_INCLUDE_FILE
 | |
| #undef TRACE_INCLUDE_PATH
 | |
| #define TRACE_INCLUDE_PATH .
 | |
| #define TRACE_INCLUDE_FILE trace_benchmark
 | |
| 
 | |
| /* This part must be outside protection */
 | |
| #include <trace/define_trace.h>
 |