diff options
Diffstat (limited to 'include/trace/syscall.h')
| -rw-r--r-- | include/trace/syscall.h | 35 | 
1 files changed, 35 insertions, 0 deletions
diff --git a/include/trace/syscall.h b/include/trace/syscall.h new file mode 100644 index 00000000000..8cfe515cbc4 --- /dev/null +++ b/include/trace/syscall.h @@ -0,0 +1,35 @@ +#ifndef _TRACE_SYSCALL_H +#define _TRACE_SYSCALL_H + +#include <asm/ptrace.h> + +/* + * A syscall entry in the ftrace syscalls array. + * + * @name: name of the syscall + * @nb_args: number of parameters it takes + * @types: list of types as strings + * @args: list of args as strings (args[i] matches types[i]) + */ +struct syscall_metadata { +	const char	*name; +	int		nb_args; +	const char	**types; +	const char	**args; +}; + +#ifdef CONFIG_FTRACE_SYSCALLS +extern void arch_init_ftrace_syscalls(void); +extern struct syscall_metadata *syscall_nr_to_meta(int nr); +extern void start_ftrace_syscalls(void); +extern void stop_ftrace_syscalls(void); +extern void ftrace_syscall_enter(struct pt_regs *regs); +extern void ftrace_syscall_exit(struct pt_regs *regs); +#else +static inline void start_ftrace_syscalls(void)			{ } +static inline void stop_ftrace_syscalls(void)			{ } +static inline void ftrace_syscall_enter(struct pt_regs *regs)	{ } +static inline void ftrace_syscall_exit(struct pt_regs *regs)	{ } +#endif + +#endif /* _TRACE_SYSCALL_H */  | 
