Lines Matching refs:symtab

107 	struct symtab *symtab;  member
123 (void)gelf_getsym(thunk->symtab->data, i1, &sym1); in symvalcmp()
124 (void)gelf_getsym(thunk->symtab->data, i2, &sym2); in symvalcmp()
139 s1 = elf_strptr(thunk->e, thunk->symtab->stridx, sym1.st_name); in symvalcmp()
140 s2 = elf_strptr(thunk->e, thunk->symtab->stridx, sym2.st_name); in symvalcmp()
161 load_symtab(Elf *e, struct symtab *symtab, u_long sh_type) in load_symtab() argument
185 if ((symtab->data = elf_getdata(scn, NULL)) == NULL) in load_symtab()
188 symtab->index = calloc(nsyms, sizeof(u_int)); in load_symtab()
189 if (symtab->index == NULL) in load_symtab()
192 symtab->index[i] = i; in load_symtab()
193 symtab->nsyms = nsyms; in load_symtab()
194 symtab->stridx = shdr.sh_link; in load_symtab()
197 thunk.symtab = symtab; in load_symtab()
198 qsort_r(symtab->index, nsyms, sizeof(u_int), &thunk, symvalcmp); in load_symtab()
207 file->symtab.nsyms = file->dynsymtab.nsyms = 0; in load_symtabs()
208 (void)load_symtab(file->elf, &file->symtab, SHT_SYMTAB); in load_symtabs()
458 lookup_symbol_by_addr(Elf *e, struct symtab *symtab, uintptr_t addr, in lookup_symbol_by_addr() argument
466 if (symtab->nsyms == 0) in lookup_symbol_by_addr()
469 data = symtab->data; in lookup_symbol_by_addr()
471 max = symtab->nsyms - 1; in lookup_symbol_by_addr()
475 (void)gelf_getsym(data, symtab->index[mid], &sym); in lookup_symbol_by_addr()
490 for (i = mid; i < symtab->nsyms; i++) { in lookup_symbol_by_addr()
491 (void)gelf_getsym(data, symtab->index[i], &sym); in lookup_symbol_by_addr()
495 (void)gelf_getsym(data, symtab->index[i - 1], symp); in lookup_symbol_by_addr()
496 s = elf_strptr(e, symtab->stridx, symp->st_name); in lookup_symbol_by_addr()
532 error = lookup_symbol_by_addr(file->elf, &file->symtab, addr, in proc_addr2sym()
585 lookup_symbol_by_name(Elf *elf, struct symtab *symtab, const char *symbol, in lookup_symbol_by_name() argument
593 if (symtab->nsyms == 0) in lookup_symbol_by_name()
595 data = symtab->data; in lookup_symbol_by_name()
597 s = elf_strptr(elf, symtab->stridx, sym.st_name); in lookup_symbol_by_name()
634 error = lookup_symbol_by_name(file->elf, &file->symtab, symbol, in proc_name2sym()
668 struct symtab *symtab; in proc_iter_symbyaddr() local
683 symtab = which == PR_SYMTAB ? &file->symtab : &file->dynsymtab; in proc_iter_symbyaddr()
684 if (symtab->nsyms == 0) in proc_iter_symbyaddr()
688 for (i = 0; gelf_getsym(symtab->data, i, &sym) != NULL; i++) { in proc_iter_symbyaddr()
713 s = elf_strptr(file->elf, symtab->stridx, sym.st_name); in proc_iter_symbyaddr()