aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/ftrace_event.h17
-rw-r--r--include/linux/syscalls.h10
2 files changed, 20 insertions, 7 deletions
diff --git a/include/linux/ftrace_event.h b/include/linux/ftrace_event.h
index 393a8394df0e..4f77932b0983 100644
--- a/include/linux/ftrace_event.h
+++ b/include/linux/ftrace_event.h
@@ -70,18 +70,25 @@ struct trace_iterator {
70}; 70};
71 71
72 72
73struct trace_event;
74
73typedef enum print_line_t (*trace_print_func)(struct trace_iterator *iter, 75typedef enum print_line_t (*trace_print_func)(struct trace_iterator *iter,
74 int flags); 76 int flags, struct trace_event *event);
75struct trace_event { 77
76 struct hlist_node node; 78struct trace_event_functions {
77 struct list_head list;
78 int type;
79 trace_print_func trace; 79 trace_print_func trace;
80 trace_print_func raw; 80 trace_print_func raw;
81 trace_print_func hex; 81 trace_print_func hex;
82 trace_print_func binary; 82 trace_print_func binary;
83}; 83};
84 84
85struct trace_event {
86 struct hlist_node node;
87 struct list_head list;
88 int type;
89 struct trace_event_functions *funcs;
90};
91
85extern int register_ftrace_event(struct trace_event *event); 92extern int register_ftrace_event(struct trace_event *event);
86extern int unregister_ftrace_event(struct trace_event *event); 93extern int unregister_ftrace_event(struct trace_event *event);
87 94
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h
index 211c704a71ed..f7256770a20f 100644
--- a/include/linux/syscalls.h
+++ b/include/linux/syscalls.h
@@ -125,9 +125,12 @@ extern struct ftrace_event_class event_class_syscall_exit;
125 static struct syscall_metadata __syscall_meta_##sname; \ 125 static struct syscall_metadata __syscall_meta_##sname; \
126 static struct ftrace_event_call \ 126 static struct ftrace_event_call \
127 __attribute__((__aligned__(4))) event_enter_##sname; \ 127 __attribute__((__aligned__(4))) event_enter_##sname; \
128 static struct trace_event enter_syscall_print_##sname = { \ 128 static struct trace_event_functions enter_syscall_print_funcs_##sname = { \
129 .trace = print_syscall_enter, \ 129 .trace = print_syscall_enter, \
130 }; \ 130 }; \
131 static struct trace_event enter_syscall_print_##sname = { \
132 .funcs = &enter_syscall_print_funcs_##sname, \
133 }; \
131 static struct ftrace_event_call __used \ 134 static struct ftrace_event_call __used \
132 __attribute__((__aligned__(4))) \ 135 __attribute__((__aligned__(4))) \
133 __attribute__((section("_ftrace_events"))) \ 136 __attribute__((section("_ftrace_events"))) \
@@ -142,9 +145,12 @@ extern struct ftrace_event_class event_class_syscall_exit;
142 static struct syscall_metadata __syscall_meta_##sname; \ 145 static struct syscall_metadata __syscall_meta_##sname; \
143 static struct ftrace_event_call \ 146 static struct ftrace_event_call \
144 __attribute__((__aligned__(4))) event_exit_##sname; \ 147 __attribute__((__aligned__(4))) event_exit_##sname; \
145 static struct trace_event exit_syscall_print_##sname = { \ 148 static struct trace_event_functions exit_syscall_print_funcs_##sname = { \
146 .trace = print_syscall_exit, \ 149 .trace = print_syscall_exit, \
147 }; \ 150 }; \
151 static struct trace_event exit_syscall_print_##sname = { \
152 .funcs = &exit_syscall_print_funcs_##sname, \
153 }; \
148 static struct ftrace_event_call __used \ 154 static struct ftrace_event_call __used \
149 __attribute__((__aligned__(4))) \ 155 __attribute__((__aligned__(4))) \
150 __attribute__((section("_ftrace_events"))) \ 156 __attribute__((section("_ftrace_events"))) \