Lines Matching full:section
111 * Find !section symbol where @offset is after it.
130 struct section *find_section_by_name(const struct elf *elf, const char *name) in find_section_by_name()
132 struct section *sec; in find_section_by_name()
142 static struct section *find_section_by_index(struct elf *elf, in find_section_by_index()
145 struct section *sec; in find_section_by_index()
147 elf_hash_for_each_possible(section, sec, hash, idx) { in find_section_by_index()
167 struct symbol *find_symbol_by_offset(struct section *sec, unsigned long offset) in find_symbol_by_offset()
180 struct symbol *find_func_by_offset(struct section *sec, unsigned long offset) in find_func_by_offset()
193 struct symbol *find_symbol_containing(const struct section *sec, unsigned long offset) in find_symbol_containing()
209 int find_symbol_hole_containing(const struct section *sec, unsigned long offset) in find_symbol_hole_containing()
241 struct symbol *find_func_containing(struct section *sec, unsigned long offset) in find_func_containing()
266 struct reloc *find_reloc_by_dest_range(const struct elf *elf, struct section *sec, in find_reloc_by_dest_range()
270 struct section *rsec; in find_reloc_by_dest_range()
296 struct reloc *find_reloc_by_dest(const struct elf *elf, struct section *sec, unsigned long offset) in find_reloc_by_dest()
301 static bool is_dwarf_section(struct section *sec) in is_dwarf_section()
309 struct section *sec; in read_sections()
323 if (!elf_alloc_hash(section, sections_nr) || in read_sections()
371 elf_hash_add(section, &sec->hash, sec->idx); in read_sections()
385 WARN("section entry mismatch"); in read_sections()
435 struct section *symtab, *symtab_shndx, *sec; in read_symbols()
494 WARN("couldn't find section for symbol %s", in read_symbols()
595 static int elf_update_symbol(struct elf *elf, struct section *symtab, in elf_update_symbol()
596 struct section *symtab_shndx, struct symbol *sym) in elf_update_symbol()
704 /* setup extended section index magic and write the symbol */ in elf_update_symbol()
728 struct section *symtab, *symtab_shndx; in __elf_create_symbol()
792 elf_create_section_symbol(struct elf *elf, struct section *sec) in elf_create_section_symbol()
817 static int elf_add_string(struct elf *elf, struct section *strtab, char *str);
848 static struct reloc *elf_init_reloc(struct elf *elf, struct section *rsec, in elf_init_reloc()
884 struct reloc *elf_init_reloc_text_sym(struct elf *elf, struct section *sec, in elf_init_reloc_text_sym()
887 struct section *insn_sec, in elf_init_reloc_text_sym()
901 * Due to how weak functions work, we must use section based in elf_init_reloc_text_sym()
917 struct reloc *elf_init_reloc_data_sym(struct elf *elf, struct section *sec, in elf_init_reloc_data_sym()
936 struct section *rsec; in read_relocs()
951 WARN("can't find base section for reloc section %s", in read_relocs()
1051 static int elf_add_string(struct elf *elf, struct section *strtab, char *str) in elf_add_string()
1060 WARN("can't find .strtab section"); in elf_add_string()
1088 struct section *elf_create_section(struct elf *elf, const char *name, in elf_create_section()
1091 struct section *sec, *shstrtab; in elf_create_section()
1147 /* Add section name to .shstrtab (or .strtab for Clang) */ in elf_create_section()
1152 WARN("can't find .shstrtab or .strtab section"); in elf_create_section()
1160 elf_hash_add(section, &sec->hash, sec->idx); in elf_create_section()
1168 static struct section *elf_create_rela_section(struct elf *elf, in elf_create_rela_section()
1169 struct section *sec, in elf_create_rela_section()
1172 struct section *rsec; in elf_create_rela_section()
1207 struct section *elf_create_section_pair(struct elf *elf, const char *name, in elf_create_section_pair()
1211 struct section *sec; in elf_create_section_pair()
1223 int elf_write_insn(struct elf *elf, struct section *sec, in elf_write_insn()
1230 WARN("write to unexpected data for section: %s", sec->name); in elf_write_insn()
1245 * A) adhere to the section header and truncate the data, or
1246 * B) ignore the section header and write out all the data you've got?
1250 static int elf_truncate_section(struct elf *elf, struct section *sec) in elf_truncate_section()
1264 /* get next data descriptor for the relevant section */ in elf_truncate_section()
1269 WARN("end of section data but non-zero size left\n"); in elf_truncate_section()
1297 struct section *sec; in elf_write()
1303 /* Update changed relocation sections and section headers: */ in elf_write()
1315 /* Note this also flags the section dirty */ in elf_write()
1325 /* Make sure the new section header entries get updated properly. */ in elf_write()