Lines Matching refs:sym

234 static void hash_add_symbol(struct symbol *sym)
236 hash_add(symbol_hashtable, &sym->hnode, hash_str(sym->name));
241 struct symbol *sym;
243 sym = alloc_symbol(name);
244 sym->weak = weak;
246 list_add_tail(&sym->list, &mod->unresolved_symbols);
312 void *sym_get_data(const struct elf_info *info, const Elf_Sym *sym)
314 return sym_get_data_by_offset(info, get_secindex(info, sym),
315 sym->st_value);
327 * If sym->st_shndx is a special section index, there is no
358 static void sym_set_crc(struct symbol *sym, unsigned int crc)
360 sym->crc = crc;
361 sym->crc_valid = true;
396 Elf_Sym *sym;
540 for (sym = info->symtab_start; sym < info->symtab_stop; sym++) {
541 sym->st_shndx = TO_NATIVE(sym->st_shndx);
542 sym->st_name = TO_NATIVE(sym->st_name);
543 sym->st_value = TO_NATIVE(sym->st_value);
544 sym->st_size = TO_NATIVE(sym->st_size);
600 const Elf_Sym *sym, const char *symname)
602 switch (sym->st_shndx) {
611 if (ELF_ST_BIND(sym->st_info) != STB_GLOBAL &&
612 ELF_ST_BIND(sym->st_info) != STB_WEAK)
619 if (ELF_ST_TYPE(sym->st_info) == STT_SPARC_REGISTER)
630 ELF_ST_BIND(sym->st_info) == STB_WEAK);
688 static const char *sym_name(struct elf_info *elf, Elf_Sym *sym)
690 return sym ? elf->strtab + sym->st_name : "";
969 static Elf_Sym *find_tosym(struct elf_info *elf, Elf_Addr addr, Elf_Sym *sym)
974 if (is_valid_name(elf, sym))
975 return sym;
981 new_sym = symsearch_find_nearest(elf, addr, get_secindex(elf, sym),
983 return new_sym ? new_sym : sym;
1054 Elf_Sym *sym)
1071 if (ELF_ST_BIND(sym->st_info) != STB_GLOBAL &&
1072 ELF_ST_BIND(sym->st_info) != STB_WEAK) {
1078 name = sym_name(elf, sym);
1103 s->is_func = (ELF_ST_TYPE(sym->st_info) == STT_FUNC);
1111 ELF_ST_TYPE(sym->st_info) == STT_LOPROC)
1123 Elf_Sym *sym,
1127 const char *tosec = sec_name(elf, get_secindex(elf, sym));
1131 check_export_symbol(mod, elf, faddr, tosec, sym);
1139 default_mismatch_handler(mod->name, elf, mismatch, sym,
1163 static Elf_Addr addend_arm_rel(void *loc, Elf_Sym *sym, unsigned int r_type)
1172 return inst + sym->st_value;
1178 return offset + sym->st_value;
1184 return offset + sym->st_value + 8;
1194 return offset + sym->st_value;
1215 return offset + sym->st_value + 4;
1241 return offset + sym->st_value + 4;
1487 struct symbol *sym;
1513 sym = sym_find_with_module(name, mod);
1514 if (sym)
1515 sym_set_crc(sym, crc);
1559 Elf_Sym *sym;
1603 for (sym = info.symtab_start; sym < info.symtab_stop; sym++) {
1604 symname = remove_dot(info.strtab + sym->st_name);
1606 handle_symbol(mod, &info, sym, symname);
1607 handle_moddevtable(mod, &info, sym, symname);
1733 struct symbol *sym = find_symbol(name);
1735 if (sym)
1736 sym->used = true;
1752 struct symbol *sym;
1758 sym = find_symbol(s);
1759 if (sym)
1760 sym->used = true;
1812 struct symbol *sym;
1816 list_for_each_entry(sym, &mod->exported_symbols, list) {
1817 if (trim_unused_exports && !sym->used)
1821 sym->is_func ? "FUNC" : "DATA", sym->name,
1822 sym->is_gpl_only ? "_gpl" : "", sym->namespace);
1830 list_for_each_entry(sym, &mod->exported_symbols, list) {
1831 if (trim_unused_exports && !sym->used)
1834 if (!sym->crc_valid)
1837 sym->name, mod->name, mod->is_vmlinux ? "" : ".ko",
1838 sym->name);
1841 sym->name, sym->crc, sym->is_gpl_only ? "_gpl" : "");
2139 struct symbol *sym;
2144 list_for_each_entry(sym, &mod->exported_symbols, list) {
2145 if (trim_unused_exports && !sym->used)
2149 sym->crc, sym->name, mod->name,
2150 sym->is_gpl_only ? "_GPL" : "",
2151 sym->namespace);