Shaohua Li | d3e75ff | 2009-01-09 11:29:46 +0800 | [diff] [blame] | 1 | #ifndef _ASM_IA64_FTRACE_H |
| 2 | #define _ASM_IA64_FTRACE_H |
| 3 | |
| 4 | #ifdef CONFIG_FUNCTION_TRACER |
| 5 | #define MCOUNT_INSN_SIZE 32 /* sizeof mcount call */ |
| 6 | |
| 7 | #ifndef __ASSEMBLY__ |
| 8 | extern void _mcount(unsigned long pfs, unsigned long r1, unsigned long b0, unsigned long r0); |
| 9 | #define mcount _mcount |
| 10 | |
Shaohua Li | a14a07b | 2009-01-09 11:29:49 +0800 | [diff] [blame] | 11 | /* In IA64, MCOUNT_ADDR is set in link time, so it's not a constant at compile time */ |
| 12 | #define MCOUNT_ADDR (((struct fnptr *)mcount)->ip) |
| 13 | #define FTRACE_ADDR (((struct fnptr *)ftrace_caller)->ip) |
| 14 | |
| 15 | static inline unsigned long ftrace_call_adjust(unsigned long addr) |
| 16 | { |
| 17 | /* second bundle, insn 2 */ |
| 18 | return addr - 0x12; |
| 19 | } |
| 20 | |
| 21 | struct dyn_arch_ftrace { |
| 22 | }; |
Shaohua Li | d3e75ff | 2009-01-09 11:29:46 +0800 | [diff] [blame] | 23 | #endif |
| 24 | |
| 25 | #endif /* CONFIG_FUNCTION_TRACER */ |
| 26 | |
| 27 | #endif /* _ASM_IA64_FTRACE_H */ |