Lines Matching refs:sym
488 Elf_Sym *sym; in parse_elf() local
629 for (sym = info->symtab_start; sym < info->symtab_stop; sym++) { in parse_elf()
630 sym->st_shndx = TO_NATIVE(sym->st_shndx); in parse_elf()
631 sym->st_name = TO_NATIVE(sym->st_name); in parse_elf()
632 sym->st_value = TO_NATIVE(sym->st_value); in parse_elf()
633 sym->st_size = TO_NATIVE(sym->st_size); in parse_elf()
686 Elf_Sym *sym, const char *symname) in handle_modversions() argument
695 export = export_from_secname(info, get_secindex(info, sym)); in handle_modversions()
697 export = export_from_sec(info, get_secindex(info, sym)); in handle_modversions()
702 crc = (unsigned int) sym->st_value; in handle_modversions()
703 if (sym->st_shndx != SHN_UNDEF && sym->st_shndx != SHN_ABS) { in handle_modversions()
707 crcp = (void *)info->hdr + sym->st_value + in handle_modversions()
708 info->sechdrs[sym->st_shndx].sh_offset - in handle_modversions()
710 info->sechdrs[sym->st_shndx].sh_addr : 0); in handle_modversions()
717 switch (sym->st_shndx) { in handle_modversions()
726 if (ELF_ST_BIND(sym->st_info) != STB_GLOBAL && in handle_modversions()
727 ELF_ST_BIND(sym->st_info) != STB_WEAK) in handle_modversions()
740 if (ELF_ST_TYPE(sym->st_info) == STT_SPARC_REGISTER) in handle_modversions()
757 ELF_ST_BIND(sym->st_info) == STB_WEAK, in handle_modversions()
844 static const char *sym_name(struct elf_info *elf, Elf_Sym *sym) in sym_name() argument
846 if (sym) in sym_name()
847 return elf->strtab + sym->st_name; in sym_name()
858 static int match(const char *sym, const char * const pat[]) in match() argument
868 char *here = strstr(sym, bare); in match()
876 if (strrcmp(sym, p + 1) == 0) in match()
881 if (strncmp(sym, p, strlen(p) - 1) == 0) in match()
886 if (strcmp(p, sym) == 0) in match()
1055 Elf_Rela *r, Elf_Sym *sym, const char *fromsec);
1061 Elf_Rela *r, Elf_Sym *sym,
1302 static inline int is_valid_name(struct elf_info *elf, Elf_Sym *sym) in is_valid_name() argument
1304 const char *name = elf->strtab + sym->st_name; in is_valid_name()
1321 Elf_Sym *sym; in find_elf_symbol() local
1331 for (sym = elf->symtab_start; sym < elf->symtab_stop; sym++) { in find_elf_symbol()
1332 if (get_secindex(elf, sym) != relsym_secindex) in find_elf_symbol()
1334 if (ELF_ST_TYPE(sym->st_info) == STT_SECTION) in find_elf_symbol()
1336 if (!is_valid_name(elf, sym)) in find_elf_symbol()
1338 if (sym->st_value == addr) in find_elf_symbol()
1339 return sym; in find_elf_symbol()
1341 d = sym->st_value - addr; in find_elf_symbol()
1343 d = addr - sym->st_value; in find_elf_symbol()
1346 near = sym; in find_elf_symbol()
1365 Elf_Sym *sym; in find_elf_symbol2() local
1369 for (sym = elf->symtab_start; sym < elf->symtab_stop; sym++) { in find_elf_symbol2()
1372 if (is_shndx_special(sym->st_shndx)) in find_elf_symbol2()
1374 symsec = sec_name(elf, get_secindex(elf, sym)); in find_elf_symbol2()
1377 if (!is_valid_name(elf, sym)) in find_elf_symbol2()
1379 if (sym->st_value <= addr) { in find_elf_symbol2()
1380 if ((addr - sym->st_value) < distance) { in find_elf_symbol2()
1381 distance = addr - sym->st_value; in find_elf_symbol2()
1382 near = sym; in find_elf_symbol2()
1383 } else if ((addr - sym->st_value) == distance) { in find_elf_symbol2()
1384 near = sym; in find_elf_symbol2()
1427 static int is_function(Elf_Sym *sym) in is_function() argument
1429 if (sym) in is_function()
1430 return ELF_ST_TYPE(sym->st_info) == STT_FUNC; in is_function()
1604 Elf_Rela *r, Elf_Sym *sym, const char *fromsec) in default_mismatch_handler() argument
1618 tosec = sec_name(elf, get_secindex(elf, sym)); in default_mismatch_handler()
1619 to = find_elf_symbol(elf, r->r_addend, sym); in default_mismatch_handler()
1679 Elf_Rela* r, Elf_Sym* sym, in report_extable_warnings() argument
1684 Elf_Sym* tosym = find_elf_symbol(elf, r->r_addend, sym); in report_extable_warnings()
1703 is_executable_section(elf, get_secindex(elf, sym))) in report_extable_warnings()
1717 Elf_Rela* r, Elf_Sym* sym, in extable_mismatch_handler() argument
1720 const char* tosec = sec_name(elf, get_secindex(elf, sym)); in extable_mismatch_handler()
1724 report_extable_warnings(modname, elf, mismatch, r, sym, fromsec, tosec); in extable_mismatch_handler()
1733 else if (!is_executable_section(elf, get_secindex(elf, sym))) { in extable_mismatch_handler()
1752 Elf_Rela *r, Elf_Sym *sym, const char *fromsec) in check_section_mismatch() argument
1754 const char *tosec = sec_name(elf, get_secindex(elf, sym)); in check_section_mismatch()
1760 r, sym, fromsec); in check_section_mismatch()
1763 r, sym, fromsec); in check_section_mismatch()
1866 Elf_Sym *sym; in section_rela() local
1899 sym = elf->symtab_start + r_sym; in section_rela()
1901 if (is_shndx_special(sym->st_shndx)) in section_rela()
1905 check_section_mismatch(modname, elf, &r, sym, fromsec); in section_rela()
1912 Elf_Sym *sym; in section_rel() local
1959 sym = elf->symtab_start + r_sym; in section_rel()
1961 if (is_shndx_special(sym->st_shndx)) in section_rel()
1965 check_section_mismatch(modname, elf, &r, sym, fromsec); in section_rel()
2022 Elf_Sym *sym; in read_symbols() local
2057 for (sym = info.symtab_start; sym < info.symtab_stop; sym++) { in read_symbols()
2058 symname = remove_dot(info.strtab + sym->st_name); in read_symbols()
2060 handle_modversions(mod, &info, sym, symname); in read_symbols()
2061 handle_moddevtable(mod, &info, sym, symname); in read_symbols()
2065 for (sym = info.symtab_start; sym < info.symtab_stop; sym++) { in read_symbols()
2066 symname = remove_dot(info.strtab + sym->st_name); in read_symbols()
2071 sym)); in read_symbols()
2075 for (sym = info.symtab_start; sym < info.symtab_stop; sym++) { in read_symbols()
2076 unsigned char bind = ELF_ST_BIND(sym->st_info); in read_symbols()
2081 sym->st_name)); in read_symbols()
2503 static int dump_sym(struct symbol *sym) in dump_sym() argument
2507 if (sym->vmlinux || sym->kernel) in dump_sym()