Lines Matching refs:rsec

275 	struct section *rsec;  in find_reloc_by_dest_range()  local
278 rsec = sec->rsec; in find_reloc_by_dest_range()
279 if (!rsec) in find_reloc_by_dest_range()
284 sec_offset_hash(rsec, o)) { in find_reloc_by_dest_range()
285 if (reloc->sec != rsec) in find_reloc_by_dest_range()
882 static struct reloc *elf_init_reloc(struct elf *elf, struct section *rsec, in elf_init_reloc() argument
889 if (reloc_idx >= sec_num_entries(rsec)) { in elf_init_reloc()
891 __func__, reloc_idx, rsec->name, sec_num_entries(rsec)); in elf_init_reloc()
895 reloc = &rsec->relocs[reloc_idx]; in elf_init_reloc()
899 __func__, rsec->name, reloc_idx); in elf_init_reloc()
903 reloc->sec = rsec; in elf_init_reloc()
946 return elf_init_reloc(elf, sec->rsec, reloc_idx, offset, sym, addend, in elf_init_reloc_text_sym()
961 return elf_init_reloc(elf, sec->rsec, reloc_idx, offset, sym, addend, in elf_init_reloc_data_sym()
968 struct section *rsec; in read_relocs() local
977 list_for_each_entry(rsec, &elf->sections, list) { in read_relocs()
978 if (!is_reloc_sec(rsec)) in read_relocs()
981 rsec->base = find_section_by_index(elf, rsec->sh.sh_info); in read_relocs()
982 if (!rsec->base) { in read_relocs()
983 ERROR("can't find base section for reloc section %s", rsec->name); in read_relocs()
987 rsec->base->rsec = rsec; in read_relocs()
990 rsec->relocs = calloc(sec_num_entries(rsec), sizeof(*reloc)); in read_relocs()
991 if (!rsec->relocs) { in read_relocs()
995 for (i = 0; i < sec_num_entries(rsec); i++) { in read_relocs()
996 reloc = &rsec->relocs[i]; in read_relocs()
998 reloc->sec = rsec; in read_relocs()
1002 ERROR("can't find reloc entry symbol %d for %s", symndx, rsec->name); in read_relocs()
1205 struct section *rsec; in elf_create_rela_section() local
1216 rsec = elf_create_section(elf, rsec_name, elf_rela_size(elf), reloc_nr); in elf_create_rela_section()
1218 if (!rsec) in elf_create_rela_section()
1221 rsec->data->d_type = ELF_T_RELA; in elf_create_rela_section()
1222 rsec->sh.sh_type = SHT_RELA; in elf_create_rela_section()
1223 rsec->sh.sh_addralign = elf_addr_size(elf); in elf_create_rela_section()
1224 rsec->sh.sh_link = find_section_by_name(elf, ".symtab")->idx; in elf_create_rela_section()
1225 rsec->sh.sh_info = sec->idx; in elf_create_rela_section()
1226 rsec->sh.sh_flags = SHF_INFO_LINK; in elf_create_rela_section()
1228 rsec->relocs = calloc(sec_num_entries(rsec), sizeof(struct reloc)); in elf_create_rela_section()
1229 if (!rsec->relocs) { in elf_create_rela_section()
1234 sec->rsec = rsec; in elf_create_rela_section()
1235 rsec->base = sec; in elf_create_rela_section()
1237 return rsec; in elf_create_rela_section()