Lines Matching refs:dso
268 static char *demangle_sym(struct dso *dso, int kmodule, const char *elf_name) in demangle_sym() argument
278 if (!want_demangle(dso->kernel || kmodule)) in demangle_sym()
315 int dso__synthesize_plt_symbols(struct dso *dso, struct symsrc *ss) in dso__synthesize_plt_symbols() argument
425 demangled = demangle_sym(dso, 0, elf_name); in dso__synthesize_plt_symbols()
438 symbols__insert(&dso->symbols, f); in dso__synthesize_plt_symbols()
451 demangled = demangle_sym(dso, 0, elf_name); in dso__synthesize_plt_symbols()
464 symbols__insert(&dso->symbols, f); in dso__synthesize_plt_symbols()
474 __func__, dso->long_name); in dso__synthesize_plt_symbols()
478 char *dso__demangle_sym(struct dso *dso, int kmodule, const char *elf_name) in dso__demangle_sym() argument
480 return demangle_sym(dso, kmodule, elf_name); in dso__demangle_sym()
805 static int dso__swap_init(struct dso *dso, unsigned char eidata) in dso__swap_init() argument
809 dso->needs_swap = DSO_SWAP__NO; in dso__swap_init()
815 dso->needs_swap = DSO_SWAP__YES; in dso__swap_init()
821 dso->needs_swap = DSO_SWAP__YES; in dso__swap_init()
860 int symsrc__init(struct symsrc *ss, struct dso *dso, const char *name, in symsrc__init() argument
867 if (dso__needs_decompress(dso)) { in symsrc__init()
868 fd = dso__decompress_kmodule_fd(dso, name); in symsrc__init()
872 type = dso->symtab_type; in symsrc__init()
876 dso->load_errno = errno; in symsrc__init()
884 dso->load_errno = DSO_LOAD_ERRNO__INVALID_ELF; in symsrc__init()
889 dso->load_errno = DSO_LOAD_ERRNO__INVALID_ELF; in symsrc__init()
894 if (dso__swap_init(dso, ehdr.e_ident[EI_DATA])) { in symsrc__init()
895 dso->load_errno = DSO_LOAD_ERRNO__INTERNAL_ERROR; in symsrc__init()
900 if (dso->has_build_id && !symbol_conf.ignore_vmlinux_buildid) { in symsrc__init()
907 dso->load_errno = DSO_LOAD_ERRNO__CANNOT_READ_BUILDID; in symsrc__init()
912 if (!dso__build_id_equal(dso, &bid)) { in symsrc__init()
914 dso->load_errno = DSO_LOAD_ERRNO__MISMATCHING_BUILDID; in symsrc__init()
938 if (dso->kernel == DSO_SPACE__USER) in symsrc__init()
945 dso->load_errno = errno; in symsrc__init()
997 static int dso__process_kernel_symbol(struct dso *dso, struct map *map, in dso__process_kernel_symbol() argument
1000 struct dso **curr_dsop, struct map **curr_mapp, in dso__process_kernel_symbol()
1004 struct dso *curr_dso = *curr_dsop; in dso__process_kernel_symbol()
1012 if (strcmp(section_name, (curr_dso->short_name + dso->short_name_len)) == 0) in dso__process_kernel_symbol()
1021 if (*remap_kernel && dso->kernel && !kmodule) { in dso__process_kernel_symbol()
1048 *curr_dsop = dso; in dso__process_kernel_symbol()
1055 snprintf(dso_name, sizeof(dso_name), "%s%s", dso->short_name, section_name); in dso__process_kernel_symbol()
1067 curr_dso->kernel = dso->kernel; in dso__process_kernel_symbol()
1068 curr_dso->long_name = dso->long_name; in dso__process_kernel_symbol()
1069 curr_dso->long_name_len = dso->long_name_len; in dso__process_kernel_symbol()
1085 curr_dso->symtab_type = dso->symtab_type; in dso__process_kernel_symbol()
1099 *curr_dsop = curr_map->dso; in dso__process_kernel_symbol()
1105 dso__load_sym_internal(struct dso *dso, struct map *map, struct symsrc *syms_ss, in dso__load_sym_internal() argument
1108 struct kmap *kmap = dso->kernel ? map__kmap(map) : NULL; in dso__load_sym_internal()
1111 struct dso *curr_dso = dso; in dso__load_sym_internal()
1141 dso->text_offset = tshdr.sh_addr - tshdr.sh_offset; in dso__load_sym_internal()
1199 if (dso__is_vdso(dso)) in dso__load_sym_internal()
1200 map->reloc = map->start - dso->text_offset; in dso__load_sym_internal()
1202 dso->adjust_symbols = runtime_ss->adjust_symbols || ref_reloc(kmap); in dso__load_sym_internal()
1207 if (dso->kernel) { in dso__load_sym_internal()
1209 adjust_kernel_syms = dso->adjust_symbols; in dso__load_sym_internal()
1234 sym.st_value = DSO__SWAP(dso, u64, *opd); in dso__load_sym_internal()
1298 if (dso->kernel) { in dso__load_sym_internal()
1299 if (dso__process_kernel_symbol(dso, map, &sym, &shdr, kmaps, kmap, &curr_dso, &curr_map, in dso__load_sym_internal()
1333 demangled = demangle_sym(dso, kmodule, elf_name); in dso__load_sym_internal()
1346 __symbols__insert(&curr_dso->symbols, f, dso->kernel); in dso__load_sym_internal()
1354 symbols__fixup_end(&dso->symbols, false); in dso__load_sym_internal()
1355 symbols__fixup_duplicate(&dso->symbols); in dso__load_sym_internal()
1369 int dso__load_sym(struct dso *dso, struct map *map, struct symsrc *syms_ss, in dso__load_sym() argument
1375 dso->symtab_type = syms_ss->type; in dso__load_sym()
1376 dso->is_64_bit = syms_ss->is_64_bit; in dso__load_sym()
1377 dso->rel = syms_ss->ehdr.e_type == ET_REL; in dso__load_sym()
1384 symbols__delete(&dso->symbols); in dso__load_sym()
1392 if (dso->kernel) in dso__load_sym()
1395 err = dso__load_sym_internal(dso, map, syms_ss, runtime_ss, in dso__load_sym()
1403 err = dso__load_sym_internal(dso, map, syms_ss, runtime_ss, in dso__load_sym()