Lines Matching refs:sym
20 static int sym_index(Elf_Sym *sym);
270 static const char *sym_name(const char *sym_strtab, Elf_Sym *sym) in sym_name() argument
274 if (sym->st_name) { in sym_name()
275 name = sym_strtab + sym->st_name; in sym_name()
278 name = sec_name(sym_index(sym)); in sym_name()
291 Elf_Sym *sym; in sym_lookup() local
300 for (sym = symtab; --nsyms >= 0; sym++) { in sym_lookup()
301 if (!sym->st_name) in sym_lookup()
303 if (strcmp(symname, strtab + sym->st_name) == 0) in sym_lookup()
304 return sym; in sym_lookup()
348 static int sym_index(Elf_Sym *sym) in sym_index() argument
355 if (sym->st_shndx != SHN_XINDEX) in sym_index()
356 return sym->st_shndx; in sym_index()
359 offset = (unsigned long)sym - (unsigned long)symtab; in sym_index()
360 index = offset / sizeof(*sym); in sym_index()
540 Elf_Sym *sym = &sec->symtab[j]; in read_symtabs() local
542 sym->st_name = elf_word_to_cpu(sym->st_name); in read_symtabs()
543 sym->st_value = elf_addr_to_cpu(sym->st_value); in read_symtabs()
544 sym->st_size = elf_xword_to_cpu(sym->st_size); in read_symtabs()
545 sym->st_shndx = elf_half_to_cpu(sym->st_shndx); in read_symtabs()
613 Elf_Sym *sym; in print_absolute_symbols() local
615 sym = &sec->symtab[j]; in print_absolute_symbols()
616 name = sym_name(sym_strtab, sym); in print_absolute_symbols()
617 if (sym->st_shndx != SHN_ABS) { in print_absolute_symbols()
621 j, sym->st_value, sym->st_size, in print_absolute_symbols()
622 sym_type(ELF_ST_TYPE(sym->st_info)), in print_absolute_symbols()
623 sym_bind(ELF_ST_BIND(sym->st_info)), in print_absolute_symbols()
624 sym_visibility(ELF_ST_VISIBILITY(sym->st_other)), in print_absolute_symbols()
659 Elf_Sym *sym; in print_absolute_relocs() local
662 sym = &sh_symtab[ELF_R_SYM(rel->r_info)]; in print_absolute_relocs()
663 name = sym_name(sym_strtab, sym); in print_absolute_relocs()
664 if (sym->st_shndx != SHN_ABS) { in print_absolute_relocs()
696 sym->st_value, in print_absolute_relocs()
721 Elf_Sym *sym, const char *symname)) in walk_relocs() argument
744 Elf_Sym *sym = &sh_symtab[ELF_R_SYM(rel->r_info)]; in walk_relocs() local
745 const char *symname = sym_name(sym_strtab, sym); in walk_relocs()
747 process(sec, rel, sym, symname); in walk_relocs()
782 ElfW(Sym) *sym; in percpu_init()
789 sym = sym_lookup("__per_cpu_load"); in percpu_init()
790 if (!sym) in percpu_init()
794 per_cpu_load_addr = sym->st_value; in percpu_init()
816 static int is_percpu_sym(ElfW(Sym) *sym, const char *symname) in is_percpu_sym() argument
818 int shndx = sym_index(sym); in is_percpu_sym()
827 static int do_reloc64(struct section *sec, Elf_Rel *rel, ElfW(Sym) *sym, in do_reloc64() argument
832 int shn_abs = (sym->st_shndx == SHN_ABS) && !is_reloc(S_REL, symname); in do_reloc64()
834 if (sym->st_shndx == SHN_UNDEF) in do_reloc64()
856 if (is_percpu_sym(sym, symname)) in do_reloc64()
864 if (is_percpu_sym(sym, symname)) in do_reloc64()
875 if (is_percpu_sym(sym, symname)) in do_reloc64()
917 static int do_reloc32(struct section *sec, Elf_Rel *rel, Elf_Sym *sym, in do_reloc32() argument
921 int shn_abs = (sym->st_shndx == SHN_ABS) && !is_reloc(S_REL, symname); in do_reloc32()
962 static int do_reloc_real(struct section *sec, Elf_Rel *rel, Elf_Sym *sym, in do_reloc_real() argument
966 int shn_abs = (sym->st_shndx == SHN_ABS) && !is_reloc(S_REL, symname); in do_reloc_real()
1066 int (*do_reloc)(struct section *sec, Elf_Rel *rel, Elf_Sym *sym, in emit_relocs()
1146 static int do_reloc_info(struct section *sec, Elf_Rel *rel, ElfW(Sym) *sym, in do_reloc_info() argument
1153 sec_name(sym_index(sym))); in do_reloc_info()