1#ifndef __UNWIND_H
2#define __UNWIND_H
3
4#include "types.h"
5#include "event.h"
6#include "symbol.h"
7
8struct unwind_entry {
9	struct map	*map;
10	struct symbol	*sym;
11	u64		ip;
12};
13
14typedef int (*unwind_entry_cb_t)(struct unwind_entry *entry, void *arg);
15
16#ifdef LIBUNWIND_SUPPORT
17int 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);
22int unwind__arch_reg_id(int regnum);
23#else
24static inline int
25unwind__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