1d75f054a2cf0614ff63d534ff21ca8eaab41e713Helge Deller#ifndef _ASM_PARISC_FTRACE_H 2d75f054a2cf0614ff63d534ff21ca8eaab41e713Helge Deller#define _ASM_PARISC_FTRACE_H 3d75f054a2cf0614ff63d534ff21ca8eaab41e713Helge Deller 4d75f054a2cf0614ff63d534ff21ca8eaab41e713Helge Deller#ifndef __ASSEMBLY__ 5d75f054a2cf0614ff63d534ff21ca8eaab41e713Helge Dellerextern void mcount(void); 6d75f054a2cf0614ff63d534ff21ca8eaab41e713Helge Deller 7d75f054a2cf0614ff63d534ff21ca8eaab41e713Helge Deller/* 8d75f054a2cf0614ff63d534ff21ca8eaab41e713Helge Deller * Stack of return addresses for functions of a thread. 9d75f054a2cf0614ff63d534ff21ca8eaab41e713Helge Deller * Used in struct thread_info 10d75f054a2cf0614ff63d534ff21ca8eaab41e713Helge Deller */ 11d75f054a2cf0614ff63d534ff21ca8eaab41e713Helge Dellerstruct ftrace_ret_stack { 12d75f054a2cf0614ff63d534ff21ca8eaab41e713Helge Deller unsigned long ret; 13d75f054a2cf0614ff63d534ff21ca8eaab41e713Helge Deller unsigned long func; 14d75f054a2cf0614ff63d534ff21ca8eaab41e713Helge Deller unsigned long long calltime; 15d75f054a2cf0614ff63d534ff21ca8eaab41e713Helge Deller}; 16d75f054a2cf0614ff63d534ff21ca8eaab41e713Helge Deller 17d75f054a2cf0614ff63d534ff21ca8eaab41e713Helge Deller/* 18d75f054a2cf0614ff63d534ff21ca8eaab41e713Helge Deller * Primary handler of a function return. 19d75f054a2cf0614ff63d534ff21ca8eaab41e713Helge Deller * It relays on ftrace_return_to_handler. 20d75f054a2cf0614ff63d534ff21ca8eaab41e713Helge Deller * Defined in entry.S 21d75f054a2cf0614ff63d534ff21ca8eaab41e713Helge Deller */ 22d75f054a2cf0614ff63d534ff21ca8eaab41e713Helge Dellerextern void return_to_handler(void); 2311e178091f6a9c5ca479f8a276b9dd0dfacf8fc4Helge Deller 2411e178091f6a9c5ca479f8a276b9dd0dfacf8fc4Helge Deller 2511e178091f6a9c5ca479f8a276b9dd0dfacf8fc4Helge Dellerextern unsigned long return_address(unsigned int); 2611e178091f6a9c5ca479f8a276b9dd0dfacf8fc4Helge Deller 2711e178091f6a9c5ca479f8a276b9dd0dfacf8fc4Helge Deller#define HAVE_ARCH_CALLER_ADDR 2811e178091f6a9c5ca479f8a276b9dd0dfacf8fc4Helge Deller 2911e178091f6a9c5ca479f8a276b9dd0dfacf8fc4Helge Deller#define CALLER_ADDR0 ((unsigned long)__builtin_return_address(0)) 3011e178091f6a9c5ca479f8a276b9dd0dfacf8fc4Helge Deller#define CALLER_ADDR1 return_address(1) 3111e178091f6a9c5ca479f8a276b9dd0dfacf8fc4Helge Deller#define CALLER_ADDR2 return_address(2) 3211e178091f6a9c5ca479f8a276b9dd0dfacf8fc4Helge Deller#define CALLER_ADDR3 return_address(3) 3311e178091f6a9c5ca479f8a276b9dd0dfacf8fc4Helge Deller#define CALLER_ADDR4 return_address(4) 3411e178091f6a9c5ca479f8a276b9dd0dfacf8fc4Helge Deller#define CALLER_ADDR5 return_address(5) 3511e178091f6a9c5ca479f8a276b9dd0dfacf8fc4Helge Deller#define CALLER_ADDR6 return_address(6) 3611e178091f6a9c5ca479f8a276b9dd0dfacf8fc4Helge Deller 37d75f054a2cf0614ff63d534ff21ca8eaab41e713Helge Deller#endif /* __ASSEMBLY__ */ 38d75f054a2cf0614ff63d534ff21ca8eaab41e713Helge Deller 39d75f054a2cf0614ff63d534ff21ca8eaab41e713Helge Deller#endif /* _ASM_PARISC_FTRACE_H */ 40