Searched refs:phdr_info (Results 1 – 9 of 9) sorted by relevance
/freebsd/lib/libc/gen/ |
H A D | dlfcn.c | 169 static struct dl_phdr_info phdr_info; variable 183 phdr_info.dlpi_addr = (Elf_Addr)auxp->a_un.a_ptr; in dl_init_phdr_info() 186 phdr_info.dlpi_name = (const char *)auxp->a_un.a_ptr; in dl_init_phdr_info() 189 phdr_info.dlpi_phdr = in dl_init_phdr_info() 193 phdr_info.dlpi_phnum = (Elf_Half)auxp->a_un.a_val; in dl_init_phdr_info() 197 for (i = 0; i < phdr_info.dlpi_phnum; i++) { in dl_init_phdr_info() 198 if (phdr_info.dlpi_phdr[i].p_type == PT_TLS) { in dl_init_phdr_info() 199 phdr_info.dlpi_tls_modid = 1; in dl_init_phdr_info() 202 phdr_info.dlpi_adds = 1; in dl_init_phdr_info() 233 phdr_info.dlpi_tls_data = __tls_get_addr(&ti); in _dl_iterate_phdr_locked() [all …]
|
H A D | elf_utils.c | 44 __elf_phdr_match_addr(struct dl_phdr_info *phdr_info, void *addr) in __elf_phdr_match_addr() argument 49 for (i = 0; i < phdr_info->dlpi_phnum; i++) { in __elf_phdr_match_addr() 50 ph = &phdr_info->dlpi_phdr[i]; in __elf_phdr_match_addr() 66 if (phdr_info->dlpi_addr + ph->p_vaddr <= (uintptr_t)addr && in __elf_phdr_match_addr() 67 (uintptr_t)addr < phdr_info->dlpi_addr + in __elf_phdr_match_addr() 71 return (i != phdr_info->dlpi_phnum); in __elf_phdr_match_addr()
|
/freebsd/lib/libthr/thread/ |
H A D | thr_fork.c | 109 __pthread_cxa_finalize(struct dl_phdr_info *phdr_info) in __pthread_cxa_finalize() argument 121 if (__elf_phdr_match_addr(phdr_info, af->prepare) || in __pthread_cxa_finalize() 122 __elf_phdr_match_addr(phdr_info, af->parent) || in __pthread_cxa_finalize() 123 __elf_phdr_match_addr(phdr_info, af->child)) { in __pthread_cxa_finalize() 134 _thr_tsd_unload(phdr_info); in __pthread_cxa_finalize() 135 _thr_sigact_unload(phdr_info); in __pthread_cxa_finalize()
|
H A D | thr_spec.c | 226 _thr_tsd_unload(struct dl_phdr_info *phdr_info) in _thr_tsd_unload() argument 240 if (__elf_phdr_match_addr(phdr_info, destructor)) in _thr_tsd_unload()
|
H A D | thr_private.h | 980 void __pthread_cxa_finalize(struct dl_phdr_info *phdr_info); 981 void _thr_tsd_unload(struct dl_phdr_info *phdr_info) __hidden; 982 void _thr_sigact_unload(struct dl_phdr_info *phdr_info) __hidden;
|
H A D | thr_sig.c | 496 _thr_sigact_unload(struct dl_phdr_info *phdr_info __unused) in _thr_sigact_unload() 514 __elf_phdr_match_addr(phdr_info, handler)) { in _thr_sigact_unload()
|
/freebsd/lib/libc/stdlib/ |
H A D | cxa_thread_atexit_impl.c | 103 struct dl_phdr_info phdr_info; in walk_cb_call() local 105 if (_rtld_addr_phdr(dtor->func, &phdr_info) && in walk_cb_call() 106 __elf_phdr_match_addr(&phdr_info, dtor->func)) in walk_cb_call()
|
H A D | atexit.c | 198 struct dl_phdr_info phdr_info; in __cxa_finalize() local 204 has_phdr = _rtld_addr_phdr(dso, &phdr_info); in __cxa_finalize() 219 !__elf_phdr_match_addr(&phdr_info, in __cxa_finalize() 243 __pthread_cxa_finalize(&phdr_info); in __cxa_finalize()
|
/freebsd/libexec/rtld-elf/ |
H A D | rtld.c | 187 struct dl_phdr_info *phdr_info); 4119 _rtld_addr_phdr(const void *addr, struct dl_phdr_info *phdr_info) in _rtld_addr_phdr() argument 4131 rtld_fill_dl_phdr_info(obj, phdr_info); in _rtld_addr_phdr() 4240 rtld_fill_dl_phdr_info(const Obj_Entry *obj, struct dl_phdr_info *phdr_info) in rtld_fill_dl_phdr_info() argument 4244 phdr_info->dlpi_addr = (Elf_Addr)obj->relocbase; in rtld_fill_dl_phdr_info() 4245 phdr_info->dlpi_name = obj->path; in rtld_fill_dl_phdr_info() 4246 phdr_info->dlpi_phdr = obj->phdr; in rtld_fill_dl_phdr_info() 4247 phdr_info->dlpi_phnum = obj->phsize / sizeof(obj->phdr[0]); in rtld_fill_dl_phdr_info() 4248 phdr_info->dlpi_tls_modid = obj->tlsindex; in rtld_fill_dl_phdr_info() 4250 phdr_info->dlpi_tls_data = (char *)tls_get_addr_slow(dtvp, in rtld_fill_dl_phdr_info() [all …]
|