Lines Matching refs:ss

215 int dso__synthesize_plt_symbols(struct dso *dso, struct symsrc *ss, struct map *map,  in dso__synthesize_plt_symbols()  argument
232 if (!ss->dynsym) in dso__synthesize_plt_symbols()
235 elf = ss->elf; in dso__synthesize_plt_symbols()
236 ehdr = ss->ehdr; in dso__synthesize_plt_symbols()
238 scn_dynsym = ss->dynsym; in dso__synthesize_plt_symbols()
239 shdr_dynsym = ss->dynshdr; in dso__synthesize_plt_symbols()
240 dynsym_idx = ss->dynsym_idx; in dso__synthesize_plt_symbols()
616 bool symsrc__possibly_runtime(struct symsrc *ss) in symsrc__possibly_runtime() argument
618 return ss->dynsym || ss->opdsec; in symsrc__possibly_runtime()
621 bool symsrc__has_symtab(struct symsrc *ss) in symsrc__has_symtab() argument
623 return ss->symtab != NULL; in symsrc__has_symtab()
626 void symsrc__destroy(struct symsrc *ss) in symsrc__destroy() argument
628 zfree(&ss->name); in symsrc__destroy()
629 elf_end(ss->elf); in symsrc__destroy()
630 close(ss->fd); in symsrc__destroy()
638 int symsrc__init(struct symsrc *ss, struct dso *dso, const char *name, in symsrc__init() argument
692 ss->is_64_bit = (gelf_getclass(elf) == ELFCLASS64); in symsrc__init()
694 ss->symtab = elf_section_by_name(elf, &ehdr, &ss->symshdr, ".symtab", in symsrc__init()
696 if (ss->symshdr.sh_type != SHT_SYMTAB) in symsrc__init()
697 ss->symtab = NULL; in symsrc__init()
699 ss->dynsym_idx = 0; in symsrc__init()
700 ss->dynsym = elf_section_by_name(elf, &ehdr, &ss->dynshdr, ".dynsym", in symsrc__init()
701 &ss->dynsym_idx); in symsrc__init()
702 if (ss->dynshdr.sh_type != SHT_DYNSYM) in symsrc__init()
703 ss->dynsym = NULL; in symsrc__init()
705 ss->opdidx = 0; in symsrc__init()
706 ss->opdsec = elf_section_by_name(elf, &ehdr, &ss->opdshdr, ".opd", in symsrc__init()
707 &ss->opdidx); in symsrc__init()
708 if (ss->opdshdr.sh_type != SHT_PROGBITS) in symsrc__init()
709 ss->opdsec = NULL; in symsrc__init()
713 ss->adjust_symbols = (ehdr.e_type == ET_EXEC || in symsrc__init()
720 ss->adjust_symbols = elf__needs_adjust_symbols(ehdr); in symsrc__init()
723 ss->name = strdup(name); in symsrc__init()
724 if (!ss->name) { in symsrc__init()
729 ss->elf = elf; in symsrc__init()
730 ss->fd = fd; in symsrc__init()
731 ss->ehdr = ehdr; in symsrc__init()
732 ss->type = type; in symsrc__init()