/freebsd/libexec/rtld-elf/powerpc64/ |
H A D | reloc.c | 49 Elf_Addr addr; 50 Elf_Addr toc; 51 Elf_Addr env; 138 Elf_Addr relasz = 0; in reloc_non_plt_self() 139 Elf_Addr *where; in reloc_non_plt_self() 268 *(Elf_Addr **)where = *where * sizeof(Elf_Addr) in reloc_nonplt_object() 386 Elf_Addr *where = (Elf_Addr *)(obj->relocbase + rela->r_offset); in reloc_plt_object() 454 Elf_Addr *where; in reloc_jmpslots() 455 Elf_Addr target; in reloc_jmpslots() 501 Elf_Addr [all …]
|
H A D | rtld_machdep.h | 39 Elf_Addr glink; /* GLINK PLT call stub section */ 49 Elf_Addr reloc_jmpslot(Elf_Addr *where, Elf_Addr target, 52 void reloc_non_plt_self(Elf_Dyn *dynp, Elf_Addr relocbase); 67 (((Elf_Addr (*)(uint32_t, uint32_t, uint64_t, uint64_t, uint64_t, \
|
/freebsd/lib/libc/gen/ |
H A D | tls.c | 202 Elf_Addr *dtv; in __libc_free_tls() 203 Elf_Addr **tls; in __libc_free_tls() 205 tls = (Elf_Addr **)tcb; in __libc_free_tls() 234 Elf_Addr *dtv, **tcb; in __libc_allocate_tls() 304 Elf_Addr* dtv; in __libc_free_tls() 305 Elf_Addr tlsstart, tlsend; in __libc_free_tls() 315 tlsend = (Elf_Addr) tcb; in __libc_free_tls() 329 Elf_Addr *dtv; in __libc_allocate_tls() 351 ((Elf_Addr*)segbase)[1] = (Elf_Addr) dtv; in __libc_allocate_tls() 370 _rtld_free_tls(oldtls, 2*sizeof(Elf_Addr), sizeof(Elf_Addr)); in __libc_allocate_tls() [all …]
|
/freebsd/libexec/rtld-elf/arm/ |
H A D | reloc.c | 90 Elf_Addr relsz = 0; in _rtld_relocate_nonplt_self() 91 Elf_Addr *where; in _rtld_relocate_nonplt_self() 117 static __inline Elf_Addr 120 Elf_Addr res; in load_ptr() 138 Elf_Addr *where; in reloc_nonplt_object() 141 Elf_Addr tmp; in reloc_nonplt_object() 359 Elf_Addr *where; in reloc_plt() 380 Elf_Addr *where; in reloc_jmpslots() 381 Elf_Addr target; in reloc_jmpslots() 431 Elf_Addr [all …]
|
/freebsd/libexec/rtld-elf/powerpc/ |
H A D | reloc.c | 143 Elf_Addr relasz = 0; in reloc_non_plt_self() 144 Elf_Addr *where; in reloc_non_plt_self() 273 *(Elf_Addr **)where = *where * sizeof(Elf_Addr) in reloc_nonplt_object() 389 Elf_Addr distance; in reloc_plt_object() 406 distance = (Elf_Addr)pltresolve - (Elf_Addr)(where + 1); in reloc_plt_object() 493 Elf_Addr *where; in reloc_jmpslots() 494 Elf_Addr target; in reloc_jmpslots() 536 Elf_Addr 537 reloc_jmpslot(Elf_Addr *wherep, Elf_Addr target, in reloc_jmpslot() 540 Elf_Addr offset; in reloc_jmpslot() [all …]
|
H A D | rtld_machdep.h | 39 Elf_Addr *gotptr; /* GOT pointer (secure-plt only) */ 49 Elf_Addr reloc_jmpslot(Elf_Addr *where, Elf_Addr target, 52 void reloc_non_plt_self(Elf_Dyn *dynp, Elf_Addr relocbase); 67 (((Elf_Addr (*)(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, \
|
/freebsd/libexec/rtld-elf/amd64/ |
H A D | reloc.c | 120 obj->pltgot[1] = (Elf_Addr) obj; in init_pltgot() 135 Elf_Addr *where, symval; in reloc_non_plt() 206 symval = (Elf_Addr)defobj->relocbase + in reloc_non_plt() 293 *where += (Elf_Addr)defobj->tlsindex; in reloc_non_plt() 336 Elf_Addr *where; in reloc_plt() 342 *where += (Elf_Addr)obj->relocbase; in reloc_plt() 369 Elf_Addr *where, target; in reloc_jmpslots() 402 Elf_Addr 403 reloc_jmpslot(Elf_Addr *where, Elf_Addr target, in reloc_jmpslot() 420 Elf_Addr *where, target, *ptr; in reloc_iresolve_one() [all …]
|
/freebsd/libexec/rtld-elf/riscv/ |
H A D | reloc.c | 79 obj->pltgot[1] = (Elf_Addr)obj; in init_pltgot() 153 Elf_Addr *where; in reloc_plt() 159 *where += (Elf_Addr)obj->relocbase; in reloc_plt() 188 Elf_Addr *where; in reloc_jmpslots() 221 Elf_Addr *where, target, *ptr; in reloc_iresolve_one() 274 Elf_Addr *where, target; in reloc_gnu_ifunc() 303 Elf_Addr 304 reloc_jmpslot(Elf_Addr *where, Elf_Addr target, in reloc_jmpslot() 329 Elf_Addr *where, symval; in reloc_non_plt() 375 symval = (Elf_Addr)(defobj->relocbase + in reloc_non_plt() [all …]
|
H A D | rtld_machdep.h | 52 Elf_Addr _dynamic_addr; \ 63 Elf_Addr reloc_jmpslot(Elf_Addr *where, Elf_Addr target, 88 (((Elf_Addr (*)(unsigned long, unsigned long, unsigned long, \
|
/freebsd/libexec/rtld-elf/aarch64/ |
H A D | reloc.c | 117 obj->pltgot[1] = (Elf_Addr) obj; in init_pltgot() 180 Elf_Addr dtv_gen; 182 Elf_Addr tls_offs; 213 Elf_Addr offs; in reloc_tlsdesc() 258 Elf_Addr *where, target; in reloc_plt() 334 Elf_Addr *where, target; in reloc_jmpslots() 362 Elf_Addr *where, target, *ptr; in reloc_iresolve_one() 413 Elf_Addr *where, target; in reloc_gnu_ifunc() 440 Elf_Addr 441 reloc_jmpslot(Elf_Addr *where, Elf_Addr target, in reloc_jmpslot() [all …]
|
H A D | rtld_machdep.h | 46 Elf_Addr _dynamic_addr; \ 55 Elf_Addr reloc_jmpslot(Elf_Addr *where, Elf_Addr target, 76 (((Elf_Addr (*)(uint64_t, uint64_t, uint64_t, uint64_t, uint64_t, \
|
/freebsd/libexec/rtld-elf/i386/ |
H A D | reloc.c | 118 obj->pltgot[1] = (Elf_Addr) obj; in init_pltgot() 133 Elf_Addr *where, symval, add; in reloc_non_plt() 231 *where += (Elf_Addr)obj->relocbase; in reloc_non_plt() 262 *where += (Elf_Addr) def->st_value; in reloc_non_plt() 289 Elf_Addr *where/*, val*/; in reloc_plt() 295 *where += (Elf_Addr)obj->relocbase; in reloc_plt() 322 Elf_Addr *where, target; in reloc_jmpslots() 356 Elf_Addr 357 reloc_jmpslot(Elf_Addr *where, Elf_Addr target, in reloc_jmpslot() 373 Elf_Addr *where, target; in reloc_iresolve_one() [all …]
|
H A D | rtld_machdep.h | 42 ((const Elf_Dyn *)((obj)->relocbase + (Elf_Addr)&_DYNAMIC)) 50 Elf_Addr reloc_jmpslot(Elf_Addr *where, Elf_Addr target, 68 (((Elf_Addr (*)(uint32_t, uint32_t, uint32_t, uint32_t))(ptr))( \
|
/freebsd/sys/arm/arm/ |
H A D | elf_machdep.c | 161 static __inline Elf_Addr 162 load_ptr(Elf_Addr *where) in load_ptr() 164 Elf_Addr res; in load_ptr() 173 store_ptr(Elf_Addr *where, Elf_Addr val) in store_ptr() 184 elf_reloc_internal(linker_file_t lf, Elf_Addr relocbase, const void *data, in elf_reloc_internal() 187 Elf_Addr *where; in elf_reloc_internal() 188 Elf_Addr addr; in elf_reloc_internal() 189 Elf_Addr addend; in elf_reloc_internal() 198 where = (Elf_Addr *) (relocbase + rel->r_offset); in elf_reloc_internal() 205 where = (Elf_Addr *) (relocbase + rela->r_offset); in elf_reloc_internal() [all …]
|
/freebsd/sys/powerpc/powerpc/ |
H A D | elf32_machdep.c | 239 Elf_Addr *where; in elf_reloc_internal() 241 Elf_Addr addr; in elf_reloc_internal() 242 Elf_Addr addend, val; in elf_reloc_internal() 339 elf_reloc_self(Elf_Dyn *dynp, Elf_Addr relocbase) in elf_reloc_self() 342 Elf_Addr relasz = 0; in elf_reloc_self() 343 Elf_Addr *where; in elf_reloc_self() 367 *where = (Elf_Addr)(relocbase + rela->r_addend); in elf_reloc_self() 421 Elf_Addr *got; in elf_cpu_parse_dynamic() 427 got = (Elf_Addr *)(loadbase + dp->d_un.d_ptr); in elf_cpu_parse_dynamic() 429 got[1] = (Elf_Addr)ppc32_runtime_resolve; in elf_cpu_parse_dynamic() [all …]
|
H A D | elf64_machdep.c | 201 void elf_reloc_self(Elf_Dyn *dynp, Elf_Addr relocbase); 327 Elf_Addr *where; in elf_reloc_internal() 328 Elf_Addr addr; in elf_reloc_internal() 329 Elf_Addr addend, val; in elf_reloc_internal() 340 where = (Elf_Addr *) (relocbase + rela->r_offset); in elf_reloc_internal() 368 memcpy(where, (Elf_Addr *)addr, 3*sizeof(Elf_Addr)); in elf_reloc_internal() 391 elf_reloc_self(Elf_Dyn *dynp, Elf_Addr relocbase) in elf_reloc_self() 394 Elf_Addr relasz = 0; in elf_reloc_self() 395 Elf_Addr *where; in elf_reloc_self() 418 where = (Elf_Addr *)(relocbase + rela->r_offset); in elf_reloc_self() [all …]
|
/freebsd/stand/common/ |
H A D | reloc_elf.c | 49 int reltype, Elf_Addr relbase, Elf_Addr dataaddr, void *data, size_t len) in __elfN() 54 Elf_Addr addend, addr; in __elfN() 65 where = (Elf_Addr *)((char *)data + relbase + rel->r_offset - in __elfN() 76 where = (Elf_Addr *)((char *)data + relbase + rela->r_offset - in __elfN() 109 addr = (Elf_Addr)addend + relbase; in __elfN() 132 Elf_Addr addend, addr, *where, val; in __elfN() 140 where = (Elf_Addr *)((char *)data + relbase + rel->r_offset - in __elfN() 149 where = (Elf_Addr *)((char *)data + relbase + rela->r_offset - in __elfN()
|
H A D | load_elf_obj.c | 73 const char *name, Elf_Addr *startp, Elf_Addr *stopp, int *countp); 75 Elf_Addr p, void *val, size_t len); 269 shdr[i].sh_addr = (Elf_Addr)lastaddr; in __elfN() 325 shdr[i].sh_addr = (Elf_Addr)lastaddr; in __elfN() 407 Elf_Addr v, p, p_stop; in __elfN() 434 p += sizeof(Elf_Addr); in __elfN() 470 const char* name, Elf_Addr *startp, Elf_Addr *stopp, int *countp) in __elfN() 512 Elf_Addr off = p; in __elfN() 513 Elf_Addr base; in __elfN() 564 static Elf_Addr [all …]
|
/freebsd/sys/i386/i386/ |
H A D | elf_machdep.c | 173 elf_reloc_internal(linker_file_t lf, Elf_Addr relocbase, const void *data, in elf_reloc_internal() 176 Elf_Addr *where; in elf_reloc_internal() 177 Elf_Addr addr; in elf_reloc_internal() 178 Elf_Addr addend; in elf_reloc_internal() 187 where = (Elf_Addr *) (relocbase + rel->r_offset); in elf_reloc_internal() 194 where = (Elf_Addr *) (relocbase + rela->r_offset); in elf_reloc_internal() 229 addr += addend - (Elf_Addr)where; in elf_reloc_internal() 258 addr = ((Elf_Addr (*)(void))addr)(); in elf_reloc_internal() 272 elf_reloc(linker_file_t lf, Elf_Addr relocbase, const void *data, int type, in elf_reloc() 280 elf_reloc_local(linker_file_t lf, Elf_Addr relocbase, const void *data, in elf_reloc_local()
|
/freebsd/libexec/rtld-elf/ |
H A D | rtld.h | 51 extern Elf_Addr tls_dtv_generation; 150 Elf_Addr vaddrbase; /* Base address in shared object file */ 172 Elf_Addr *pltgot; /* PLT or GOT, depending on architecture */ 203 const Elf_Addr *bloom_gnu; /* Bloom filter used by GNU hash func */ 218 Elf_Addr init; /* Initialization function to call */ 219 Elf_Addr fini; /* Termination function to call */ 220 Elf_Addr preinit_array; /* Pre-initialization array of functions */ 221 Elf_Addr init_array; /* Initialization array of functions */ 222 Elf_Addr fini_array; /* Termination array of functions */ 390 extern Elf_Addr _GLOBAL_OFFSET_TABLE_[]; [all …]
|
H A D | map_object.c | 77 Elf_Addr base_vaddr; in map_object() 78 Elf_Addr base_vlimit; in map_object() 82 Elf_Addr data_vaddr; in map_object() 83 Elf_Addr data_vlimit; in map_object() 90 Elf_Addr phdr_vaddr; in map_object() 92 Elf_Addr bss_vaddr; in map_object() 93 Elf_Addr bss_vlimit; in map_object() 96 Elf_Addr relro_page; in map_object() 98 Elf_Addr note_start; in map_object() 99 Elf_Addr note_end; in map_object() [all …]
|
/freebsd/lib/libc/csu/aarch64/ |
H A D | reloc.c | 30 typedef Elf_Addr (*ifunc_resolver_t)( in crt1_handle_rela() 33 Elf_Addr *ptr, *where, target; in crt1_handle_rela() 37 ptr = (Elf_Addr *)r->r_addend; in crt1_handle_rela() 38 where = (Elf_Addr *)r->r_offset; in crt1_handle_rela()
|
/freebsd/sys/arm64/arm64/ |
H A D | elf_machdep.c | 161 reloc_instr_imm(Elf32_Addr *where, Elf_Addr val, u_int msb, u_int lsb) in reloc_instr_imm() 178 elf_reloc_internal(linker_file_t lf, Elf_Addr relocbase, const void *data, in elf_reloc_internal() 183 Elf_Addr *where, addr, addend, val; in elf_reloc_internal() 192 where = (Elf_Addr *) (relocbase + rel->r_offset); in elf_reloc_internal() 199 where = (Elf_Addr *) (relocbase + rela->r_offset); in elf_reloc_internal() 231 addr + addend - (Elf_Addr)where, 15, 2); in elf_reloc_internal() 238 addr + addend - (Elf_Addr)where, 20, 2); in elf_reloc_internal() 246 addr + addend - (Elf_Addr)where, 27, 2); in elf_reloc_internal() 271 elf_reloc_local(linker_file_t lf, Elf_Addr relocbase, const void *data, in elf_reloc_local() 281 elf_reloc(linker_file_t lf, Elf_Addr relocbase, const void *data, int type, in elf_reloc() [all …]
|
/freebsd/lib/libc/csu/amd64/ |
H A D | reloc.c | 54 Elf_Addr *ptr, *where, target; in crt1_handle_rela() 58 ptr = (Elf_Addr *)r->r_addend; in crt1_handle_rela() 59 where = (Elf_Addr *)r->r_offset; in crt1_handle_rela() 60 target = ((Elf_Addr (*)(uint32_t, uint32_t, uint32_t, in crt1_handle_rela()
|
/freebsd/lib/libc/csu/powerpc64/ |
H A D | reloc.c | 52 typedef Elf_Addr (*ifunc_resolver_t)( in crt1_handle_rela() 55 Elf_Addr *ptr, *where, target; in crt1_handle_rela() 59 ptr = (Elf_Addr *)r->r_addend; in crt1_handle_rela() 60 where = (Elf_Addr *)r->r_offset; in crt1_handle_rela()
|