Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6] / include / trace / syscall.h
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 */