mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-09-18 22:14:16 +00:00 
			
		
		
		
	tracing: Add DEFINE_EVENT_FN() macro
Each TRACE_EVENT() adds several helper functions. If two or more trace events share the same structure and print format, they can also share most of these helper functions and save a lot of space from duplicate code. This is why the DECLARE_EVENT_CLASS() and DEFINE_EVENT() were created. Some events require a trigger to be called at registering and unregistering of the event and to do so they use TRACE_EVENT_FN(). If multiple events require a trigger, they currently have no choice but to use TRACE_EVENT_FN() as there's no DEFINE_EVENT_FN() available. This unfortunately causes a lot of wasted duplicate code created. By adding a DEFINE_EVENT_FN(), these events can still use a DECLARE_EVENT_CLASS() and then define their own triggers. Signed-off-by: Steven Rostedt <rostedt@goodmis.org> Link: http://lkml.kernel.org/r/51C3236C.8030508@hds.com Signed-off-by: Seiji Aguchi <seiji.aguchi@hds.com> Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
This commit is contained in:
		
							parent
							
								
									7d13205581
								
							
						
					
					
						commit
						f5abaa1bfc
					
				
					 3 changed files with 11 additions and 0 deletions
				
			
		|  | @ -378,6 +378,8 @@ static inline void tracepoint_synchronize_unregister(void) | |||
| #define DECLARE_EVENT_CLASS(name, proto, args, tstruct, assign, print) | ||||
| #define DEFINE_EVENT(template, name, proto, args)		\ | ||||
| 	DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)) | ||||
| #define DEFINE_EVENT_FN(template, name, proto, args, reg, unreg)\ | ||||
| 	DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)) | ||||
| #define DEFINE_EVENT_PRINT(template, name, proto, args, print)	\ | ||||
| 	DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)) | ||||
| #define DEFINE_EVENT_CONDITION(template, name, proto,		\ | ||||
|  |  | |||
|  | @ -44,6 +44,10 @@ | |||
| #define DEFINE_EVENT(template, name, proto, args) \ | ||||
| 	DEFINE_TRACE(name) | ||||
| 
 | ||||
| #undef DEFINE_EVENT_FN | ||||
| #define DEFINE_EVENT_FN(template, name, proto, args, reg, unreg) \ | ||||
| 	DEFINE_TRACE_FN(name, reg, unreg) | ||||
| 
 | ||||
| #undef DEFINE_EVENT_PRINT | ||||
| #define DEFINE_EVENT_PRINT(template, name, proto, args, print)	\ | ||||
| 	DEFINE_TRACE(name) | ||||
|  | @ -91,6 +95,7 @@ | |||
| #undef TRACE_EVENT_CONDITION | ||||
| #undef DECLARE_EVENT_CLASS | ||||
| #undef DEFINE_EVENT | ||||
| #undef DEFINE_EVENT_FN | ||||
| #undef DEFINE_EVENT_PRINT | ||||
| #undef DEFINE_EVENT_CONDITION | ||||
| #undef TRACE_HEADER_MULTI_READ | ||||
|  |  | |||
|  | @ -71,6 +71,10 @@ | |||
| 	static struct ftrace_event_call	__used		\ | ||||
| 	__attribute__((__aligned__(4))) event_##name | ||||
| 
 | ||||
| #undef DEFINE_EVENT_FN | ||||
| #define DEFINE_EVENT_FN(template, name, proto, args, reg, unreg)	\ | ||||
| 	DEFINE_EVENT(template, name, PARAMS(proto), PARAMS(args)) | ||||
| 
 | ||||
| #undef DEFINE_EVENT_PRINT | ||||
| #define DEFINE_EVENT_PRINT(template, name, proto, args, print)	\ | ||||
| 	DEFINE_EVENT(template, name, PARAMS(proto), PARAMS(args)) | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Steven Rostedt
						Steven Rostedt