| #ifndef __UNWIND_H | |
| #define __UNWIND_H | |
| #include "types.h" | |
| #include "event.h" | |
| #include "symbol.h" | |
| struct unwind_entry { | |
| struct map *map; | |
| struct symbol *sym; | |
| u64 ip; | |
| }; | |
| typedef int (*unwind_entry_cb_t)(struct unwind_entry *entry, void *arg); | |
| #ifdef LIBUNWIND_SUPPORT | |
| int unwind__get_entries(unwind_entry_cb_t cb, void *arg, | |
| struct machine *machine, | |
| struct thread *thread, | |
| u64 sample_uregs, | |
| struct perf_sample *data); | |
| int unwind__arch_reg_id(int regnum); | |
| #else | |
| static inline int | |
| unwind__get_entries(unwind_entry_cb_t cb __maybe_unused, | |
| void *arg __maybe_unused, | |
| struct machine *machine __maybe_unused, | |
| struct thread *thread __maybe_unused, | |
| u64 sample_uregs __maybe_unused, | |
| struct perf_sample *data __maybe_unused) | |
| { | |
| return 0; | |
| } | |
| #endif /* LIBUNWIND_SUPPORT */ | |
| #endif /* __UNWIND_H */ |