xref: /openbmc/linux/arch/sparc/include/asm/ftrace.h (revision f2cc020d)
1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
2a439fe51SSam Ravnborg #ifndef _ASM_SPARC64_FTRACE
3a439fe51SSam Ravnborg #define _ASM_SPARC64_FTRACE
4a439fe51SSam Ravnborg 
5a439fe51SSam Ravnborg #ifdef CONFIG_MCOUNT
6c93bf928SMinfei Huang #define MCOUNT_ADDR		((unsigned long)(_mcount))
7a439fe51SSam Ravnborg #define MCOUNT_INSN_SIZE	4 /* sizeof mcount call */
8a439fe51SSam Ravnborg 
9a439fe51SSam Ravnborg #ifndef __ASSEMBLY__
10f05a6865SSam Ravnborg void _mcount(void);
11a439fe51SSam Ravnborg #endif
12a439fe51SSam Ravnborg 
13e4a744efSJosh Poimboeuf #endif /* CONFIG_MCOUNT */
14e4a744efSJosh Poimboeuf 
15e4a744efSJosh Poimboeuf #if defined(CONFIG_SPARC64) && !defined(CC_USE_FENTRY)
16e4a744efSJosh Poimboeuf #define HAVE_FUNCTION_GRAPH_FP_TEST
17a439fe51SSam Ravnborg #endif
18a439fe51SSam Ravnborg 
199be12f9bSDavid S. Miller #ifdef CONFIG_DYNAMIC_FTRACE
20*f2cc020dSIngo Molnar /* relocation of mcount call site is the same as the address */
ftrace_call_adjust(unsigned long addr)219be12f9bSDavid S. Miller static inline unsigned long ftrace_call_adjust(unsigned long addr)
229be12f9bSDavid S. Miller {
239be12f9bSDavid S. Miller 	return addr;
249be12f9bSDavid S. Miller }
259be12f9bSDavid S. Miller 
269be12f9bSDavid S. Miller struct dyn_arch_ftrace {
279be12f9bSDavid S. Miller };
289be12f9bSDavid S. Miller #endif /*  CONFIG_DYNAMIC_FTRACE */
299be12f9bSDavid S. Miller 
30b6abce1fSSam Ravnborg unsigned long prepare_ftrace_return(unsigned long parent,
31b6abce1fSSam Ravnborg 				    unsigned long self_addr,
32b6abce1fSSam Ravnborg 				    unsigned long frame_pointer);
33b6abce1fSSam Ravnborg 
34a439fe51SSam Ravnborg #endif /* _ASM_SPARC64_FTRACE */
35