blob: ba23d8f97d075bda7810ed3ac96519b67ff9fc37 [file] [log] [blame]
Heiko Carstens5d360a72008-12-25 13:38:56 +01001#ifndef _ASM_S390_FTRACE_H
2#define _ASM_S390_FTRACE_H
3
4#ifndef __ASSEMBLY__
Heiko Carstensdfd9f7a2009-06-12 10:26:44 +02005
Heiko Carstens5d360a72008-12-25 13:38:56 +01006extern void _mcount(void);
Heiko Carstensdfd9f7a2009-06-12 10:26:44 +02007extern unsigned long ftrace_dyn_func;
8
9struct dyn_arch_ftrace { };
10
11#define MCOUNT_ADDR ((long)_mcount)
12
13#ifdef CONFIG_64BIT
14#define MCOUNT_INSN_SIZE 24
15#define MCOUNT_OFFSET 14
16#else
17#define MCOUNT_INSN_SIZE 30
18#define MCOUNT_OFFSET 8
Heiko Carstens5d360a72008-12-25 13:38:56 +010019#endif
20
Heiko Carstensdfd9f7a2009-06-12 10:26:44 +020021static inline unsigned long ftrace_call_adjust(unsigned long addr)
22{
23 return addr - MCOUNT_OFFSET;
24}
25
26#endif /* __ASSEMBLY__ */
Heiko Carstens5d360a72008-12-25 13:38:56 +010027#endif /* _ASM_S390_FTRACE_H */