Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ab4bf008 authored by Tom Zanussi's avatar Tom Zanussi Committed by Steven Rostedt
Browse files

tracing: Make event trigger functions available

Make various event trigger utility functions available outside of
trace_events_trigger.c so that new triggers can be defined outside of
that file.

Link: http://lkml.kernel.org/r/4a40c1695dd43cac6cd475d72e13ffe30ba84bff.1449767187.git.tom.zanussi@linux.intel.com



Signed-off-by: default avatarTom Zanussi <tom.zanussi@linux.intel.com>
Tested-by: default avatarMasami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Reviewed-by: default avatarNamhyung Kim <namhyung@kernel.org>
Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
parent 4ef56902
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -1175,6 +1175,20 @@ struct event_trigger_data {
	struct list_head		list;
};

extern void trigger_data_free(struct event_trigger_data *data);
extern int event_trigger_init(struct event_trigger_ops *ops,
			      struct event_trigger_data *data);
extern int trace_event_trigger_enable_disable(struct trace_event_file *file,
					      int trigger_enable);
extern void update_cond_flag(struct trace_event_file *file);
extern void unregister_trigger(char *glob, struct event_trigger_ops *ops,
			       struct event_trigger_data *test,
			       struct trace_event_file *file);
extern int set_trigger_filter(char *filter_str,
			      struct event_trigger_data *trigger_data,
			      struct trace_event_file *file);
extern int register_event_command(struct event_command *cmd);

/**
 * struct event_trigger_ops - callbacks for trace event triggers
 *
+13 −15
Original line number Diff line number Diff line
@@ -28,8 +28,7 @@
static LIST_HEAD(trigger_commands);
static DEFINE_MUTEX(trigger_cmd_mutex);

static void
trigger_data_free(struct event_trigger_data *data)
void trigger_data_free(struct event_trigger_data *data)
{
	if (data->cmd_ops->set_filter)
		data->cmd_ops->set_filter(NULL, data, NULL);
@@ -306,7 +305,7 @@ const struct file_operations event_trigger_fops = {
 * Currently we only register event commands from __init, so mark this
 * __init too.
 */
static __init int register_event_command(struct event_command *cmd)
__init int register_event_command(struct event_command *cmd)
{
	struct event_command *p;
	int ret = 0;
@@ -395,8 +394,7 @@ event_trigger_print(const char *name, struct seq_file *m,
 *
 * Return: 0 on success, errno otherwise
 */
static int
event_trigger_init(struct event_trigger_ops *ops,
int event_trigger_init(struct event_trigger_ops *ops,
		       struct event_trigger_data *data)
{
	data->ref++;
@@ -425,7 +423,7 @@ event_trigger_free(struct event_trigger_ops *ops,
		trigger_data_free(data);
}

static int trace_event_trigger_enable_disable(struct trace_event_file *file,
int trace_event_trigger_enable_disable(struct trace_event_file *file,
				       int trigger_enable)
{
	int ret = 0;
@@ -483,7 +481,7 @@ clear_event_triggers(struct trace_array *tr)
 * its TRIGGER_COND bit set, otherwise the TRIGGER_COND bit should be
 * cleared.
 */
static void update_cond_flag(struct trace_event_file *file)
void update_cond_flag(struct trace_event_file *file)
{
	struct event_trigger_data *data;
	bool set_cond = false;
@@ -560,7 +558,7 @@ static int register_trigger(char *glob, struct event_trigger_ops *ops,
 * Usually used directly as the @unreg method in event command
 * implementations.
 */
static void unregister_trigger(char *glob, struct event_trigger_ops *ops,
void unregister_trigger(char *glob, struct event_trigger_ops *ops,
			struct event_trigger_data *test,
			struct trace_event_file *file)
{
@@ -696,7 +694,7 @@ event_trigger_callback(struct event_command *cmd_ops,
 *
 * Return: 0 on success, errno otherwise
 */
static int set_trigger_filter(char *filter_str,
int set_trigger_filter(char *filter_str,
		       struct event_trigger_data *trigger_data,
		       struct trace_event_file *file)
{