Lines Matching refs:rela
107 struct rela *find_rela_by_dest_range(struct section *sec, unsigned long offset, in find_rela_by_dest_range()
110 struct rela *rela; in find_rela_by_dest_range() local
113 if (!sec->rela) in find_rela_by_dest_range()
117 hash_for_each_possible(sec->rela->rela_hash, rela, hash, o) in find_rela_by_dest_range()
118 if (rela->offset == o) in find_rela_by_dest_range()
119 return rela; in find_rela_by_dest_range()
124 struct rela *find_rela_by_dest(struct section *sec, unsigned long offset) in find_rela_by_dest()
347 struct rela *rela; in read_relas() local
362 sec->base->rela = sec; in read_relas()
365 rela = malloc(sizeof(*rela)); in read_relas()
366 if (!rela) { in read_relas()
370 memset(rela, 0, sizeof(*rela)); in read_relas()
372 if (!gelf_getrela(sec->data, i, &rela->rela)) { in read_relas()
377 rela->type = GELF_R_TYPE(rela->rela.r_info); in read_relas()
378 rela->addend = rela->rela.r_addend; in read_relas()
379 rela->offset = rela->rela.r_offset; in read_relas()
380 symndx = GELF_R_SYM(rela->rela.r_info); in read_relas()
381 rela->sym = find_symbol_by_index(elf, symndx); in read_relas()
382 if (!rela->sym) { in read_relas()
388 list_add_tail(&rela->list, &sec->rela_list); in read_relas()
389 hash_add(sec->rela_hash, &rela->hash, rela->offset); in read_relas()
573 base->rela = sec; in elf_create_rela_section()
587 struct rela *rela; in elf_rebuild_rela_section() local
592 list_for_each_entry(rela, &sec->rela_list, list) in elf_rebuild_rela_section()
608 list_for_each_entry(rela, &sec->rela_list, list) { in elf_rebuild_rela_section()
609 relas[idx].r_offset = rela->offset; in elf_rebuild_rela_section()
610 relas[idx].r_addend = rela->addend; in elf_rebuild_rela_section()
611 relas[idx].r_info = GELF_R_INFO(rela->sym->idx, rela->type); in elf_rebuild_rela_section()
654 struct rela *rela, *tmprela; in elf_close() local
668 list_for_each_entry_safe(rela, tmprela, &sec->rela_list, list) { in elf_close()
669 list_del(&rela->list); in elf_close()
670 hash_del(&rela->hash); in elf_close()
671 free(rela); in elf_close()