1130803Smarcel/* Frame unwinder for frames with libunwind frame information. 2130803Smarcel 3130803Smarcel Copyright 2003 Free Software Foundation, Inc. 4130803Smarcel 5130803Smarcel Contributed by Jeff Johnston. 6130803Smarcel 7130803Smarcel This file is part of GDB. 8130803Smarcel 9130803Smarcel This program is free software; you can redistribute it and/or modify 10130803Smarcel it under the terms of the GNU General Public License as published by 11130803Smarcel the Free Software Foundation; either version 2 of the License, or 12130803Smarcel (at your option) any later version. 13130803Smarcel 14130803Smarcel This program is distributed in the hope that it will be useful, 15130803Smarcel but WITHOUT ANY WARRANTY; without even the implied warranty of 16130803Smarcel MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17130803Smarcel GNU General Public License for more details. 18130803Smarcel 19130803Smarcel You should have received a copy of the GNU General Public License 20130803Smarcel along with this program; if not, write to the Free Software 21130803Smarcel Foundation, Inc., 59 Temple Place - Suite 330, 22130803Smarcel Boston, MA 02111-1307, USA. */ 23130803Smarcel 24130803Smarcel#ifdef HAVE_LIBUNWIND_H 25130803Smarcel 26130803Smarcelstruct frame_info; 27130803Smarcelstruct frame_id; 28130803Smarcel 29130803Smarcel#ifndef LIBUNWIND_FRAME_H 30130803Smarcel#define LIBUNWIND_FRAME_H 1 31130803Smarcel 32130803Smarcel#include "libunwind.h" 33130803Smarcel 34130803Smarcelstruct libunwind_descr 35130803Smarcel{ 36130803Smarcel int (*gdb2uw) (int); 37130803Smarcel int (*uw2gdb) (int); 38130803Smarcel int (*is_fpreg) (int); 39130803Smarcel void *accessors; 40130803Smarcel}; 41130803Smarcel 42130803Smarcelconst struct frame_unwind *libunwind_frame_sniffer (struct frame_info *next_frame); 43130803Smarcel 44130803Smarcelvoid libunwind_frame_set_descr (struct gdbarch *arch, struct libunwind_descr *descr); 45130803Smarcel 46130803Smarcelvoid libunwind_frame_this_id (struct frame_info *next_frame, void **this_cache, 47130803Smarcel struct frame_id *this_id); 48130803Smarcelvoid libunwind_frame_prev_register (struct frame_info *next_frame, void **this_cache, 49130803Smarcel int regnum, int *optimizedp, 50130803Smarcel enum lval_type *lvalp, CORE_ADDR *addrp, 51130803Smarcel int *realnump, void *valuep); 52130803SmarcelCORE_ADDR libunwind_frame_base_address (struct frame_info *next_frame, void **this_cache); 53130803Smarcel 54130803Smarcelint libunwind_is_initialized (void); 55130803Smarcel 56130803Smarcelint libunwind_search_unwind_table (void *as, long ip, void *di, 57130803Smarcel void *pi, int need_unwind_info, void *args); 58130803Smarcel 59130803Smarcelunw_word_t libunwind_find_dyn_list (unw_addr_space_t, unw_dyn_info_t *, 60130803Smarcel void *); 61130803Smarcel 62130803Smarcel#endif /* libunwind-frame.h */ 63130803Smarcel 64130803Smarcel#endif /* HAVE_LIBUNWIND_H */ 65