| 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 */ |