Merge tag 'drm-intel-fixes-2014-06-17' of git://anongit.freedesktop.org/drm-intel...
[cascardo/linux.git] / tools / perf / util / unwind.h
1 #ifndef __UNWIND_H
2 #define __UNWIND_H
3
4 #include <linux/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 HAVE_DWARF_UNWIND_SUPPORT
17 int unwind__get_entries(unwind_entry_cb_t cb, void *arg,
18                         struct machine *machine,
19                         struct thread *thread,
20                         struct perf_sample *data, int max_stack);
21 /* libunwind specific */
22 #ifdef HAVE_LIBUNWIND_SUPPORT
23 int libunwind__arch_reg_id(int regnum);
24 #endif
25 #else
26 static inline int
27 unwind__get_entries(unwind_entry_cb_t cb __maybe_unused,
28                     void *arg __maybe_unused,
29                     struct machine *machine __maybe_unused,
30                     struct thread *thread __maybe_unused,
31                     struct perf_sample *data __maybe_unused,
32                     int max_stack __maybe_unused)
33 {
34         return 0;
35 }
36 #endif /* HAVE_DWARF_UNWIND_SUPPORT */
37 #endif /* __UNWIND_H */