Lines Matching refs:symtab

102 	struct symtab *symtab;  member
118 (void)gelf_getsym(thunk->symtab->data, i1, &sym1); in symvalcmp()
119 (void)gelf_getsym(thunk->symtab->data, i2, &sym2); in symvalcmp()
134 s1 = elf_strptr(thunk->e, thunk->symtab->stridx, sym1.st_name); in symvalcmp()
135 s2 = elf_strptr(thunk->e, thunk->symtab->stridx, sym2.st_name); in symvalcmp()
156 load_symtab(Elf *e, struct symtab *symtab, u_long sh_type) in load_symtab() argument
180 if ((symtab->data = elf_getdata(scn, NULL)) == NULL) in load_symtab()
183 symtab->index = calloc(nsyms, sizeof(u_int)); in load_symtab()
184 if (symtab->index == NULL) in load_symtab()
187 symtab->index[i] = i; in load_symtab()
188 symtab->nsyms = nsyms; in load_symtab()
189 symtab->stridx = shdr.sh_link; in load_symtab()
192 thunk.symtab = symtab; in load_symtab()
193 qsort_r(symtab->index, nsyms, sizeof(u_int), symvalcmp, &thunk); in load_symtab()
202 file->symtab.nsyms = file->dynsymtab.nsyms = 0; in load_symtabs()
203 (void)load_symtab(file->elf, &file->symtab, SHT_SYMTAB); in load_symtabs()
453 lookup_symbol_by_addr(Elf *e, struct symtab *symtab, uintptr_t addr, in lookup_symbol_by_addr() argument
461 if (symtab->nsyms == 0) in lookup_symbol_by_addr()
464 data = symtab->data; in lookup_symbol_by_addr()
466 max = symtab->nsyms - 1; in lookup_symbol_by_addr()
470 (void)gelf_getsym(data, symtab->index[mid], &sym); in lookup_symbol_by_addr()
485 for (i = mid; i < symtab->nsyms; i++) { in lookup_symbol_by_addr()
486 (void)gelf_getsym(data, symtab->index[i], &sym); in lookup_symbol_by_addr()
490 (void)gelf_getsym(data, symtab->index[i - 1], symp); in lookup_symbol_by_addr()
491 s = elf_strptr(e, symtab->stridx, symp->st_name); in lookup_symbol_by_addr()
527 error = lookup_symbol_by_addr(file->elf, &file->symtab, addr, in proc_addr2sym()
580 lookup_symbol_by_name(Elf *elf, struct symtab *symtab, const char *symbol, in lookup_symbol_by_name() argument
588 if (symtab->nsyms == 0) in lookup_symbol_by_name()
590 data = symtab->data; in lookup_symbol_by_name()
592 s = elf_strptr(elf, symtab->stridx, sym.st_name); in lookup_symbol_by_name()
629 error = lookup_symbol_by_name(file->elf, &file->symtab, symbol, in proc_name2sym()
663 struct symtab *symtab; in proc_iter_symbyaddr() local
678 symtab = which == PR_SYMTAB ? &file->symtab : &file->dynsymtab; in proc_iter_symbyaddr()
679 if (symtab->nsyms == 0) in proc_iter_symbyaddr()
683 for (i = 0; gelf_getsym(symtab->data, i, &sym) != NULL; i++) { in proc_iter_symbyaddr()
708 s = elf_strptr(file->elf, symtab->stridx, sym.st_name); in proc_iter_symbyaddr()