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.
21 #ifdef CONFIG_DYNAMIC_FTRACE
22 extern void ftrace_nmi_enter(void);
23 extern void ftrace_nmi_exit(void);
25 static inline void ftrace_nmi_enter(void) { }
26 static inline void ftrace_nmi_exit(void) { }
28 #endif /* __ASSEMBLY__ */
30 #else /* CONFIG_FUNCTION_TRACER */
33 static inline void ftrace_nmi_enter(void) { }
34 static inline void ftrace_nmi_exit(void) { }
37 #endif /* CONFIG_FUNCTION_TRACER */
39 #endif /* _ASM_X86_FTRACE_H */