Lines Matching refs:symtab
727 ctf_sect_t ctdata, symtab, strtab; in Pbuild_file_ctf() local
772 symtab.cts_name = fptr->file_ctf_dyn ? ".dynsym" : ".symtab"; in Pbuild_file_ctf()
773 symtab.cts_type = symp->sym_hdr_pri.sh_type; in Pbuild_file_ctf()
774 symtab.cts_flags = symp->sym_hdr_pri.sh_flags; in Pbuild_file_ctf()
775 symtab.cts_data = symp->sym_data_pri->d_buf; in Pbuild_file_ctf()
776 symtab.cts_size = symp->sym_hdr_pri.sh_size; in Pbuild_file_ctf()
777 symtab.cts_entsize = symp->sym_hdr_pri.sh_entsize; in Pbuild_file_ctf()
778 symtab.cts_offset = symp->sym_hdr_pri.sh_offset; in Pbuild_file_ctf()
788 fptr->file_ctfp = ctf_bufopen(&ctdata, &symtab, &strtab, &err); in Pbuild_file_ctf()
1445 symtab_getsym(sym_tbl_t *symtab, int ndx, GElf_Sym *dst) in symtab_getsym() argument
1448 if (ndx >= symtab->sym_symn_aux) { in symtab_getsym()
1449 return (gelf_getsym(symtab->sym_data_pri, in symtab_getsym()
1450 ndx - symtab->sym_symn_aux, dst)); in symtab_getsym()
1454 return (gelf_getsym(symtab->sym_data_aux, ndx, dst)); in symtab_getsym()
1458 optimize_symtab(sym_tbl_t *symtab) in optimize_symtab() argument
1464 if (symtab == NULL || symtab->sym_data_pri == NULL || in optimize_symtab()
1465 symtab->sym_byaddr != NULL) in optimize_symtab()
1468 symn = symtab->sym_symn; in optimize_symtab()
1469 strsz = symtab->sym_strsz; in optimize_symtab()
1483 if (symtab_getsym(symtab, i, symp) != NULL && in optimize_symtab()
1495 symtab->sym_count = count; in optimize_symtab()
1496 indexa = symtab->sym_byaddr = calloc(sizeof (uint_t), count); in optimize_symtab()
1497 indexb = symtab->sym_byname = calloc(sizeof (uint_t), count); in optimize_symtab()
1501 symtab->sym_count = 0; in optimize_symtab()
1504 symtab->sym_byaddr = NULL; in optimize_symtab()
1530 sort_strs = symtab->sym_strs; in optimize_symtab()
1533 qsort(symtab->sym_byaddr, count, sizeof (uint_t), byaddr_cmp); in optimize_symtab()
1534 qsort(symtab->sym_byname, count, sizeof (uint_t), byname_cmp); in optimize_symtab()
2171 sym_by_addr_binary(sym_tbl_t *symtab, GElf_Addr addr, GElf_Sym *symp, in sym_by_addr_binary() argument
2175 uint_t i, oid, *byaddr = symtab->sym_byaddr; in sym_by_addr_binary()
2178 if (symtab->sym_data_pri == NULL || symtab->sym_count == 0) in sym_by_addr_binary()
2182 max = symtab->sym_count - 1; in sym_by_addr_binary()
2193 (void) symtab_getsym(symtab, i, &sym); in sym_by_addr_binary()
2225 (void) symtab_getsym(symtab, oid, &osym); in sym_by_addr_binary()
2240 sym_by_addr_linear(sym_tbl_t *symtab, GElf_Addr addr, GElf_Sym *symbolp, in sym_by_addr_linear() argument
2243 size_t symn = symtab->sym_symn; in sym_by_addr_linear()
2244 char *strs = symtab->sym_strs; in sym_by_addr_linear()
2249 if (symtab->sym_data_pri == NULL || symn == 0 || strs == NULL) in sym_by_addr_linear()
2253 if ((symp = symtab_getsym(symtab, i, &sym)) != NULL) { in sym_by_addr_linear()
2286 sym_by_addr(sym_tbl_t *symtab, GElf_Addr addr, GElf_Sym *symp, uint_t *idp) in sym_by_addr() argument
2289 return (sym_by_addr_linear(symtab, addr, symp, idp)); in sym_by_addr()
2291 return (sym_by_addr_binary(symtab, addr, symp, idp)); in sym_by_addr()
2299 sym_by_name_binary(sym_tbl_t *symtab, const char *name, GElf_Sym *symp, in sym_by_name_binary() argument
2302 char *strs = symtab->sym_strs; in sym_by_name_binary()
2303 uint_t i, *byname = symtab->sym_byname; in sym_by_name_binary()
2306 if (symtab->sym_data_pri == NULL || strs == NULL || in sym_by_name_binary()
2307 symtab->sym_count == 0) in sym_by_name_binary()
2311 max = symtab->sym_count - 1; in sym_by_name_binary()
2317 (void) symtab_getsym(symtab, i, symp); in sym_by_name_binary()
2338 sym_by_name_linear(sym_tbl_t *symtab, const char *name, GElf_Sym *symp, in sym_by_name_linear() argument
2341 size_t symn = symtab->sym_symn; in sym_by_name_linear()
2342 char *strs = symtab->sym_strs; in sym_by_name_linear()
2345 if (symtab->sym_data_pri == NULL || symn == 0 || strs == NULL) in sym_by_name_linear()
2349 if (symtab_getsym(symtab, i, symp) && in sym_by_name_linear()
2367 sym_by_name(sym_tbl_t *symtab, const char *name, GElf_Sym *symp, uint_t *idp) in sym_by_name() argument
2370 return (sym_by_name_linear(symtab, name, symp, idp)); in sym_by_name()
2372 return (sym_by_name_binary(symtab, name, symp, idp)); in sym_by_name()
2772 sym_tbl_t *symtab; in Psymbol_iter_com() local
2792 symtab = &fptr->file_symtab; in Psymbol_iter_com()
2796 symtab = &fptr->file_dynsym; in Psymbol_iter_com()
2807 symn = symtab->sym_symn; in Psymbol_iter_com()
2808 strs = symtab->sym_strs; in Psymbol_iter_com()
2809 strsz = symtab->sym_strsz; in Psymbol_iter_com()
2817 map = symtab->sym_byname; in Psymbol_iter_com()
2818 count = symtab->sym_count; in Psymbol_iter_com()
2821 map = symtab->sym_byaddr; in Psymbol_iter_com()
2822 count = symtab->sym_count; in Psymbol_iter_com()
2828 if (symtab->sym_data_pri == NULL || strs == NULL || count == 0) in Psymbol_iter_com()
2835 if (symtab_getsym(symtab, ndx, &sym) != NULL) { in Psymbol_iter_com()