]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - gdb/libunwind-frame.h
*** empty log message ***
[thirdparty/binutils-gdb.git] / gdb / libunwind-frame.h
CommitLineData
0e5d83e3
JJ
1/* Frame unwinder for frames with libunwind frame information.
2
6aba47ca 3 Copyright (C) 2003, 2006, 2007 Free Software Foundation, Inc.
0e5d83e3
JJ
4
5 Contributed by Jeff Johnston.
6
7 This file is part of GDB.
8
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
a9762ec7 11 the Free Software Foundation; either version 3 of the License, or
0e5d83e3
JJ
12 (at your option) any later version.
13
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
18
19 You should have received a copy of the GNU General Public License
a9762ec7 20 along with this program. If not, see <http://www.gnu.org/licenses/>. */
0e5d83e3
JJ
21
22#ifdef HAVE_LIBUNWIND_H
23
5439edaa
AC
24struct frame_info;
25struct frame_id;
45ecac4b 26struct regcache;
c5a27d9c 27struct gdbarch;
5439edaa 28
0e5d83e3
JJ
29#ifndef LIBUNWIND_FRAME_H
30#define LIBUNWIND_FRAME_H 1
31
32#include "libunwind.h"
33
0e5d83e3
JJ
34struct libunwind_descr
35{
36 int (*gdb2uw) (int);
37 int (*uw2gdb) (int);
38 int (*is_fpreg) (int);
39 void *accessors;
c5a27d9c 40 void *special_accessors;
0e5d83e3
JJ
41};
42
43const struct frame_unwind *libunwind_frame_sniffer (struct frame_info *next_frame);
c5a27d9c 44const struct frame_unwind *libunwind_sigtramp_frame_sniffer (struct frame_info *next_frame);
0e5d83e3
JJ
45
46void libunwind_frame_set_descr (struct gdbarch *arch, struct libunwind_descr *descr);
47
48void libunwind_frame_this_id (struct frame_info *next_frame, void **this_cache,
49 struct frame_id *this_id);
50void libunwind_frame_prev_register (struct frame_info *next_frame, void **this_cache,
51 int regnum, int *optimizedp,
52 enum lval_type *lvalp, CORE_ADDR *addrp,
f1b4b38e 53 int *realnump, gdb_byte *valuep);
272dfcfd 54void libunwind_frame_dealloc_cache (struct frame_info *self, void *cache);
0e5d83e3
JJ
55CORE_ADDR libunwind_frame_base_address (struct frame_info *next_frame, void **this_cache);
56
57int libunwind_is_initialized (void);
58
59int libunwind_search_unwind_table (void *as, long ip, void *di,
60 void *pi, int need_unwind_info, void *args);
61
503ff15d
KB
62unw_word_t libunwind_find_dyn_list (unw_addr_space_t, unw_dyn_info_t *,
63 void *);
64
45ecac4b
UW
65int libunwind_get_reg_special (struct gdbarch *gdbarch,
66 struct regcache *regcache,
67 int regnum, void *buf);
c5a27d9c 68
0e5d83e3
JJ
69#endif /* libunwind-frame.h */
70
71#endif /* HAVE_LIBUNWIND_H */