/bionic/linker/ |
D | linker_phdr.h | 50 ElfW(Addr) load_start() const { return reinterpret_cast<ElfW(Addr)>(load_start_); } in load_start() 52 ElfW(Addr) load_bias() const { return load_bias_; } in load_bias() 57 ElfW(Addr) entry_point() const { return header_.e_entry + load_bias_; } in entry_point() 68 bool CheckPhdr(ElfW(Addr)); 69 bool CheckFileRange(ElfW(Addr) offset, size_t size, size_t alignment); 100 ElfW(Addr) load_bias_; 110 ElfW(Addr)* min_vaddr = nullptr, ElfW(Addr)* max_vaddr = nullptr); 113 size_t phdr_count, ElfW(Addr) load_bias); 116 ElfW(Addr) load_bias); 119 ElfW(Addr) load_bias); [all …]
|
D | linker_wrapper.cpp | 43 ElfW(Addr)* base, ElfW(Addr)* load_bias) { in get_elf_base_from_phdr() 46 *load_bias = reinterpret_cast<ElfW(Addr)>(phdr_table) - phdr_table[i].p_vaddr; in get_elf_base_from_phdr() 47 *base = reinterpret_cast<ElfW(Addr)>(phdr_table) - phdr_table[i].p_offset; in get_elf_base_from_phdr() 57 extern "C" ElfW(Addr) __linker_init(void* raw_args) { in __linker_init() 60 ElfW(Addr) base_addr = 0; in __linker_init() 61 ElfW(Addr) load_bias = 0; in __linker_init() 66 ElfW(Addr) linker_addr = base_addr + reinterpret_cast<uintptr_t>(&linker_offset); in __linker_init() 67 ElfW(Addr) linker_entry_offset = reinterpret_cast<ElfW(Ehdr)*>(linker_addr)->e_entry; in __linker_init()
|
D | linker_relocate.cpp | 170 ElfW(Addr) sym_addr = 0; in process_relocation_impl() 225 auto get_addend_rel = [&]() -> ElfW(Addr) { return reloc.r_addend; }; in process_relocation_impl() 226 auto get_addend_norel = [&]() -> ElfW(Addr) { return reloc.r_addend; }; in process_relocation_impl() 228 auto get_addend_rel = [&]() -> ElfW(Addr) { return *static_cast<ElfW(Addr)*>(rel_target); }; in process_relocation_impl() 229 auto get_addend_norel = [&]() -> ElfW(Addr) { return 0; }; in process_relocation_impl() 284 sym_addr = reinterpret_cast<ElfW(Addr)>(rel_target); in process_relocation_impl() 288 sym_addr = reinterpret_cast<ElfW(Addr)>(rel_target); in process_relocation_impl() 299 const ElfW(Addr) result = sym_addr + get_addend_norel(); in process_relocation_impl() 302 *static_cast<ElfW(Addr)*>(rel_target) = result; in process_relocation_impl() 313 const ElfW(Addr) result = sym_addr + get_addend_rel(); in process_relocation_impl() [all …]
|
D | linker_main.cpp | 62 static ElfW(Addr) get_elf_exec_load_bias(const ElfW(Ehdr)* elf); 65 ElfW(Addr)* base, ElfW(Addr)* load_bias); 167 si->base = reinterpret_cast<ElfW(Addr)>(ehdr_vdso); in add_vdso() 198 ElfW(Addr) entry_point; 300 static ElfW(Addr) linker_main(KernelArgumentBlock& args, const char* exe_to_load) { in linker_main() 500 ElfW(Addr) entry = exe_info.entry_point; in linker_main() 515 static ElfW(Addr) get_elf_exec_load_bias(const ElfW(Ehdr)* elf) { in get_elf_exec_load_bias() 516 ElfW(Addr) offset = elf->e_phoff; in get_elf_exec_load_bias() 523 return reinterpret_cast<ElfW(Addr)>(elf) + phdr->p_offset - phdr->p_vaddr; in get_elf_exec_load_bias() 535 ElfW(Addr)* base, ElfW(Addr)* load_bias) { in get_elf_base_from_phdr() [all …]
|
D | linker_phdr.cpp | 292 bool ElfReader::CheckFileRange(ElfW(Addr) offset, size_t size, size_t alignment) { in CheckFileRange() 483 ElfW(Addr)* out_min_vaddr, in phdr_table_get_load_size() 484 ElfW(Addr)* out_max_vaddr) { in phdr_table_get_load_size() 485 ElfW(Addr) min_vaddr = UINTPTR_MAX; in phdr_table_get_load_size() 486 ElfW(Addr) max_vaddr = 0; in phdr_table_get_load_size() 558 ElfW(Addr) min_vaddr; in ReserveAddressSpace() 602 ElfW(Addr) seg_start = phdr->p_vaddr + load_bias_; in LoadSegments() 603 ElfW(Addr) seg_end = seg_start + phdr->p_memsz; in LoadSegments() 605 ElfW(Addr) seg_page_start = PAGE_START(seg_start); in LoadSegments() 606 ElfW(Addr) seg_page_end = PAGE_END(seg_end); in LoadSegments() [all …]
|
D | linker_soinfo.h | 71 ElfW(Addr) call_ifunc_resolver(ElfW(Addr) resolver_addr); 80 ElfW(Addr)* gnu_bloom_filter_ = nullptr; 166 ElfW(Addr) unused0; // DO NOT USE, maintained for compatibility. 168 ElfW(Addr) base; 195 ElfW(Addr)** unused4; // DO NOT USE, maintained for compatibility 238 ElfW(Addr) load_bias; 278 ElfW(Addr) resolve_symbol_address(const ElfW(Sym)* s) const { in resolve_symbol_address() 283 return static_cast<ElfW(Addr)>(s->st_value + load_bias); in resolve_symbol_address() 322 ElfW(Addr) get_verneed_ptr() const; 324 ElfW(Addr) get_verdef_ptr() const; [all …]
|
D | linker_soinfo.cpp | 122 constexpr uint32_t kBloomMaskBits = sizeof(ElfW(Addr)) * 8; in ElfW() 152 const ElfW(Addr) bloom_word = lib->gnu_bloom_filter_[word_num]; in ElfW() 267 ElfW(Addr) soinfo::get_verneed_ptr() const { in ElfW() argument 283 ElfW(Addr) soinfo::get_verdef_ptr() const { in ElfW() argument 333 constexpr uint32_t kBloomMaskBits = sizeof(ElfW(Addr)) * 8; in ElfW() 335 const ElfW(Addr) bloom_word = gnu_bloom_filter_[word_num]; in ElfW() 417 static bool symbol_matches_soaddr(const ElfW(Sym)* sym, ElfW(Addr) soaddr) { in symbol_matches_soaddr() 428 ElfW(Addr) soaddr = reinterpret_cast<ElfW(Addr)>(addr) - load_bias; in ElfW() 449 ElfW(Addr) soaddr = reinterpret_cast<ElfW(Addr)>(addr) - load_bias; in ElfW()
|
D | linker.cpp | 810 ElfW(Addr) address = reinterpret_cast<ElfW(Addr)>(untag_address(p)); in find_containing_library() 815 ElfW(Addr) vaddr = address - si->load_bias; in find_containing_library() 2526 ElfW(Addr) call_ifunc_resolver(ElfW(Addr) resolver_addr) { in call_ifunc_resolver() 2529 ElfW(Addr) ifunc_addr = __bionic_call_ifunc_resolver(resolver_addr); in call_ifunc_resolver() 2730 void soinfo::apply_relr_reloc(ElfW(Addr) offset) { in apply_relr_reloc() 2731 ElfW(Addr) address = offset + load_bias; in apply_relr_reloc() 2732 *reinterpret_cast<ElfW(Addr)*>(address) += load_bias; in apply_relr_reloc() 2741 constexpr size_t wordsize = sizeof(ElfW(Addr)); in relocate_relr() 2743 ElfW(Addr) base = 0; in relocate_relr() 2746 ElfW(Addr) offset; in relocate_relr() [all …]
|
/bionic/libc/bionic/ |
D | bionic_call_ifunc_resolver.cpp | 39 ElfW(Addr) __bionic_call_ifunc_resolver(ElfW(Addr) resolver_addr) { in __bionic_call_ifunc_resolver() 41 typedef ElfW(Addr) (*ifunc_resolver_t)(uint64_t, __ifunc_arg_t*); in __bionic_call_ifunc_resolver() typedef 52 typedef ElfW(Addr) (*ifunc_resolver_t)(unsigned long); in __bionic_call_ifunc_resolver() 61 typedef ElfW(Addr) (*ifunc_resolver_t)(void); in __bionic_call_ifunc_resolver()
|
D | libc_init_static.cpp | 86 ElfW(Addr)* offset = reinterpret_cast<ElfW(Addr)*>(r->r_offset); in call_ifunc_resolvers() 87 ElfW(Addr) resolver = r->r_addend; in call_ifunc_resolvers() 107 ElfW(Addr)* offset = reinterpret_cast<ElfW(Addr)*>(r->r_offset); in call_ifunc_resolvers() 108 ElfW(Addr) resolver = *offset; in call_ifunc_resolvers() 123 ElfW(Addr) seg_page_start = PAGE_START(phdr->p_vaddr); in apply_gnu_relro() 124 ElfW(Addr) seg_page_end = PAGE_END(phdr->p_vaddr + phdr->p_memsz); in apply_gnu_relro()
|
D | libc_init_dynamic.cpp | 67 extern "C" __attribute__((weak)) void __hwasan_library_loaded(ElfW(Addr) base, 70 extern "C" __attribute__((weak)) void __hwasan_library_unloaded(ElfW(Addr) base,
|
D | dl_iterate_phdr_static.cpp | 99 vdso_info.dlpi_addr = (ElfW(Addr)) ehdr_vdso - vdso_info.dlpi_phdr[i].p_vaddr; in dl_iterate_phdr()
|
D | vdso.cpp | 103 ElfW(Addr) vdso_addr = 0; in __libc_init_vdso()
|
D | bionic_elf_tls.cpp | 57 ElfW(Addr) load_bias, TlsSegment* out) { in __bionic_get_tls_segment()
|
/bionic/libc/include/ |
D | link.h | 46 ElfW(Addr) dlpi_addr; 71 ElfW(Addr) l_addr; 82 ElfW(Addr) r_brk; 88 ElfW(Addr) r_ldbase;
|
/bionic/libc/private/ |
D | bionic_call_ifunc_resolver.h | 34 __LIBC_HIDDEN__ ElfW(Addr) __bionic_call_ifunc_resolver(ElfW(Addr) resolver_addr);
|
D | bionic_globals.h | 97 void (*load_hook)(ElfW(Addr) base, const ElfW(Phdr)* phdr, ElfW(Half) phnum) = nullptr; 98 void (*unload_hook)(ElfW(Addr) base, const ElfW(Phdr)* phdr, ElfW(Half) phnum) = nullptr;
|
D | bionic_elf_tls.h | 47 ElfW(Addr) load_bias, TlsSegment* out);
|
/bionic/tests/ |
D | link_test.cpp | 136 static ElfW(Addr) find_exe_load_bias(const ProgHdr& phdr) { in find_exe_load_bias() 139 return reinterpret_cast<ElfW(Addr)>(phdr.table) - phdr.table[i].p_vaddr; in find_exe_load_bias() 146 static ElfW(Dyn)* find_dynamic(const ProgHdr& phdr, ElfW(Addr) load_bias) { in ElfW() 177 ElfW(Addr) exe_load_bias = find_exe_load_bias(exe_phdr); in TEST() 191 std::unordered_map<ElfW(Addr), DlIterateInfo> dl_iter_mods; in TEST()
|
/bionic/libc/malloc_debug/ |
D | MapData.cpp | 123 if (!get_val<ElfW(Addr)>(entry, addr + offsetof(ElfW(Phdr), p_vaddr), &phdr.p_vaddr)) { in read_loadbias()
|