static void nm_gelf_symtab_iter(mdb_gelf_symtab_t *gst, const char *object, uint_t table, mdb_tgt_sym_f *cb, void *arg) { nm_gelf_symtab_t ngs; ngs.ngs_cb = cb; ngs.ngs_arg = arg; ngs.ngs_si.sym_table = table; ngs.ngs_object = object; mdb_gelf_symtab_iter(gst, nm_gelf_symtab_cb, &ngs); }
static void kt_symtab_iter(mdb_gelf_symtab_t *gst, uint_t type, const char *obj, mdb_tgt_sym_f *cb, void *p) { kt_symarg_t arg; arg.sym_cb = cb; arg.sym_data = p; arg.sym_type = type; arg.sym_info.sym_table = gst->gst_tabid; arg.sym_obj = obj; mdb_gelf_symtab_iter(gst, kt_symtab_func, &arg); }
static void kp_symtab_iter(kp_file_t *kpf, uint_t type, const char *obj, mdb_tgt_sym_f *cb, void *data) { if (kpf->kpf_dynsym != NULL) { kp_symarg_t arg; arg.sym_cb = cb; arg.sym_data = data; arg.sym_type = type; arg.sym_adjust = kpf->kpf_dyn_base; arg.sym_info.sym_table = kpf->kpf_dynsym->gst_tabid; arg.sym_obj = obj; mdb_gelf_symtab_iter(kpf->kpf_dynsym, kp_symtab_func, &arg); } }