106 for (
ut64 entry_offset = 0; entry_offset < segment->
size; entry_offset += segment->
entry_size) {
111 if (!ht_uu_insert(set, segment->
offset + entry_offset, segment->
offset + entry_offset)) {
205 HtUU *set = ht_uu_new0();
RzList * relocs(RzBinFile *bf)
ut64 Elf_() rz_bin_elf_p2v(RZ_NONNULL ELFOBJ *bin, ut64 paddr)
Convert a physical address to the virtual address.
ut64 Elf_() rz_bin_elf_v2p(RZ_NONNULL ELFOBJ *bin, ut64 vaddr)
Convert a virtual address to the physical address.
bool Elf_() rz_bin_elf_read_word_xword(RZ_NONNULL ELFOBJ *bin, RZ_NONNULL RZ_INOUT ut64 *offset, RZ_NONNULL RZ_OUT Elf_(Word) *result)
#define rz_bin_elf_foreach_sections(bin, section)
bool Elf_() rz_bin_elf_has_dt_dynamic(RZ_NONNULL ELFOBJ *bin)
bool Elf_() rz_bin_elf_read_addr(RZ_NONNULL ELFOBJ *bin, RZ_NONNULL RZ_INOUT ut64 *offset, RZ_NONNULL RZ_OUT Elf_(Addr) *result)
RZ_BORROW RzBinElfSection *Elf_() rz_bin_elf_get_section(RZ_NONNULL ELFOBJ *bin, Elf_(Half) index)
bool Elf_() rz_bin_elf_read_sword_sxword(RZ_NONNULL ELFOBJ *bin, RZ_NONNULL RZ_INOUT ut64 *offset, RZ_NONNULL RZ_OUT Elf_(Sword) *result)
bool Elf_() rz_bin_elf_get_dt_info(RZ_NONNULL ELFOBJ *bin, ut64 key, RZ_OUT ut64 *info)
bool Elf_() rz_bin_elf_is_relocatable(RZ_NONNULL ELFOBJ *bin)
Check if the elf binary is relocatable.
static bool get_relocs_entry_from_sections(ELFOBJ *bin, RzVector *relocs, HtUU *set)
RZ_OWN RzVector *Elf_() rz_bin_elf_relocs_new(RZ_NONNULL ELFOBJ *bin)
static bool get_reloc_entry(ELFOBJ *bin, RzBinElfReloc *reloc, ut64 offset, ut64 mode)
static ut64 get_section_relocation_mode(RzBinElfSection *section)
size_t Elf_() rz_bin_elf_get_relocs_count(RZ_NONNULL ELFOBJ *bin)
static bool get_relocs_entry_from_dt_dynamic(ELFOBJ *bin, RzVector *relocs, HtUU *set)
static bool has_already_been_processed(ELFOBJ *bin, ut64 offset, HtUU *set)
static bool read_reloc_entry(ELFOBJ *bin, Elf_(Rela) *reloc, ut64 offset, ut64 mode)
bool Elf_() rz_bin_elf_has_relocs(RZ_NONNULL ELFOBJ *bin)
static bool read_reloc_entry_aux(ELFOBJ *bin, Elf_(Rela) *reloc, ut64 offset, ut64 mode)
static bool get_relocs_entry(ELFOBJ *bin, RzBinElfSection *section, RzVector *relocs, struct relocs_segment *segment, HtUU *set)
static ut64 get_size_rel_mode(ut64 mode)
static void fix_rva_and_offset_exec_file(ELFOBJ *bin, RzBinElfReloc *reloc)
ut64 Elf_() rz_bin_elf_get_num_relocs_dynamic_plt(RZ_NONNULL ELFOBJ *bin)
static void fix_rva_and_offset(ELFOBJ *bin, RzBinElfReloc *reloc, RzBinElfSection *section)
static bool get_relocs_entry_from_dt_dynamic_aux(ELFOBJ *bin, RzVector *relocs, ut64 dt_addr, ut64 dt_size, ut64 entry_size, ut64 mode, HtUU *set)
static struct relocs_segment relocs_segment_init(ut64 offset, ut64 size, ut64 entry_size, ut64 mode)
static void fix_rva_and_offset_relocable_file(ELFOBJ *bin, RzBinElfReloc *reloc, RzBinElfSection *section)
RZ_API const KEY_TYPE bool * found
#define rz_return_val_if_fail(expr, val)
#define RZ_LOG_WARN(fmtstr,...)
RZ_API void * rz_vector_push(RzVector *vec, void *x)
RZ_API void rz_vector_free(RzVector *vec)
RZ_API RzVector * rz_vector_new(size_t elem_size, RzVectorFree free, void *free_user)
static size_t rz_vector_len(const RzVector *vec)
st64 addend
exact addend value taken from the ELF, meaning depends on type
ut64 offset
exact offset value taken from the ELF, meaning depends on the binary type
ut64 vaddr
source vaddr of the reloc, calculated from offset
ut64 paddr
absolute paddr in the file, calculated from offset, or UT64_MAX if no such addr exists
ut64(WINAPI *w32_GetEnabledXStateFeatures)()