1 #ifndef _TRACE_SYSCALL_H 2 #define _TRACE_SYSCALL_H 3 4 #include <asm/ptrace.h> 5 6 /* 7 * A syscall entry in the ftrace syscalls array. 8 * 9 * @name: name of the syscall 10 * @nb_args: number of parameters it takes 11 * @types: list of types as strings 12 * @args: list of args as strings (args[i] matches types[i]) 13 */ 14 struct syscall_metadata { 15 const char *name; 16 int nb_args; 17 const char **types; 18 const char **args; 19 }; 20 21 #ifdef CONFIG_FTRACE_SYSCALLS 22 extern void arch_init_ftrace_syscalls(void); 23 extern struct syscall_metadata *syscall_nr_to_meta(int nr); 24 extern void start_ftrace_syscalls(void); 25 extern void stop_ftrace_syscalls(void); 26 extern void ftrace_syscall_enter(struct pt_regs *regs); 27 extern void ftrace_syscall_exit(struct pt_regs *regs); 28 #else 29 static inline void start_ftrace_syscalls(void) { } 30 static inline void stop_ftrace_syscalls(void) { } 31 static inline void ftrace_syscall_enter(struct pt_regs *regs) { } 32 static inline void ftrace_syscall_exit(struct pt_regs *regs) { } 33 #endif 34 35 #endif /* _TRACE_SYSCALL_H */ 36