Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6
[sfrench/cifs-2.6.git] / include / asm-x86 / ftrace.h
1 #ifndef ASM_X86__FTRACE_H
2 #define ASM_X86__FTRACE_H
3
4 #ifdef CONFIG_FTRACE
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_FTRACE */
23
24 #endif /* ASM_X86__FTRACE_H */