diff options
Diffstat (limited to 'include/trace/syscall.h')
| -rw-r--r-- | include/trace/syscall.h | 33 |
1 files changed, 15 insertions, 18 deletions
diff --git a/include/trace/syscall.h b/include/trace/syscall.h index 5dc283ba5ae0..961fda3556bb 100644 --- a/include/trace/syscall.h +++ b/include/trace/syscall.h | |||
| @@ -12,51 +12,48 @@ | |||
| 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, | 37 | extern int syscall_enter_format(struct ftrace_event_call *call, |
| 47 | struct trace_seq *s); | 38 | struct trace_seq *s); |
| 48 | extern int syscall_exit_format(struct ftrace_event_call *call, | 39 | extern int syscall_exit_format(struct ftrace_event_call *call, |
| 49 | struct trace_seq *s); | 40 | struct trace_seq *s); |
| 50 | extern int syscall_enter_define_fields(struct ftrace_event_call *call); | 41 | extern int syscall_enter_define_fields(struct ftrace_event_call *call); |
| 51 | extern int syscall_exit_define_fields(struct ftrace_event_call *call); | 42 | extern int syscall_exit_define_fields(struct ftrace_event_call *call); |
| 43 | extern int reg_event_syscall_enter(struct ftrace_event_call *call); | ||
| 44 | extern void unreg_event_syscall_enter(struct ftrace_event_call *call); | ||
| 45 | extern int reg_event_syscall_exit(struct ftrace_event_call *call); | ||
| 46 | extern void unreg_event_syscall_exit(struct ftrace_event_call *call); | ||
| 47 | extern int | ||
| 48 | 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); | 49 | 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); | 50 | enum print_line_t print_syscall_exit(struct trace_iterator *iter, int flags); |
| 54 | #endif | 51 | #endif |
| 55 | #ifdef CONFIG_EVENT_PROFILE | 52 | #ifdef CONFIG_EVENT_PROFILE |
| 56 | int reg_prof_syscall_enter(char *name); | 53 | int prof_sysenter_enable(struct ftrace_event_call *call); |
| 57 | void unreg_prof_syscall_enter(char *name); | 54 | void prof_sysenter_disable(struct ftrace_event_call *call); |
| 58 | int reg_prof_syscall_exit(char *name); | 55 | int prof_sysexit_enable(struct ftrace_event_call *call); |
| 59 | void unreg_prof_syscall_exit(char *name); | 56 | void prof_sysexit_disable(struct ftrace_event_call *call); |
| 60 | 57 | ||
| 61 | #endif | 58 | #endif |
| 62 | 59 | ||
