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()
849 static struct reloc *elf_init_reloc(struct elf *elf, struct section *rsec, in elf_init_reloc() argument
856 if (reloc_idx >= sec_num_entries(rsec)) { in elf_init_reloc()
858 __func__, reloc_idx, rsec->name, sec_num_entries(rsec)); in elf_init_reloc()
862 reloc = &rsec->relocs[reloc_idx]; in elf_init_reloc()
866 __func__, rsec->name, reloc_idx); in elf_init_reloc()
870 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()
928 return elf_init_reloc(elf, sec->rsec, reloc_idx, offset, sym, addend, in elf_init_reloc_data_sym()
935 struct section *rsec; in read_relocs() local
944 list_for_each_entry(rsec, &elf->sections, list) { in read_relocs()
945 if (!is_reloc_sec(rsec)) in read_relocs()
948 rsec->base = find_section_by_index(elf, rsec->sh.sh_info); in read_relocs()
949 if (!rsec->base) { in read_relocs()
950 ERROR("can't find base section for reloc section %s", rsec->name); in read_relocs()
954 rsec->base->rsec = rsec; in read_relocs()
957 rsec->relocs = calloc(sec_num_entries(rsec), sizeof(*reloc)); in read_relocs()
958 if (!rsec->relocs) { in read_relocs()
962 for (i = 0; i < sec_num_entries(rsec); i++) { in read_relocs()
963 reloc = &rsec->relocs[i]; in read_relocs()
965 reloc->sec = rsec; in read_relocs()
969 ERROR("can't find reloc entry symbol %d for %s", symndx, rsec->name); in read_relocs()
1169 struct section *rsec; in elf_create_rela_section() local
1180 rsec = elf_create_section(elf, rsec_name, elf_rela_size(elf), reloc_nr); in elf_create_rela_section()
1182 if (!rsec) in elf_create_rela_section()
1185 rsec->data->d_type = ELF_T_RELA; in elf_create_rela_section()
1186 rsec->sh.sh_type = SHT_RELA; in elf_create_rela_section()
1187 rsec->sh.sh_addralign = elf_addr_size(elf); in elf_create_rela_section()
1188 rsec->sh.sh_link = find_section_by_name(elf, ".symtab")->idx; in elf_create_rela_section()
1189 rsec->sh.sh_info = sec->idx; in elf_create_rela_section()
1190 rsec->sh.sh_flags = SHF_INFO_LINK; in elf_create_rela_section()
1192 rsec->relocs = calloc(sec_num_entries(rsec), sizeof(struct reloc)); in elf_create_rela_section()
1193 if (!rsec->relocs) { in elf_create_rela_section()
1198 sec->rsec = rsec; in elf_create_rela_section()
1199 rsec->base = sec; in elf_create_rela_section()
1201 return rsec; in elf_create_rela_section()