aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/trace/trace_syscalls.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/trace/trace_syscalls.c')
-rw-r--r--kernel/trace/trace_syscalls.c31
1 files changed, 27 insertions, 4 deletions
diff --git a/kernel/trace/trace_syscalls.c b/kernel/trace/trace_syscalls.c
index a21d366cae46..cceccf0d2e91 100644
--- a/kernel/trace/trace_syscalls.c
+++ b/kernel/trace/trace_syscalls.c
@@ -20,14 +20,37 @@ static int syscall_enter_register(struct ftrace_event_call *event,
20static int syscall_exit_register(struct ftrace_event_call *event, 20static int syscall_exit_register(struct ftrace_event_call *event,
21 enum trace_reg type); 21 enum trace_reg type);
22 22
23static int syscall_enter_define_fields(struct ftrace_event_call *call);
24static int syscall_exit_define_fields(struct ftrace_event_call *call);
25
26static struct list_head *
27syscall_get_enter_fields(struct ftrace_event_call *call)
28{
29 struct syscall_metadata *entry = call->data;
30
31 return &entry->enter_fields;
32}
33
34static struct list_head *
35syscall_get_exit_fields(struct ftrace_event_call *call)
36{
37 struct syscall_metadata *entry = call->data;
38
39 return &entry->exit_fields;
40}
41
23struct ftrace_event_class event_class_syscall_enter = { 42struct ftrace_event_class event_class_syscall_enter = {
24 .system = "syscalls", 43 .system = "syscalls",
25 .reg = syscall_enter_register 44 .reg = syscall_enter_register,
45 .define_fields = syscall_enter_define_fields,
46 .get_fields = syscall_get_enter_fields,
26}; 47};
27 48
28struct ftrace_event_class event_class_syscall_exit = { 49struct ftrace_event_class event_class_syscall_exit = {
29 .system = "syscalls", 50 .system = "syscalls",
30 .reg = syscall_exit_register 51 .reg = syscall_exit_register,
52 .define_fields = syscall_exit_define_fields,
53 .get_fields = syscall_get_exit_fields,
31}; 54};
32 55
33extern unsigned long __start_syscalls_metadata[]; 56extern unsigned long __start_syscalls_metadata[];
@@ -220,7 +243,7 @@ static void free_syscall_print_fmt(struct ftrace_event_call *call)
220 kfree(call->print_fmt); 243 kfree(call->print_fmt);
221} 244}
222 245
223int syscall_enter_define_fields(struct ftrace_event_call *call) 246static int syscall_enter_define_fields(struct ftrace_event_call *call)
224{ 247{
225 struct syscall_trace_enter trace; 248 struct syscall_trace_enter trace;
226 struct syscall_metadata *meta = call->data; 249 struct syscall_metadata *meta = call->data;
@@ -243,7 +266,7 @@ int syscall_enter_define_fields(struct ftrace_event_call *call)
243 return ret; 266 return ret;
244} 267}
245 268
246int syscall_exit_define_fields(struct ftrace_event_call *call) 269static int syscall_exit_define_fields(struct ftrace_event_call *call)
247{ 270{
248 struct syscall_trace_exit trace; 271 struct syscall_trace_exit trace;
249 int ret; 272 int ret;