1 /* Frame unwinder for frames with libunwind frame information. 2 3 Copyright 2003 Free Software Foundation, Inc. 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 11 the Free Software Foundation; either version 2 of the License, or 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 20 along with this program; if not, write to the Free Software 21 Foundation, Inc., 59 Temple Place - Suite 330, 22 Boston, MA 02111-1307, USA. */ 23 24 #ifdef HAVE_LIBUNWIND_H 25 26 struct frame_info; 27 struct frame_id; 28 29 #ifndef LIBUNWIND_FRAME_H 30 #define LIBUNWIND_FRAME_H 1 31 32 #include "libunwind.h" 33 34 struct libunwind_descr 35 { 36 int (*gdb2uw) (int); 37 int (*uw2gdb) (int); 38 int (*is_fpreg) (int); 39 void *accessors; 40 }; 41 42 const struct frame_unwind *libunwind_frame_sniffer (struct frame_info *next_frame); 43 44 void libunwind_frame_set_descr (struct gdbarch *arch, struct libunwind_descr *descr); 45 46 void libunwind_frame_this_id (struct frame_info *next_frame, void **this_cache, 47 struct frame_id *this_id); 48 void libunwind_frame_prev_register (struct frame_info *next_frame, void **this_cache, 49 int regnum, int *optimizedp, 50 enum lval_type *lvalp, CORE_ADDR *addrp, 51 int *realnump, void *valuep); 52 CORE_ADDR libunwind_frame_base_address (struct frame_info *next_frame, void **this_cache); 53 54 int libunwind_is_initialized (void); 55 56 int libunwind_search_unwind_table (void *as, long ip, void *di, 57 void *pi, int need_unwind_info, void *args); 58 59 unw_word_t libunwind_find_dyn_list (unw_addr_space_t, unw_dyn_info_t *, 60 void *); 61 62 #endif /* libunwind-frame.h */ 63 64 #endif /* HAVE_LIBUNWIND_H */ 65