Heiko Carstens | 5d360a7 | 2008-12-25 13:38:56 +0100 | [diff] [blame] | 1 | #ifndef _ASM_S390_FTRACE_H |
| 2 | #define _ASM_S390_FTRACE_H |
| 3 | |
| 4 | #ifndef __ASSEMBLY__ |
Heiko Carstens | dfd9f7a | 2009-06-12 10:26:44 +0200 | [diff] [blame] | 5 | |
Heiko Carstens | 5d360a7 | 2008-12-25 13:38:56 +0100 | [diff] [blame] | 6 | extern void _mcount(void); |
Heiko Carstens | dfd9f7a | 2009-06-12 10:26:44 +0200 | [diff] [blame] | 7 | |
| 8 | struct dyn_arch_ftrace { }; |
| 9 | |
| 10 | #define MCOUNT_ADDR ((long)_mcount) |
| 11 | |
| 12 | #ifdef CONFIG_64BIT |
Martin Schwidefsky | 4cc9bed | 2011-01-05 12:48:11 +0100 | [diff] [blame] | 13 | #define MCOUNT_INSN_SIZE 12 |
Heiko Carstens | 88dbd20 | 2009-06-12 10:26:46 +0200 | [diff] [blame] | 14 | #define MCOUNT_OFFSET 8 |
Martin Schwidefsky | 4cc9bed | 2011-01-05 12:48:11 +0100 | [diff] [blame] | 15 | #else |
| 16 | #define MCOUNT_INSN_SIZE 20 |
| 17 | #define MCOUNT_OFFSET 4 |
Heiko Carstens | 5d360a7 | 2008-12-25 13:38:56 +0100 | [diff] [blame] | 18 | #endif |
| 19 | |
Heiko Carstens | dfd9f7a | 2009-06-12 10:26:44 +0200 | [diff] [blame] | 20 | static inline unsigned long ftrace_call_adjust(unsigned long addr) |
| 21 | { |
| 22 | return addr - MCOUNT_OFFSET; |
| 23 | } |
| 24 | |
| 25 | #endif /* __ASSEMBLY__ */ |
Heiko Carstens | 5d360a7 | 2008-12-25 13:38:56 +0100 | [diff] [blame] | 26 | #endif /* _ASM_S390_FTRACE_H */ |