xref: /openbmc/linux/arch/parisc/include/asm/ftrace.h (revision c900529f3d9161bfde5cca0754f83b4d3c3e0220)
1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
2d75f054aSHelge Deller #ifndef _ASM_PARISC_FTRACE_H
3d75f054aSHelge Deller #define _ASM_PARISC_FTRACE_H
4d75f054aSHelge Deller 
5d75f054aSHelge Deller #ifndef __ASSEMBLY__
6d75f054aSHelge Deller extern void mcount(void);
7d75f054aSHelge Deller 
86ca63662SSven Schnelle #define MCOUNT_ADDR		((unsigned long)mcount)
9366dd4eaSHelge Deller #define MCOUNT_INSN_SIZE	4
106ca63662SSven Schnelle #define CC_USING_NOP_MCOUNT
11d562aca3SSven Schnelle #define ARCH_SUPPORTS_FTRACE_OPS 1
12fc79168aSHelge Deller extern unsigned long sys_call_table[];
13fc79168aSHelge Deller 
1411e17809SHelge Deller extern unsigned long return_address(unsigned int);
15*2794f8ecSHelge Deller struct ftrace_regs;
16*2794f8ecSHelge Deller extern void ftrace_function_trampoline(unsigned long parent,
17*2794f8ecSHelge Deller 		unsigned long self_addr, unsigned long org_sp_gr3,
18*2794f8ecSHelge Deller 		struct ftrace_regs *fregs);
1911e17809SHelge Deller 
206ca63662SSven Schnelle #ifdef CONFIG_DYNAMIC_FTRACE
216ca63662SSven Schnelle extern void ftrace_caller(void);
226ca63662SSven Schnelle 
236ca63662SSven Schnelle struct dyn_arch_ftrace {
246ca63662SSven Schnelle };
256ca63662SSven Schnelle 
266ca63662SSven Schnelle unsigned long ftrace_call_adjust(unsigned long addr);
276ca63662SSven Schnelle 
286ca63662SSven Schnelle #endif
296ca63662SSven Schnelle 
30eed542d6SAKASHI Takahiro #define ftrace_return_address(n) return_address(n)
3111e17809SHelge Deller 
32d75f054aSHelge Deller #endif /* __ASSEMBLY__ */
33d75f054aSHelge Deller 
34d75f054aSHelge Deller #endif /* _ASM_PARISC_FTRACE_H */
35