2008-12-25 20:38:56 +08:00
|
|
|
#ifndef _ASM_S390_FTRACE_H
|
|
|
|
#define _ASM_S390_FTRACE_H
|
|
|
|
|
|
|
|
#ifndef __ASSEMBLY__
|
2009-06-12 16:26:44 +08:00
|
|
|
|
2008-12-25 20:38:56 +08:00
|
|
|
extern void _mcount(void);
|
2009-06-12 16:26:44 +08:00
|
|
|
extern unsigned long ftrace_dyn_func;
|
|
|
|
|
|
|
|
struct dyn_arch_ftrace { };
|
|
|
|
|
|
|
|
#define MCOUNT_ADDR ((long)_mcount)
|
|
|
|
|
|
|
|
#ifdef CONFIG_64BIT
|
2009-06-12 16:26:46 +08:00
|
|
|
#define MCOUNT_OFFSET_RET 18
|
|
|
|
#define MCOUNT_INSN_SIZE 24
|
|
|
|
#define MCOUNT_OFFSET 14
|
2009-06-12 16:26:44 +08:00
|
|
|
#else
|
2009-06-12 16:26:46 +08:00
|
|
|
#define MCOUNT_OFFSET_RET 26
|
|
|
|
#define MCOUNT_INSN_SIZE 30
|
|
|
|
#define MCOUNT_OFFSET 8
|
2008-12-25 20:38:56 +08:00
|
|
|
#endif
|
|
|
|
|
2009-06-12 16:26:44 +08:00
|
|
|
static inline unsigned long ftrace_call_adjust(unsigned long addr)
|
|
|
|
{
|
|
|
|
return addr - MCOUNT_OFFSET;
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif /* __ASSEMBLY__ */
|
2008-12-25 20:38:56 +08:00
|
|
|
#endif /* _ASM_S390_FTRACE_H */
|