#ifndef _TRACE_SYSCALL_H#define _TRACE_SYSCALL_H #include <asm/ptrace.h> /* * A syscall entry in the ftrace syscalls array. * * @name: name of the syscall * @nb_args: number of parameters it takes * @types: list of types as strings * @args: list of args as strings (args[i] matches types[i]) */struct syscall_metadata { const char *name; int nb_args; const char **types; const char **args;}; #ifdef CONFIG_FTRACE_SYSCALLSextern void arch_init_ftrace_syscalls(void);extern struct syscall_metadata *syscall_nr_to_meta(int nr);extern void start_ftrace_syscalls(void);extern void stop_ftrace_syscalls(void);extern void ftrace_syscall_enter(struct pt_regs *regs);extern void ftrace_syscall_exit(struct pt_regs *regs);#elsestatic inline void start_ftrace_syscalls(void) { }static inline void stop_ftrace_syscalls(void) { }static inline void ftrace_syscall_enter(struct pt_regs *regs) { }static inline void ftrace_syscall_exit(struct pt_regs *regs) { }#endif #endif /* _TRACE_SYSCALL_H */
#ifndef _TRACE_SYSCALL_H
#define _TRACE_SYSCALL_H
#include <asm/ptrace.h>
/*
* A syscall entry in the ftrace syscalls array.
*
* @name: name of the syscall
* @nb_args: number of parameters it takes
* @types: list of types as strings
* @args: list of args as strings (args[i] matches types[i])
*/
struct syscall_metadata {
const char *name;
int nb_args;
const char **types;
const char **args;
};
#ifdef CONFIG_FTRACE_SYSCALLS
extern void arch_init_ftrace_syscalls(void);
extern struct syscall_metadata *syscall_nr_to_meta(int nr);
extern void start_ftrace_syscalls(void);
extern void stop_ftrace_syscalls(void);
extern void ftrace_syscall_enter(struct pt_regs *regs);
extern void ftrace_syscall_exit(struct pt_regs *regs);
#else
static inline void start_ftrace_syscalls(void) { }
static inline void stop_ftrace_syscalls(void) { }
static inline void ftrace_syscall_enter(struct pt_regs *regs) { }
static inline void ftrace_syscall_exit(struct pt_regs *regs) { }
#endif
#endif /* _TRACE_SYSCALL_H */