diff options
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/trace/trace_syscalls.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/kernel/trace/trace_syscalls.c b/kernel/trace/trace_syscalls.c index d10daf0922b5..7336b6c265d7 100644 --- a/kernel/trace/trace_syscalls.c +++ b/kernel/trace/trace_syscalls.c | |||
@@ -97,7 +97,7 @@ extern char *__bad_type_size(void); | |||
97 | __bad_type_size() : \ | 97 | __bad_type_size() : \ |
98 | #type, #name, offsetof(typeof(trace), name), sizeof(trace.name) | 98 | #type, #name, offsetof(typeof(trace), name), sizeof(trace.name) |
99 | 99 | ||
100 | int ftrace_format_syscall(struct ftrace_event_call *call, struct trace_seq *s) | 100 | int syscall_enter_format(struct ftrace_event_call *call, struct trace_seq *s) |
101 | { | 101 | { |
102 | int i; | 102 | int i; |
103 | int nr; | 103 | int nr; |
@@ -149,6 +149,22 @@ int ftrace_format_syscall(struct ftrace_event_call *call, struct trace_seq *s) | |||
149 | return ret; | 149 | return ret; |
150 | } | 150 | } |
151 | 151 | ||
152 | int syscall_exit_format(struct ftrace_event_call *call, struct trace_seq *s) | ||
153 | { | ||
154 | int ret; | ||
155 | struct syscall_trace_exit trace; | ||
156 | |||
157 | ret = trace_seq_printf(s, | ||
158 | "\tfield:%s %s;\toffset:%zu;\tsize:%zu;\n" | ||
159 | "\tfield:%s %s;\toffset:%zu;\tsize:%zu;\n", | ||
160 | SYSCALL_FIELD(int, nr), | ||
161 | SYSCALL_FIELD(unsigned long, ret)); | ||
162 | if (!ret) | ||
163 | return 0; | ||
164 | |||
165 | return trace_seq_printf(s, "\nprint fmt: \"0x%%lx\", REC->ret\n"); | ||
166 | } | ||
167 | |||
152 | void ftrace_syscall_enter(struct pt_regs *regs, long id) | 168 | void ftrace_syscall_enter(struct pt_regs *regs, long id) |
153 | { | 169 | { |
154 | struct syscall_trace_enter *entry; | 170 | struct syscall_trace_enter *entry; |