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()
638 int symsrc__init(struct symsrc *ss, struct dso *dso, const char *name, in symsrc__init() argument
646 if (dso__needs_decompress(dso)) { in symsrc__init()
647 fd = decompress_kmodule(dso, name, type); in symsrc__init()
653 dso->load_errno = errno; in symsrc__init()
661 dso->load_errno = DSO_LOAD_ERRNO__INVALID_ELF; in symsrc__init()
666 dso->load_errno = DSO_LOAD_ERRNO__INVALID_ELF; in symsrc__init()
671 if (dso__swap_init(dso, ehdr.e_ident[EI_DATA])) { in symsrc__init()
672 dso->load_errno = DSO_LOAD_ERRNO__INTERNAL_ERROR; in symsrc__init()
677 if (dso->has_build_id) { in symsrc__init()
681 dso->load_errno = DSO_LOAD_ERRNO__CANNOT_READ_BUILDID; in symsrc__init()
685 if (!dso__build_id_equal(dso, build_id)) { in symsrc__init()
687 dso->load_errno = DSO_LOAD_ERRNO__MISMATCHING_BUILDID; in symsrc__init()
711 if (dso->kernel == DSO_TYPE_USER) { in symsrc__init()
715 dso__is_vdso(dso) || in symsrc__init()
725 dso->load_errno = errno; in symsrc__init()
781 int dso__load_sym(struct dso *dso, struct map *map, in dso__load_sym() argument
785 struct kmap *kmap = dso->kernel ? map__kmap(map) : NULL; in dso__load_sym()
788 struct dso *curr_dso = dso; in dso__load_sym()
805 dso->symtab_type = syms_ss->type; in dso__load_sym()
806 dso->is_64_bit = syms_ss->is_64_bit; in dso__load_sym()
807 dso->rel = syms_ss->ehdr.e_type == ET_REL; in dso__load_sym()
814 symbols__delete(&dso->symbols[map->type]); in dso__load_sym()
822 if (dso->kernel) in dso__load_sym()
882 if (dso__is_vdso(dso)) { in dso__load_sym()
889 dso->adjust_symbols = runtime_ss->adjust_symbols || ref_reloc(kmap); in dso__load_sym()
894 if (map->type == MAP__FUNCTION && (dso->kernel || kmodule)) { in dso__load_sym()
896 adjust_kernel_syms = dso->adjust_symbols; in dso__load_sym()
921 sym.st_value = DSO__SWAP(dso, u64, *opd); in dso__load_sym()
958 if (dso->kernel || kmodule) { in dso__load_sym()
967 dso->short_name_len)) == 0) in dso__load_sym()
976 if (remap_kernel && dso->kernel) { in dso__load_sym()
1004 curr_dso = dso; in dso__load_sym()
1012 "%s%s", dso->short_name, section_name); in dso__load_sym()
1024 curr_dso->kernel = dso->kernel; in dso__load_sym()
1025 curr_dso->long_name = dso->long_name; in dso__load_sym()
1026 curr_dso->long_name_len = dso->long_name_len; in dso__load_sym()
1043 curr_dso->symtab_type = dso->symtab_type; in dso__load_sym()
1048 curr_dso = curr_map->dso; in dso__load_sym()
1067 if (want_demangle(dso->kernel || kmodule)) { in dso__load_sym()
1095 symbols__fixup_duplicate(&dso->symbols[map->type]); in dso__load_sym()
1096 symbols__fixup_end(&dso->symbols[map->type]); in dso__load_sym()