18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
28c2ecf20Sopenharmony_ci#ifndef _ASM_MICROBLAZE_FTRACE
38c2ecf20Sopenharmony_ci#define _ASM_MICROBLAZE_FTRACE
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_ci#ifdef CONFIG_FUNCTION_TRACER
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ci#define MCOUNT_ADDR		((unsigned long)(_mcount))
88c2ecf20Sopenharmony_ci#define MCOUNT_INSN_SIZE	8 /* sizeof mcount call */
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ci#ifndef __ASSEMBLY__
118c2ecf20Sopenharmony_ciextern void _mcount(void);
128c2ecf20Sopenharmony_ciextern void ftrace_call_graph(void);
138c2ecf20Sopenharmony_ci#endif
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_ci#ifdef CONFIG_DYNAMIC_FTRACE
168c2ecf20Sopenharmony_ci/* reloction of mcount call site is the same as the address */
178c2ecf20Sopenharmony_cistatic inline unsigned long ftrace_call_adjust(unsigned long addr)
188c2ecf20Sopenharmony_ci{
198c2ecf20Sopenharmony_ci	return addr;
208c2ecf20Sopenharmony_ci}
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_cistruct dyn_arch_ftrace {
238c2ecf20Sopenharmony_ci};
248c2ecf20Sopenharmony_ci#endif /* CONFIG_DYNAMIC_FTRACE */
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ci#endif /* CONFIG_FUNCTION_TRACER */
278c2ecf20Sopenharmony_ci#endif /* _ASM_MICROBLAZE_FTRACE */
28