blob: 1f157b86eaa7a188cd2203a9eebe5888c259acdb [file] [log] [blame]
Paul Mundt4b4cf752008-09-21 17:17:53 +09001#ifndef __ASM_SH_FTRACE_H
2#define __ASM_SH_FTRACE_H
3
Matt Flemingfad57fe2008-11-12 20:11:47 +09004#ifdef CONFIG_FUNCTION_TRACER
5
6#define MCOUNT_INSN_SIZE 4 /* sizeof mcount call */
Paul Mundtc68e3202009-08-25 18:39:33 +09007#define FTRACE_SYSCALL_MAX NR_syscalls
Matt Flemingfad57fe2008-11-12 20:11:47 +09008
Paul Mundt4b4cf752008-09-21 17:17:53 +09009#ifndef __ASSEMBLY__
10extern void mcount(void);
Matt Flemingfad57fe2008-11-12 20:11:47 +090011
Minfei Huangc93bf922015-07-12 17:52:24 +080012#define MCOUNT_ADDR ((unsigned long)(mcount))
Matt Flemingfad57fe2008-11-12 20:11:47 +090013
14#ifdef CONFIG_DYNAMIC_FTRACE
Matt Flemingca0d1722009-06-28 12:53:07 +010015#define CALL_ADDR ((long)(ftrace_call))
Matt Flemingfad57fe2008-11-12 20:11:47 +090016#define STUB_ADDR ((long)(ftrace_stub))
Matt Fleming327933f2009-07-11 00:29:03 +000017#define GRAPH_ADDR ((long)(ftrace_graph_call))
18#define CALLER_ADDR ((long)(ftrace_caller))
Matt Flemingfad57fe2008-11-12 20:11:47 +090019
Matt Flemingca0d1722009-06-28 12:53:07 +010020#define MCOUNT_INSN_OFFSET ((STUB_ADDR - CALL_ADDR) - 4)
Matt Fleming327933f2009-07-11 00:29:03 +000021#define GRAPH_INSN_OFFSET ((CALLER_ADDR - GRAPH_ADDR) - 4)
Paul Mundt22f131a2008-11-27 11:04:43 +090022
23struct dyn_arch_ftrace {
24 /* No extra data needed on sh */
25};
26
27#endif /* CONFIG_DYNAMIC_FTRACE */
Paul Mundt4b4cf752008-09-21 17:17:53 +090028
Matt Flemingfad57fe2008-11-12 20:11:47 +090029static inline unsigned long ftrace_call_adjust(unsigned long addr)
30{
31 /* 'addr' is the memory table address. */
32 return addr;
33}
Matt Flemingfad57fe2008-11-12 20:11:47 +090034
Paul Mundt36c87192009-10-14 11:49:49 +090035#endif /* __ASSEMBLY__ */
36#endif /* CONFIG_FUNCTION_TRACER */
37
38#ifndef __ASSEMBLY__
39
Paul Mundtac4fac82009-10-13 13:10:14 +090040/* arch/sh/kernel/return_address.c */
41extern void *return_address(unsigned int);
Matt Flemingd26cddb2009-10-11 17:56:17 +010042
AKASHI Takahiroeed542d2014-05-20 20:31:04 +090043#define ftrace_return_address(n) return_address(n)
Matt Flemingd26cddb2009-10-11 17:56:17 +010044
Paul Mundt22f131a2008-11-27 11:04:43 +090045#endif /* __ASSEMBLY__ */
Matt Flemingfad57fe2008-11-12 20:11:47 +090046
Paul Mundt4b4cf752008-09-21 17:17:53 +090047#endif /* __ASM_SH_FTRACE_H */