diff options
Diffstat (limited to 'include/trace/syscall.h')
-rw-r--r-- | include/trace/syscall.h | 39 |
1 files changed, 16 insertions, 23 deletions
diff --git a/include/trace/syscall.h b/include/trace/syscall.h index 5dc283ba5ae0..e5e5f48dbfb3 100644 --- a/include/trace/syscall.h +++ b/include/trace/syscall.h | |||
@@ -12,52 +12,45 @@ | |||
12 | * A syscall entry in the ftrace syscalls array. | 12 | * A syscall entry in the ftrace syscalls array. |
13 | * | 13 | * |
14 | * @name: name of the syscall | 14 | * @name: name of the syscall |
15 | * @syscall_nr: number of the syscall | ||
15 | * @nb_args: number of parameters it takes | 16 | * @nb_args: number of parameters it takes |
16 | * @types: list of types as strings | 17 | * @types: list of types as strings |
17 | * @args: list of args as strings (args[i] matches types[i]) | 18 | * @args: list of args as strings (args[i] matches types[i]) |
18 | * @enter_id: associated ftrace enter event id | ||
19 | * @exit_id: associated ftrace exit event id | ||
20 | * @enter_event: associated syscall_enter trace event | 19 | * @enter_event: associated syscall_enter trace event |
21 | * @exit_event: associated syscall_exit trace event | 20 | * @exit_event: associated syscall_exit trace event |
22 | */ | 21 | */ |
23 | struct syscall_metadata { | 22 | struct syscall_metadata { |
24 | const char *name; | 23 | const char *name; |
24 | int syscall_nr; | ||
25 | int nb_args; | 25 | int nb_args; |
26 | const char **types; | 26 | const char **types; |
27 | const char **args; | 27 | const char **args; |
28 | int enter_id; | ||
29 | int exit_id; | ||
30 | 28 | ||
31 | struct ftrace_event_call *enter_event; | 29 | struct ftrace_event_call *enter_event; |
32 | struct ftrace_event_call *exit_event; | 30 | struct ftrace_event_call *exit_event; |
33 | }; | 31 | }; |
34 | 32 | ||
35 | #ifdef CONFIG_FTRACE_SYSCALLS | 33 | #ifdef CONFIG_FTRACE_SYSCALLS |
36 | extern struct syscall_metadata *syscall_nr_to_meta(int nr); | 34 | extern unsigned long arch_syscall_addr(int nr); |
37 | extern int syscall_name_to_nr(char *name); | 35 | extern int init_syscall_trace(struct ftrace_event_call *call); |
38 | void set_syscall_enter_id(int num, int id); | 36 | |
39 | void set_syscall_exit_id(int num, int id); | ||
40 | extern struct trace_event event_syscall_enter; | ||
41 | extern struct trace_event event_syscall_exit; | ||
42 | extern int reg_event_syscall_enter(void *ptr); | ||
43 | extern void unreg_event_syscall_enter(void *ptr); | ||
44 | extern int reg_event_syscall_exit(void *ptr); | ||
45 | extern void unreg_event_syscall_exit(void *ptr); | ||
46 | extern int syscall_enter_format(struct ftrace_event_call *call, | ||
47 | struct trace_seq *s); | ||
48 | extern int syscall_exit_format(struct ftrace_event_call *call, | ||
49 | struct trace_seq *s); | ||
50 | extern int syscall_enter_define_fields(struct ftrace_event_call *call); | 37 | extern int syscall_enter_define_fields(struct ftrace_event_call *call); |
51 | extern int syscall_exit_define_fields(struct ftrace_event_call *call); | 38 | extern int syscall_exit_define_fields(struct ftrace_event_call *call); |
39 | extern int reg_event_syscall_enter(struct ftrace_event_call *call); | ||
40 | extern void unreg_event_syscall_enter(struct ftrace_event_call *call); | ||
41 | extern int reg_event_syscall_exit(struct ftrace_event_call *call); | ||
42 | extern void unreg_event_syscall_exit(struct ftrace_event_call *call); | ||
43 | extern int | ||
44 | ftrace_format_syscall(struct ftrace_event_call *call, struct trace_seq *s); | ||
52 | enum print_line_t print_syscall_enter(struct trace_iterator *iter, int flags); | 45 | enum print_line_t print_syscall_enter(struct trace_iterator *iter, int flags); |
53 | enum print_line_t print_syscall_exit(struct trace_iterator *iter, int flags); | 46 | enum print_line_t print_syscall_exit(struct trace_iterator *iter, int flags); |
54 | #endif | 47 | #endif |
55 | #ifdef CONFIG_EVENT_PROFILE | ||
56 | int reg_prof_syscall_enter(char *name); | ||
57 | void unreg_prof_syscall_enter(char *name); | ||
58 | int reg_prof_syscall_exit(char *name); | ||
59 | void unreg_prof_syscall_exit(char *name); | ||
60 | 48 | ||
49 | #ifdef CONFIG_PERF_EVENTS | ||
50 | int perf_sysenter_enable(struct ftrace_event_call *call); | ||
51 | void perf_sysenter_disable(struct ftrace_event_call *call); | ||
52 | int perf_sysexit_enable(struct ftrace_event_call *call); | ||
53 | void perf_sysexit_disable(struct ftrace_event_call *call); | ||
61 | #endif | 54 | #endif |
62 | 55 | ||
63 | #endif /* _TRACE_SYSCALL_H */ | 56 | #endif /* _TRACE_SYSCALL_H */ |