xref: /openbmc/linux/include/trace/syscall.h (revision b627b4ed)
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