tracing: Make event trigger functions available
authorTom Zanussi <tom.zanussi@linux.intel.com>
Thu, 10 Dec 2015 18:50:44 +0000 (12:50 -0600)
committerSteven Rostedt <rostedt@goodmis.org>
Tue, 8 Mar 2016 16:19:30 +0000 (11:19 -0500)
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: Tom Zanussi <tom.zanussi@linux.intel.com>
Tested-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Reviewed-by: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
kernel/trace/trace.h
kernel/trace/trace_events_trigger.c

index 81a8359e9c296cda0d99ae968e294f13f8761919..b2bc956e2b0d8e0983aaf40a2c9bc73e7cb4bb74 100644 (file)
@@ -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
  *
index b38f617b618185d907670ca77774b3332bdb63db..f40424f35dcb0e6a30d6f0dbc7d6061db7fe50d8 100644 (file)
@@ -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,9 +394,8 @@ 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,
-                  struct event_trigger_data *data)
+int event_trigger_init(struct event_trigger_ops *ops,
+                      struct event_trigger_data *data)
 {
        data->ref++;
        return 0;
@@ -425,8 +423,8 @@ 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 trigger_enable)
+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,9 +558,9 @@ out:
  * Usually used directly as the @unreg method in event command
  * implementations.
  */
-static void unregister_trigger(char *glob, struct event_trigger_ops *ops,
-                              struct event_trigger_data *test,
-                              struct trace_event_file *file)
+void unregister_trigger(char *glob, struct event_trigger_ops *ops,
+                       struct event_trigger_data *test,
+                       struct trace_event_file *file)
 {
        struct event_trigger_data *data;
        bool unregistered = false;
@@ -696,9 +694,9 @@ event_trigger_callback(struct event_command *cmd_ops,
  *
  * Return: 0 on success, errno otherwise
  */
-static int set_trigger_filter(char *filter_str,
-                             struct event_trigger_data *trigger_data,
-                             struct trace_event_file *file)
+int set_trigger_filter(char *filter_str,
+                      struct event_trigger_data *trigger_data,
+                      struct trace_event_file *file)
 {
        struct event_trigger_data *data = trigger_data;
        struct event_filter *filter = NULL, *tmp;