FILE
ftrace_internal.h
File preview with syntax highlighting.
linux-6.19.14/kernel/trace/ftrace_internal.h
1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifndef _LINUX_KERNEL_FTRACE_INTERNAL_H 3#define _LINUX_KERNEL_FTRACE_INTERNAL_H 4 5int __register_ftrace_function(struct ftrace_ops *ops); 6int __unregister_ftrace_function(struct ftrace_ops *ops); 7 8#ifdef CONFIG_FUNCTION_TRACER 9 10extern struct mutex ftrace_lock; 11extern struct ftrace_ops global_ops; 12 13#ifdef CONFIG_DYNAMIC_FTRACE 14 15int ftrace_startup(struct ftrace_ops *ops, int command); 16int ftrace_shutdown(struct ftrace_ops *ops, int command); 17int ftrace_ops_test(struct ftrace_ops *ops, unsigned long ip, void *regs); 18int ftrace_startup_subops(struct ftrace_ops *ops, struct ftrace_ops *subops, int command); 19int ftrace_shutdown_subops(struct ftrace_ops *ops, struct ftrace_ops *subops, int command); 20 21#else /* !CONFIG_DYNAMIC_FTRACE */ 22 23/* Keep as macros so we do not need to define the commands */ 24# define ftrace_startup(ops, command) \ 25 ({ \ 26 int ___ret = __register_ftrace_function(ops); \ 27 if (!___ret) \ 28 (ops)->flags |= FTRACE_OPS_FL_ENABLED; \ 29 ___ret; \ 30 }) 31# define ftrace_shutdown(ops, command) \ 32 ({ \ 33 int ___ret = __unregister_ftrace_function(ops); \ 34 if (!___ret) \ 35 (ops)->flags &= ~FTRACE_OPS_FL_ENABLED; \ 36 ___ret; \ 37 }) 38static inline int 39ftrace_ops_test(struct ftrace_ops *ops, unsigned long ip, void *regs) 40{ 41 return 1; 42} 43static inline int ftrace_startup_subops(struct ftrace_ops *ops, struct ftrace_ops *subops, int command) 44{ 45 return -EINVAL; 46} 47static inline int ftrace_shutdown_subops(struct ftrace_ops *ops, struct ftrace_ops *subops, int command) 48{ 49 return -EINVAL; 50} 51#endif /* CONFIG_DYNAMIC_FTRACE */ 52 53#ifdef CONFIG_FUNCTION_GRAPH_TRACER 54extern int ftrace_graph_active; 55# ifdef CONFIG_DYNAMIC_FTRACE 56extern void fgraph_update_pid_func(void); 57# else 58static inline void fgraph_update_pid_func(void) {} 59# endif 60#else /* !CONFIG_FUNCTION_GRAPH_TRACER */ 61# define ftrace_graph_active 0 62static inline void fgraph_update_pid_func(void) {} 63#endif /* CONFIG_FUNCTION_GRAPH_TRACER */ 64 65#else /* !CONFIG_FUNCTION_TRACER */ 66#endif /* CONFIG_FUNCTION_TRACER */ 67 68#endif
~/
Read-only file preview.