xref: /openbmc/linux/arch/parisc/include/asm/ftrace.h (revision a09d2831)
1 #ifndef _ASM_PARISC_FTRACE_H
2 #define _ASM_PARISC_FTRACE_H
3 
4 #ifndef __ASSEMBLY__
5 extern void mcount(void);
6 
7 /*
8  * Stack of return addresses for functions of a thread.
9  * Used in struct thread_info
10  */
11 struct ftrace_ret_stack {
12 	unsigned long ret;
13 	unsigned long func;
14 	unsigned long long calltime;
15 };
16 
17 /*
18  * Primary handler of a function return.
19  * It relays on ftrace_return_to_handler.
20  * Defined in entry.S
21  */
22 extern void return_to_handler(void);
23 
24 
25 extern unsigned long return_address(unsigned int);
26 
27 #define HAVE_ARCH_CALLER_ADDR
28 
29 #define CALLER_ADDR0 ((unsigned long)__builtin_return_address(0))
30 #define CALLER_ADDR1 return_address(1)
31 #define CALLER_ADDR2 return_address(2)
32 #define CALLER_ADDR3 return_address(3)
33 #define CALLER_ADDR4 return_address(4)
34 #define CALLER_ADDR5 return_address(5)
35 #define CALLER_ADDR6 return_address(6)
36 
37 #endif /* __ASSEMBLY__ */
38 
39 #endif /* _ASM_PARISC_FTRACE_H */
40