Lines Matching refs:elf

27 	struct elf *orig, *patched, *out;
168 static int read_sym_checksums(struct elf *elf) in read_sym_checksums() argument
172 sec = find_section_by_name(elf, ".discard.sym_checksum"); in read_sym_checksums()
175 elf->name); in read_sym_checksums()
196 reloc = find_reloc_by_dest(elf, sec, i * sizeof(*sym_checksum)); in read_sym_checksums()
216 static struct symbol *first_file_symbol(struct elf *elf) in first_file_symbol() argument
220 for_each_sym(elf, sym) { in first_file_symbol()
228 static struct symbol *next_file_symbol(struct elf *elf, struct symbol *sym) in next_file_symbol() argument
230 for_each_sym_continue(elf, sym) { in next_file_symbol()
474 static unsigned long find_sympos(struct elf *elf, struct symbol *sym) in find_sympos() argument
492 for_each_sym(elf, s) { in find_sympos()
502 for_each_sym(elf, s) { in find_sympos()
513 for_each_sym(elf, s) { in find_sympos()
534 static struct symbol *__clone_symbol(struct elf *elf, struct symbol *patched_sym, in __clone_symbol() argument
544 out_sec = find_section_by_name(elf, patched_sec->name); in __clone_symbol()
546 out_sec = elf_create_section(elf, patched_sec->name, 0, in __clone_symbol()
556 out_sym = elf_create_section_symbol(elf, out_sec); in __clone_symbol()
579 if (!elf_add_data(elf, out_sec, data, size)) in __clone_symbol()
584 out_sym = elf_create_symbol(elf, patched_sym->name, out_sec, in __clone_symbol()
868 static int convert_reloc_sym_to_secsym(struct elf *elf, struct reloc *reloc) in convert_reloc_sym_to_secsym() argument
873 if (!sec->sym && !elf_create_section_symbol(elf, sec)) in convert_reloc_sym_to_secsym()
877 set_reloc_sym(elf, reloc, sym->idx); in convert_reloc_sym_to_secsym()
878 set_reloc_addend(elf, reloc, sym->offset + reloc_addend(reloc)); in convert_reloc_sym_to_secsym()
882 static int convert_reloc_secsym_to_sym(struct elf *elf, struct reloc *reloc) in convert_reloc_secsym_to_sym() argument
904 set_reloc_sym(elf, reloc, sym->idx); in convert_reloc_secsym_to_sym()
905 set_reloc_addend(elf, reloc, reloc_addend(reloc) - sym->offset); in convert_reloc_secsym_to_sym()
913 static int convert_reloc_sym(struct elf *elf, struct reloc *reloc) in convert_reloc_sym() argument
919 return convert_reloc_sym_to_secsym(elf, reloc); in convert_reloc_sym()
921 return convert_reloc_secsym_to_sym(elf, reloc); in convert_reloc_sym()
1184 static int create_fake_symbol(struct elf *elf, struct section *sec, in create_fake_symbol() argument
1204 return elf_create_symbol(elf, name, sec, STB_LOCAL, type, offset, size) ? 0 : -1; in create_fake_symbol()
1239 static int create_fake_symbols(struct elf *elf) in create_fake_symbols() argument
1248 sec = find_section_by_name(elf, ".discard.annotate_data"); in create_fake_symbols()
1256 if (annotype(elf, sec, reloc) != ANNOTYPE_DATA_SPECIAL) in create_fake_symbols()
1264 if (annotype(elf, sec, next_reloc) != ANNOTYPE_DATA_SPECIAL || in create_fake_symbols()
1275 if (create_fake_symbol(elf, reloc->sym->sec, offset, size)) in create_fake_symbols()
1283 for_each_sec(elf, sec) { in create_fake_symbols()
1305 if (create_fake_symbol(elf, sec, offset, entry_size)) in create_fake_symbols()
1314 static bool should_keep_special_sym(struct elf *elf, struct symbol *sym) in should_keep_special_sym() argument
1321 sym_for_each_reloc(elf, sym, reloc) { in should_keep_special_sym()
1322 if (convert_reloc_sym(elf, reloc)) in should_keep_special_sym()