diff options
Diffstat (limited to 'include/linux/ftrace_event.h')
| -rw-r--r-- | include/linux/ftrace_event.h | 38 | 
1 files changed, 24 insertions, 14 deletions
diff --git a/include/linux/ftrace_event.h b/include/linux/ftrace_event.h index 4ec5e67e18c..47bbdf9c38d 100644 --- a/include/linux/ftrace_event.h +++ b/include/linux/ftrace_event.h @@ -117,12 +117,12 @@ struct ftrace_event_call {  	struct dentry		*dir;  	struct trace_event	*event;  	int			enabled; -	int			(*regfunc)(void *); -	void			(*unregfunc)(void *); +	int			(*regfunc)(struct ftrace_event_call *); +	void			(*unregfunc)(struct ftrace_event_call *);  	int			id; -	int			(*raw_init)(void); -	int			(*show_format)(struct ftrace_event_call *call, -					       struct trace_seq *s); +	int			(*raw_init)(struct ftrace_event_call *); +	int			(*show_format)(struct ftrace_event_call *, +					       struct trace_seq *);  	int			(*define_fields)(struct ftrace_event_call *);  	struct list_head	fields;  	int			filter_active; @@ -131,20 +131,20 @@ struct ftrace_event_call {  	void			*data;  	atomic_t		profile_count; -	int			(*profile_enable)(void); -	void			(*profile_disable)(void); +	int			(*profile_enable)(struct ftrace_event_call *); +	void			(*profile_disable)(struct ftrace_event_call *);  };  #define FTRACE_MAX_PROFILE_SIZE	2048 -extern char			*trace_profile_buf; -extern char			*trace_profile_buf_nmi; +extern char *perf_trace_buf; +extern char *perf_trace_buf_nmi;  #define MAX_FILTER_PRED		32  #define MAX_FILTER_STR_VAL	256	/* Should handle KSYM_SYMBOL_LEN */  extern void destroy_preds(struct ftrace_event_call *call); -extern int filter_match_preds(struct ftrace_event_call *call, void *rec); +extern int filter_match_preds(struct event_filter *filter, void *rec);  extern int filter_current_check_discard(struct ring_buffer *buffer,  					struct ftrace_event_call *call,  					void *rec, @@ -157,11 +157,12 @@ enum {  	FILTER_PTR_STRING,  }; -extern int trace_define_field(struct ftrace_event_call *call, -			      const char *type, const char *name, -			      int offset, int size, int is_signed, -			      int filter_type);  extern int trace_define_common_fields(struct ftrace_event_call *call); +extern int trace_define_field(struct ftrace_event_call *call, const char *type, +			      const char *name, int offset, int size, +			      int is_signed, int filter_type); +extern int trace_add_event_call(struct ftrace_event_call *call); +extern void trace_remove_event_call(struct ftrace_event_call *call);  #define is_signed_type(type)	(((type)(-1)) < 0) @@ -186,4 +187,13 @@ do {									\  		__trace_printk(ip, fmt, ##args);			\  } while (0) +#ifdef CONFIG_EVENT_PROFILE +struct perf_event; +extern int ftrace_profile_enable(int event_id); +extern void ftrace_profile_disable(int event_id); +extern int ftrace_profile_set_filter(struct perf_event *event, int event_id, +				     char *filter_str); +extern void ftrace_profile_free_filter(struct perf_event *event); +#endif +  #endif /* _LINUX_FTRACE_EVENT_H */  |