xref: /linux/arch/x86/include/asm/ftrace.h (revision 367b8112fe2ea5c39a7bb4d263dcdd9b612fae18)
1 #ifndef _ASM_X86_FTRACE_H
2 #define _ASM_X86_FTRACE_H
3 
4 #ifdef CONFIG_FUNCTION_TRACER
5 #define MCOUNT_ADDR		((long)(mcount))
6 #define MCOUNT_INSN_SIZE	5 /* sizeof mcount call */
7 
8 #ifndef __ASSEMBLY__
9 extern void mcount(void);
10 
11 static inline unsigned long ftrace_call_adjust(unsigned long addr)
12 {
13 	/*
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.
17 	 */
18 	return addr - 1;
19 }
20 #endif
21 
22 #endif /* CONFIG_FUNCTION_TRACER */
23 
24 #endif /* _ASM_X86_FTRACE_H */
25