1*71ad0f5eSJiri Olsa #ifndef __UNWIND_H 2*71ad0f5eSJiri Olsa #define __UNWIND_H 3*71ad0f5eSJiri Olsa 4*71ad0f5eSJiri Olsa #include "types.h" 5*71ad0f5eSJiri Olsa #include "event.h" 6*71ad0f5eSJiri Olsa #include "symbol.h" 7*71ad0f5eSJiri Olsa 8*71ad0f5eSJiri Olsa struct unwind_entry { 9*71ad0f5eSJiri Olsa struct map *map; 10*71ad0f5eSJiri Olsa struct symbol *sym; 11*71ad0f5eSJiri Olsa u64 ip; 12*71ad0f5eSJiri Olsa }; 13*71ad0f5eSJiri Olsa 14*71ad0f5eSJiri Olsa typedef int (*unwind_entry_cb_t)(struct unwind_entry *entry, void *arg); 15*71ad0f5eSJiri Olsa 16*71ad0f5eSJiri Olsa #ifndef NO_LIBUNWIND_SUPPORT 17*71ad0f5eSJiri Olsa int unwind__get_entries(unwind_entry_cb_t cb, void *arg, 18*71ad0f5eSJiri Olsa struct machine *machine, 19*71ad0f5eSJiri Olsa struct thread *thread, 20*71ad0f5eSJiri Olsa u64 sample_uregs, 21*71ad0f5eSJiri Olsa struct perf_sample *data); 22*71ad0f5eSJiri Olsa int unwind__arch_reg_id(int regnum); 23*71ad0f5eSJiri Olsa #else 24*71ad0f5eSJiri Olsa static inline int 25*71ad0f5eSJiri Olsa unwind__get_entries(unwind_entry_cb_t cb __used, void *arg __used, 26*71ad0f5eSJiri Olsa struct machine *machine __used, 27*71ad0f5eSJiri Olsa struct thread *thread __used, 28*71ad0f5eSJiri Olsa u64 sample_uregs __used, 29*71ad0f5eSJiri Olsa struct perf_sample *data __used) 30*71ad0f5eSJiri Olsa { 31*71ad0f5eSJiri Olsa return 0; 32*71ad0f5eSJiri Olsa } 33*71ad0f5eSJiri Olsa #endif /* NO_LIBUNWIND_SUPPORT */ 34*71ad0f5eSJiri Olsa #endif /* __UNWIND_H */ 35