1 #ifndef _ASM_X86_FTRACE_H
2 #define _ASM_X86_FTRACE_H
4 #ifdef CONFIG_FUNCTION_TRACER
5 #define MCOUNT_ADDR ((long)(mcount))
6 #define MCOUNT_INSN_SIZE 5 /* sizeof mcount call */
9 extern void mcount(void);
11 static inline unsigned long ftrace_call_adjust(unsigned long addr)
14 * call mcount is "e8 <4 byte offset>"
15 * The addr points to the 4 byte offset and the caller of this
16 * function wants the pointer to e8. Simply subtract one.
20 #endif /* __ASSEMBLY__ */
21 #endif /* CONFIG_FUNCTION_TRACER */
23 #ifdef CONFIG_FUNCTION_RET_TRACER
24 #define FTRACE_RET_STACK_SIZE 20
29 * Stack of return addresses for functions
31 * Used in struct thread_info
33 struct ftrace_ret_stack {
36 unsigned long long calltime;
40 * Primary handler of a function return.
41 * It relays on ftrace_return_to_handler.
42 * Defined in entry32.S
44 extern void return_to_handler(void);
46 #endif /* __ASSEMBLY__ */
47 #endif /* CONFIG_FUNCTION_RET_TRACER */
49 #endif /* _ASM_X86_FTRACE_H */