14b4cf759SPaul Mundt #ifndef __ASM_SH_FTRACE_H 24b4cf759SPaul Mundt #define __ASM_SH_FTRACE_H 34b4cf759SPaul Mundt 4*fad57febSMatt Fleming #ifdef CONFIG_FUNCTION_TRACER 5*fad57febSMatt Fleming 6*fad57febSMatt Fleming #define MCOUNT_INSN_SIZE 4 /* sizeof mcount call */ 7*fad57febSMatt Fleming 84b4cf759SPaul Mundt #ifndef __ASSEMBLY__ 94b4cf759SPaul Mundt extern void mcount(void); 10*fad57febSMatt Fleming 11*fad57febSMatt Fleming #define MCOUNT_ADDR ((long)(mcount)) 12*fad57febSMatt Fleming 13*fad57febSMatt Fleming #ifdef CONFIG_DYNAMIC_FTRACE 14*fad57febSMatt Fleming #define CALLER_ADDR ((long)(ftrace_caller)) 15*fad57febSMatt Fleming #define STUB_ADDR ((long)(ftrace_stub)) 16*fad57febSMatt Fleming 17*fad57febSMatt Fleming #define MCOUNT_INSN_OFFSET ((STUB_ADDR - CALLER_ADDR) >> 1) 184b4cf759SPaul Mundt #endif 194b4cf759SPaul Mundt 20*fad57febSMatt Fleming static inline unsigned long ftrace_call_adjust(unsigned long addr) 21*fad57febSMatt Fleming { 22*fad57febSMatt Fleming /* 'addr' is the memory table address. */ 23*fad57febSMatt Fleming return addr; 24*fad57febSMatt Fleming } 25*fad57febSMatt Fleming #endif 26*fad57febSMatt Fleming 27*fad57febSMatt Fleming #endif /* CONFIG_FUNCTION_TRACER */ 28*fad57febSMatt Fleming 294b4cf759SPaul Mundt #endif /* __ASM_SH_FTRACE_H */ 30