Lines Matching refs:rsec

270 	struct section *rsec;  in find_reloc_by_dest_range()  local
273 rsec = sec->rsec; in find_reloc_by_dest_range()
274 if (!rsec) in find_reloc_by_dest_range()
279 sec_offset_hash(rsec, o)) { in find_reloc_by_dest_range()
280 if (reloc->sec != rsec) in find_reloc_by_dest_range()
848 static struct reloc *elf_init_reloc(struct elf *elf, struct section *rsec, in elf_init_reloc() argument
855 if (reloc_idx >= sec_num_entries(rsec)) { in elf_init_reloc()
857 __func__, reloc_idx, rsec->name, sec_num_entries(rsec)); in elf_init_reloc()
861 reloc = &rsec->relocs[reloc_idx]; in elf_init_reloc()
865 __func__, rsec->name, reloc_idx); in elf_init_reloc()
869 reloc->sec = rsec; in elf_init_reloc()
913 return elf_init_reloc(elf, sec->rsec, reloc_idx, offset, sym, addend, in elf_init_reloc_text_sym()
929 return elf_init_reloc(elf, sec->rsec, reloc_idx, offset, sym, addend, in elf_init_reloc_data_sym()
936 struct section *rsec; in read_relocs() local
945 list_for_each_entry(rsec, &elf->sections, list) { in read_relocs()
946 if (!is_reloc_sec(rsec)) in read_relocs()
949 rsec->base = find_section_by_index(elf, rsec->sh.sh_info); in read_relocs()
950 if (!rsec->base) { in read_relocs()
952 rsec->name); in read_relocs()
956 rsec->base->rsec = rsec; in read_relocs()
959 rsec->relocs = calloc(sec_num_entries(rsec), sizeof(*reloc)); in read_relocs()
960 if (!rsec->relocs) { in read_relocs()
964 for (i = 0; i < sec_num_entries(rsec); i++) { in read_relocs()
965 reloc = &rsec->relocs[i]; in read_relocs()
967 reloc->sec = rsec; in read_relocs()
972 symndx, rsec->name); in read_relocs()
1172 struct section *rsec; in elf_create_rela_section() local
1183 rsec = elf_create_section(elf, rsec_name, elf_rela_size(elf), reloc_nr); in elf_create_rela_section()
1185 if (!rsec) in elf_create_rela_section()
1188 rsec->data->d_type = ELF_T_RELA; in elf_create_rela_section()
1189 rsec->sh.sh_type = SHT_RELA; in elf_create_rela_section()
1190 rsec->sh.sh_addralign = elf_addr_size(elf); in elf_create_rela_section()
1191 rsec->sh.sh_link = find_section_by_name(elf, ".symtab")->idx; in elf_create_rela_section()
1192 rsec->sh.sh_info = sec->idx; in elf_create_rela_section()
1193 rsec->sh.sh_flags = SHF_INFO_LINK; in elf_create_rela_section()
1195 rsec->relocs = calloc(sec_num_entries(rsec), sizeof(struct reloc)); in elf_create_rela_section()
1196 if (!rsec->relocs) { in elf_create_rela_section()
1201 sec->rsec = rsec; in elf_create_rela_section()
1202 rsec->base = sec; in elf_create_rela_section()
1204 return rsec; in elf_create_rela_section()