Frederic Weisbecker | 47788c5 | 2009-04-08 20:40:59 +0200 | [diff] [blame] | 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 */ |