blob: 1bb6f9bbe1ab99319d4df113086e46ec17e9c7e7 [file] [log] [blame]
Vegard Nossum77ef50a2008-06-18 17:08:48 +02001#ifndef ASM_X86__FTRACE_H
2#define ASM_X86__FTRACE_H
Abhishek Sagar395a59d2008-06-21 23:47:27 +05303
4#ifdef CONFIG_FTRACE
5#define MCOUNT_ADDR ((long)(mcount))
6#define MCOUNT_INSN_SIZE 5 /* sizeof mcount call */
7
8#ifndef __ASSEMBLY__
9extern void mcount(void);
Steven Rostedt68bf21a2008-08-14 15:45:08 -040010
11static 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}
Abhishek Sagar395a59d2008-06-21 23:47:27 +053020#endif
21
22#endif /* CONFIG_FTRACE */
23
Vegard Nossum77ef50a2008-06-18 17:08:48 +020024#endif /* ASM_X86__FTRACE_H */