1*4d9fdb46SRobert Mustacchi /* 2*4d9fdb46SRobert Mustacchi 3*4d9fdb46SRobert Mustacchi Copyright (C) 2015-2015 David Anderson. All Rights Reserved. 4*4d9fdb46SRobert Mustacchi 5*4d9fdb46SRobert Mustacchi This program is free software; you can redistribute it and/or modify it 6*4d9fdb46SRobert Mustacchi under the terms of version 2.1 of the GNU Lesser General Public License 7*4d9fdb46SRobert Mustacchi as published by the Free Software Foundation. 8*4d9fdb46SRobert Mustacchi 9*4d9fdb46SRobert Mustacchi This program is distributed in the hope that it would be useful, but 10*4d9fdb46SRobert Mustacchi WITHOUT ANY WARRANTY; without even the implied warranty of 11*4d9fdb46SRobert Mustacchi MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12*4d9fdb46SRobert Mustacchi 13*4d9fdb46SRobert Mustacchi Further, this software is distributed without any warranty that it is 14*4d9fdb46SRobert Mustacchi free of the rightful claim of any third person regarding infringement 15*4d9fdb46SRobert Mustacchi or the like. Any license provided herein, whether implied or 16*4d9fdb46SRobert Mustacchi otherwise, applies only to this software file. Patent licenses, if 17*4d9fdb46SRobert Mustacchi any, provided herein do not apply to combinations of this program with 18*4d9fdb46SRobert Mustacchi other software, or any other product whatsoever. 19*4d9fdb46SRobert Mustacchi 20*4d9fdb46SRobert Mustacchi You should have received a copy of the GNU Lesser General Public 21*4d9fdb46SRobert Mustacchi License along with this program; if not, write the Free Software 22*4d9fdb46SRobert Mustacchi Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301, 23*4d9fdb46SRobert Mustacchi USA. 24*4d9fdb46SRobert Mustacchi 25*4d9fdb46SRobert Mustacchi */ 26*4d9fdb46SRobert Mustacchi 27*4d9fdb46SRobert Mustacchi 28*4d9fdb46SRobert Mustacchi 29*4d9fdb46SRobert Mustacchi #define HASHSEARCH 30*4d9fdb46SRobert Mustacchi 31*4d9fdb46SRobert Mustacchi #ifdef HASHSEARCH 32*4d9fdb46SRobert Mustacchi /* Only needed for hash based search in a tsearch style. */ 33*4d9fdb46SRobert Mustacchi #define INITTREE(x,y) x = dwarf_initialize_search_hash(&(x),(y),0) 34*4d9fdb46SRobert Mustacchi #else 35*4d9fdb46SRobert Mustacchi #define INITTREE(x,y) 36*4d9fdb46SRobert Mustacchi #endif /* HASHSEARCH */ 37*4d9fdb46SRobert Mustacchi 38*4d9fdb46SRobert Mustacchi 39*4d9fdb46SRobert Mustacchi /* Contexts are in a list in a dbg and 40*4d9fdb46SRobert Mustacchi do not move once established. 41*4d9fdb46SRobert Mustacchi So saving one is ok. as long as the dbg 42*4d9fdb46SRobert Mustacchi exists. */ 43*4d9fdb46SRobert Mustacchi struct Dwarf_Tied_Entry_s { 44*4d9fdb46SRobert Mustacchi Dwarf_Sig8 dt_key; 45*4d9fdb46SRobert Mustacchi Dwarf_CU_Context dt_context; 46*4d9fdb46SRobert Mustacchi }; 47*4d9fdb46SRobert Mustacchi 48*4d9fdb46SRobert Mustacchi int _dwarf_tied_compare_function(const void *l, const void *r); 49*4d9fdb46SRobert Mustacchi void * _dwarf_tied_make_entry(Dwarf_Sig8 *key, Dwarf_CU_Context val); 50*4d9fdb46SRobert Mustacchi DW_TSHASHTYPE _dwarf_tied_data_hashfunc(const void *keyp); 51*4d9fdb46SRobert Mustacchi 52*4d9fdb46SRobert Mustacchi int 53*4d9fdb46SRobert Mustacchi _dwarf_loop_reading_debug_info_for_cu( 54*4d9fdb46SRobert Mustacchi Dwarf_Debug tieddbg, 55*4d9fdb46SRobert Mustacchi Dwarf_Sig8 sig, 56*4d9fdb46SRobert Mustacchi Dwarf_Error *error); 57