ftrace.h (1138B)
1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifndef __ASM_SH_FTRACE_H 3#define __ASM_SH_FTRACE_H 4 5#ifdef CONFIG_FUNCTION_TRACER 6 7#define MCOUNT_INSN_SIZE 4 /* sizeof mcount call */ 8#define FTRACE_SYSCALL_MAX NR_syscalls 9 10#ifndef __ASSEMBLY__ 11extern void mcount(void); 12 13#define MCOUNT_ADDR ((unsigned long)(mcount)) 14 15#ifdef CONFIG_DYNAMIC_FTRACE 16#define CALL_ADDR ((long)(ftrace_call)) 17#define STUB_ADDR ((long)(ftrace_stub)) 18#define GRAPH_ADDR ((long)(ftrace_graph_call)) 19#define CALLER_ADDR ((long)(ftrace_caller)) 20 21#define MCOUNT_INSN_OFFSET ((STUB_ADDR - CALL_ADDR) - 4) 22#define GRAPH_INSN_OFFSET ((CALLER_ADDR - GRAPH_ADDR) - 4) 23 24struct dyn_arch_ftrace { 25 /* No extra data needed on sh */ 26}; 27 28#endif /* CONFIG_DYNAMIC_FTRACE */ 29 30static inline unsigned long ftrace_call_adjust(unsigned long addr) 31{ 32 /* 'addr' is the memory table address. */ 33 return addr; 34} 35 36#endif /* __ASSEMBLY__ */ 37#endif /* CONFIG_FUNCTION_TRACER */ 38 39#ifndef __ASSEMBLY__ 40 41/* arch/sh/kernel/return_address.c */ 42extern void *return_address(unsigned int); 43 44#define ftrace_return_address(n) return_address(n) 45 46#endif /* __ASSEMBLY__ */ 47 48#endif /* __ASM_SH_FTRACE_H */