Lines Matching refs:mod
40 dwar (Dwfl_Module *mod, unsigned int idx) in dwar() argument
42 return &mod->dw->aranges->info[mod->aranges[idx].arange]; in dwar()
47 addrarange (Dwfl_Module *mod, Dwarf_Addr addr, struct dwfl_arange **arange) in addrarange() argument
49 if (mod->aranges == NULL) in addrarange()
54 if (INTUSE(dwarf_getaranges) (mod->dw, &dwaranges, &naranges) != 0) in addrarange()
85 mod->naranges = naranges; in addrarange()
87 mod->aranges = (realloc (aranges, naranges * sizeof aranges[0]) in addrarange()
91 mod->lazycu += naranges; in addrarange()
95 addr = dwfl_deadjust_dwarf_addr (mod, addr); in addrarange()
98 size_t l = 0, u = mod->naranges; in addrarange()
102 Dwarf_Addr start = dwar (mod, idx)->addr; in addrarange()
110 if (idx + 1 < mod->naranges) in addrarange()
112 if (addr >= dwar (mod, idx + 1)->addr) in addrarange()
122 = &mod->dw->aranges->info[mod->dw->aranges->naranges - 1]; in addrarange()
128 *arange = &mod->aranges[idx]; in addrarange()
143 assert (cu->mod->lazycu == 0); in nofree()
148 less_lazy (Dwfl_Module *mod) in less_lazy() argument
150 if (--mod->lazycu > 0) in less_lazy()
154 tdestroy (mod->lazy_cu_root, nofree); in less_lazy()
155 mod->lazy_cu_root = NULL; in less_lazy()
174 intern_cu (Dwfl_Module *mod, Dwarf_Off cuoff, struct dwfl_cu **result) in intern_cu() argument
176 if (unlikely (cuoff + 4 >= mod->dw->sectiondata[IDX_debug_info]->d_size)) in intern_cu()
178 if (likely (mod->lazycu == 1)) in intern_cu()
183 less_lazy (mod); in intern_cu()
195 Dwarf_Die *die = INTUSE(dwarf_offdie) (mod->dw, cuoff, &cudie); in intern_cu()
201 struct dwfl_cu **found = tsearch (&key, &mod->lazy_cu_root, &compare_cukey); in intern_cu()
215 cu->mod = mod; in intern_cu()
220 struct dwfl_cu **newvec = realloc (mod->cu, ((mod->ncu + 1) in intern_cu()
221 * sizeof (mod->cu[0]))); in intern_cu()
227 mod->cu = newvec; in intern_cu()
229 mod->cu[mod->ncu++] = cu; in intern_cu()
231 mod->first_cu = cu; in intern_cu()
245 __libdwfl_nextcu (Dwfl_Module *mod, struct dwfl_cu *lastcu, in __libdwfl_nextcu() argument
255 nextp = &mod->first_cu; in __libdwfl_nextcu()
268 int end = INTUSE(dwarf_nextcu) (mod->dw, cuoff, &nextoff, &cuhdrsz, in __libdwfl_nextcu()
278 Dwfl_Error result = intern_cu (mod, cuoff + cuhdrsz, nextp); in __libdwfl_nextcu()
295 arangecu (Dwfl_Module *mod, struct dwfl_arange *arange, struct dwfl_cu **cu) in arangecu() argument
299 const Dwarf_Arange *dwarange = &mod->dw->aranges->info[arange->arange]; in arangecu()
300 Dwfl_Error result = intern_cu (mod, dwarange->offset, &arange->cu); in arangecu()
304 less_lazy (mod); /* Each arange with null ->cu counts once. */ in arangecu()
313 __libdwfl_addrcu (Dwfl_Module *mod, Dwarf_Addr addr, struct dwfl_cu **cu) in __libdwfl_addrcu() argument
316 return addrarange (mod, addr, &arange) ?: arangecu (mod, arange, cu); in __libdwfl_addrcu()