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