Home
last modified time | relevance | path

Searched refs:phdr_info (Results 1 – 9 of 9) sorted by relevance

/freebsd/lib/libc/gen/
H A Ddlfcn.c169 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 Delf_utils.c44 __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 Dthr_fork.c109 __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 Dthr_spec.c226 _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 Dthr_private.h980 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 Dthr_sig.c496 _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 Dcxa_thread_atexit_impl.c103 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 Datexit.c198 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 Drtld.c187 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 …]