Lines Matching refs:dso
215 int dso__synthesize_plt_symbols(struct dso *dso, struct symsrc *ss, struct map *map, in dso__synthesize_plt_symbols() argument
307 symbols__insert(&dso->symbols[map->type], f); in dso__synthesize_plt_symbols()
329 symbols__insert(&dso->symbols[map->type], f); in dso__synthesize_plt_symbols()
340 __func__, dso->long_name); in dso__synthesize_plt_symbols()
552 static int dso__swap_init(struct dso *dso, unsigned char eidata) in dso__swap_init() argument
556 dso->needs_swap = DSO_SWAP__NO; in dso__swap_init()
562 dso->needs_swap = DSO_SWAP__YES; in dso__swap_init()
568 dso->needs_swap = DSO_SWAP__YES; in dso__swap_init()
579 static int decompress_kmodule(struct dso *dso, const char *name, in decompress_kmodule() argument
592 name = dso->long_name; in decompress_kmodule()
599 dso->load_errno = errno; in decompress_kmodule()
604 dso->load_errno = DSO_LOAD_ERRNO__DECOMPRESSION_FAILURE; in decompress_kmodule()
633 int symsrc__init(struct symsrc *ss, struct dso *dso, const char *name, in symsrc__init() argument
641 if (dso__needs_decompress(dso)) { in symsrc__init()
642 fd = decompress_kmodule(dso, name, type); in symsrc__init()
648 dso->load_errno = errno; in symsrc__init()
656 dso->load_errno = DSO_LOAD_ERRNO__INVALID_ELF; in symsrc__init()
661 dso->load_errno = DSO_LOAD_ERRNO__INVALID_ELF; in symsrc__init()
666 if (dso__swap_init(dso, ehdr.e_ident[EI_DATA])) { in symsrc__init()
667 dso->load_errno = DSO_LOAD_ERRNO__INTERNAL_ERROR; in symsrc__init()
672 if (dso->has_build_id) { in symsrc__init()
676 dso->load_errno = DSO_LOAD_ERRNO__CANNOT_READ_BUILDID; in symsrc__init()
680 if (!dso__build_id_equal(dso, build_id)) { in symsrc__init()
681 dso->load_errno = DSO_LOAD_ERRNO__MISMATCHING_BUILDID; in symsrc__init()
705 if (dso->kernel == DSO_TYPE_USER) { in symsrc__init()
709 dso__is_vdso(dso) || in symsrc__init()
720 dso->load_errno = errno; in symsrc__init()
774 int dso__load_sym(struct dso *dso, struct map *map, in dso__load_sym() argument
778 struct kmap *kmap = dso->kernel ? map__kmap(map) : NULL; in dso__load_sym()
781 struct dso *curr_dso = dso; in dso__load_sym()
798 dso->symtab_type = syms_ss->type; in dso__load_sym()
799 dso->is_64_bit = syms_ss->is_64_bit; in dso__load_sym()
800 dso->rel = syms_ss->ehdr.e_type == ET_REL; in dso__load_sym()
807 symbols__delete(&dso->symbols[map->type]); in dso__load_sym()
815 if (dso->kernel) in dso__load_sym()
871 dso->adjust_symbols = runtime_ss->adjust_symbols || ref_reloc(kmap); in dso__load_sym()
876 if (map->type == MAP__FUNCTION && (dso->kernel || kmodule)) { in dso__load_sym()
878 adjust_kernel_syms = dso->adjust_symbols; in dso__load_sym()
903 sym.st_value = DSO__SWAP(dso, u64, *opd); in dso__load_sym()
938 if (dso->kernel || kmodule) { in dso__load_sym()
947 dso->short_name_len)) == 0) in dso__load_sym()
956 if (remap_kernel && dso->kernel) { in dso__load_sym()
982 curr_dso = dso; in dso__load_sym()
990 "%s%s", dso->short_name, section_name); in dso__load_sym()
1002 curr_dso->kernel = dso->kernel; in dso__load_sym()
1003 curr_dso->long_name = dso->long_name; in dso__load_sym()
1004 curr_dso->long_name_len = dso->long_name_len; in dso__load_sym()
1021 curr_dso->symtab_type = dso->symtab_type; in dso__load_sym()
1030 curr_dso = curr_map->dso; in dso__load_sym()
1049 if (want_demangle(dso->kernel || kmodule)) { in dso__load_sym()
1077 symbols__fixup_duplicate(&dso->symbols[map->type]); in dso__load_sym()
1078 symbols__fixup_end(&dso->symbols[map->type]); in dso__load_sym()