Lines Matching refs:sym
343 static void *sym_get_data(const struct elf_info *info, const Elf_Sym *sym) in sym_get_data() argument
345 return sym_get_data_by_offset(info, get_secindex(info, sym), in sym_get_data()
346 sym->st_value); in sym_get_data()
385 const Elf_Sym *sym) in namespace_from_kstrtabns() argument
387 const char *value = sym_get_data(info, sym); in namespace_from_kstrtabns()
480 Elf_Sym *sym; in parse_elf() local
610 for (sym = info->symtab_start; sym < info->symtab_stop; sym++) { in parse_elf()
611 sym->st_shndx = TO_NATIVE(sym->st_shndx); in parse_elf()
612 sym->st_name = TO_NATIVE(sym->st_name); in parse_elf()
613 sym->st_value = TO_NATIVE(sym->st_value); in parse_elf()
614 sym->st_size = TO_NATIVE(sym->st_size); in parse_elf()
668 const Elf_Sym *sym, const char *symname) in handle_modversion() argument
672 if (sym->st_shndx == SHN_UNDEF) { in handle_modversion()
681 if (sym->st_shndx == SHN_ABS) { in handle_modversion()
682 crc = sym->st_value; in handle_modversion()
687 crcp = sym_get_data(info, sym); in handle_modversion()
694 const Elf_Sym *sym, const char *symname) in handle_symbol() argument
700 export = export_from_secname(info, get_secindex(info, sym)); in handle_symbol()
702 export = export_from_sec(info, get_secindex(info, sym)); in handle_symbol()
704 switch (sym->st_shndx) { in handle_symbol()
713 if (ELF_ST_BIND(sym->st_info) != STB_GLOBAL && in handle_symbol()
714 ELF_ST_BIND(sym->st_info) != STB_WEAK) in handle_symbol()
721 if (ELF_ST_TYPE(sym->st_info) == STT_SPARC_REGISTER) in handle_symbol()
732 ELF_ST_BIND(sym->st_info) == STB_WEAK, in handle_symbol()
819 static const char *sym_name(struct elf_info *elf, Elf_Sym *sym) in sym_name() argument
821 if (sym) in sym_name()
822 return elf->strtab + sym->st_name; in sym_name()
833 static int match(const char *sym, const char * const pat[]) in match() argument
843 char *here = strstr(sym, bare); in match()
851 if (strrcmp(sym, p + 1) == 0) in match()
856 if (strncmp(sym, p, strlen(p) - 1) == 0) in match()
861 if (strcmp(p, sym) == 0) in match()
1031 Elf_Rela *r, Elf_Sym *sym, const char *fromsec);
1037 Elf_Rela *r, Elf_Sym *sym,
1279 static inline int is_valid_name(struct elf_info *elf, Elf_Sym *sym) in is_valid_name() argument
1281 const char *name = elf->strtab + sym->st_name; in is_valid_name()
1298 Elf_Sym *sym; in find_elf_symbol() local
1312 for (sym = elf->symtab_start; sym < elf->symtab_stop; sym++) { in find_elf_symbol()
1313 if (get_secindex(elf, sym) != relsym_secindex) in find_elf_symbol()
1315 if (ELF_ST_TYPE(sym->st_info) == STT_SECTION) in find_elf_symbol()
1317 if (!is_valid_name(elf, sym)) in find_elf_symbol()
1319 if (sym->st_value == addr) in find_elf_symbol()
1320 return sym; in find_elf_symbol()
1322 d = sym->st_value - addr; in find_elf_symbol()
1324 d = addr - sym->st_value; in find_elf_symbol()
1327 near = sym; in find_elf_symbol()
1346 Elf_Sym *sym; in find_elf_symbol2() local
1350 for (sym = elf->symtab_start; sym < elf->symtab_stop; sym++) { in find_elf_symbol2()
1353 if (is_shndx_special(sym->st_shndx)) in find_elf_symbol2()
1355 symsec = sec_name(elf, get_secindex(elf, sym)); in find_elf_symbol2()
1358 if (!is_valid_name(elf, sym)) in find_elf_symbol2()
1360 if (sym->st_value <= addr) { in find_elf_symbol2()
1361 if ((addr - sym->st_value) < distance) { in find_elf_symbol2()
1362 distance = addr - sym->st_value; in find_elf_symbol2()
1363 near = sym; in find_elf_symbol2()
1364 } else if ((addr - sym->st_value) == distance) { in find_elf_symbol2()
1365 near = sym; in find_elf_symbol2()
1408 static int is_function(Elf_Sym *sym) in is_function() argument
1410 if (sym) in is_function()
1411 return ELF_ST_TYPE(sym->st_info) == STT_FUNC; in is_function()
1585 Elf_Rela *r, Elf_Sym *sym, const char *fromsec) in default_mismatch_handler() argument
1599 tosec = sec_name(elf, get_secindex(elf, sym)); in default_mismatch_handler()
1600 to = find_elf_symbol(elf, r->r_addend, sym); in default_mismatch_handler()
1623 Elf_Rela* r, Elf_Sym* sym, in report_extable_warnings() argument
1628 Elf_Sym* tosym = find_elf_symbol(elf, r->r_addend, sym); in report_extable_warnings()
1647 is_executable_section(elf, get_secindex(elf, sym))) in report_extable_warnings()
1661 Elf_Rela* r, Elf_Sym* sym, in extable_mismatch_handler() argument
1664 const char* tosec = sec_name(elf, get_secindex(elf, sym)); in extable_mismatch_handler()
1668 report_extable_warnings(modname, elf, mismatch, r, sym, fromsec, tosec); in extable_mismatch_handler()
1677 else if (!is_executable_section(elf, get_secindex(elf, sym))) in extable_mismatch_handler()
1683 Elf_Rela *r, Elf_Sym *sym, const char *fromsec) in check_section_mismatch() argument
1685 const char *tosec = sec_name(elf, get_secindex(elf, sym)); in check_section_mismatch()
1691 r, sym, fromsec); in check_section_mismatch()
1694 r, sym, fromsec); in check_section_mismatch()
1750 Elf_Sym *sym = elf->symtab_start + ELF_R_SYM(r->r_info); in addend_arm_rel() local
1758 r->r_addend = inst + sym->st_value; in addend_arm_rel()
1765 r->r_addend = offset + sym->st_value + 8; in addend_arm_rel()
1807 Elf_Sym *sym; in section_rela() local
1840 sym = elf->symtab_start + r_sym; in section_rela()
1842 if (is_shndx_special(sym->st_shndx)) in section_rela()
1844 check_section_mismatch(modname, elf, &r, sym, fromsec); in section_rela()
1851 Elf_Sym *sym; in section_rel() local
1898 sym = elf->symtab_start + r_sym; in section_rel()
1900 if (is_shndx_special(sym->st_shndx)) in section_rel()
1902 check_section_mismatch(modname, elf, &r, sym, fromsec); in section_rel()
1959 Elf_Sym *sym; in read_symbols() local
1999 for (sym = info.symtab_start; sym < info.symtab_stop; sym++) { in read_symbols()
2000 symname = remove_dot(info.strtab + sym->st_name); in read_symbols()
2002 handle_symbol(mod, &info, sym, symname); in read_symbols()
2003 handle_moddevtable(mod, &info, sym, symname); in read_symbols()
2006 for (sym = info.symtab_start; sym < info.symtab_stop; sym++) { in read_symbols()
2007 symname = remove_dot(info.strtab + sym->st_name); in read_symbols()
2013 sym)); in read_symbols()
2016 handle_modversion(mod, &info, sym, in read_symbols()
2021 for (sym = info.symtab_start; sym < info.symtab_stop; sym++) { in read_symbols()
2022 unsigned char bind = ELF_ST_BIND(sym->st_info); in read_symbols()
2027 sym->st_name)); in read_symbols()