Home
last modified time | relevance | path

Searched refs:tcb (Results 1 – 7 of 7) sorted by relevance

/bionic/libc/bionic/
D__libc_init_main_thread.cpp88 void __init_tcb(bionic_tcb* tcb, pthread_internal_t* thread) { in __init_tcb() argument
92 tcb->tls_slot(TLS_SLOT_SELF) = &tcb->tls_slot(TLS_SLOT_SELF); in __init_tcb()
94 tcb->tls_slot(TLS_SLOT_THREAD_ID) = thread; in __init_tcb()
97 void __init_tcb_dtv(bionic_tcb* tcb) { in __init_tcb_dtv() argument
101 __set_tcb_dtv(tcb, const_cast<TlsDtv*>(&zero_dtv)); in __init_tcb_dtv()
Dpthread_internal.h195 __LIBC_HIDDEN__ void __init_tcb(bionic_tcb* tcb, pthread_internal_t* thread);
196 __LIBC_HIDDEN__ void __init_tcb_stack_guard(bionic_tcb* tcb);
197 __LIBC_HIDDEN__ void __init_tcb_dtv(bionic_tcb* tcb);
198 __LIBC_HIDDEN__ void __init_bionic_tls_ptrs(bionic_tcb* tcb, bionic_tls* tls);
226 static inline __always_inline TlsDtv* __get_tcb_dtv(bionic_tcb* tcb) { in __get_tcb_dtv() argument
227 uintptr_t dtv_slot = reinterpret_cast<uintptr_t>(tcb->tls_slot(TLS_SLOT_DTV)); in __get_tcb_dtv()
231 static inline void __set_tcb_dtv(bionic_tcb* tcb, TlsDtv* val) { in __set_tcb_dtv() argument
232 tcb->tls_slot(TLS_SLOT_DTV) = &val->generation; in __set_tcb_dtv()
Dpthread_create.cpp62 void __init_tcb_stack_guard(bionic_tcb* tcb) { in __init_tcb_stack_guard() argument
64 tcb->tls_slot(TLS_SLOT_STACK_GUARD) = reinterpret_cast<void*>(__stack_chk_guard); in __init_tcb_stack_guard()
67 void __init_bionic_tls_ptrs(bionic_tcb* tcb, bionic_tls* tls) { in __init_bionic_tls_ptrs() argument
68 tcb->thread()->bionic_tls = tls; in __init_bionic_tls_ptrs()
69 tcb->tls_slot(TLS_SLOT_BIONIC_TLS) = tls; in __init_bionic_tls_ptrs()
306 auto tcb = reinterpret_cast<bionic_tcb*>(mapping.static_tls + layout.offset_bionic_tcb()); in __allocate_thread() local
311 __init_tcb(tcb, thread); in __allocate_thread()
312 __init_tcb_dtv(tcb); in __allocate_thread()
313 __init_tcb_stack_guard(tcb); in __allocate_thread()
314 __init_bionic_tls_ptrs(tcb, tls); in __allocate_thread()
[all …]
Dbionic_elf_tls.cpp301 static void update_tls_dtv(bionic_tcb* tcb) { in update_tls_dtv() argument
308 if (__get_tcb_dtv(tcb)->generation == atomic_load(&modules.generation)) { in update_tls_dtv()
312 const size_t old_cnt = __get_tcb_dtv(tcb)->count; in update_tls_dtv()
321 TlsDtv* const old_dtv = __get_tcb_dtv(tcb); in update_tls_dtv()
326 __set_tcb_dtv(tcb, new_dtv); in update_tls_dtv()
329 TlsDtv* const dtv = __get_tcb_dtv(tcb); in update_tls_dtv()
332 char* static_tls = reinterpret_cast<char*>(tcb) - layout.offset_bionic_tcb(); in update_tls_dtv()
362 bionic_tcb* tcb = __get_bionic_tcb(); in tls_get_addr_slow_path() local
369 update_tls_dtv(tcb); in tls_get_addr_slow_path()
371 TlsDtv* dtv = __get_tcb_dtv(tcb); in tls_get_addr_slow_path()
[all …]
Dsys_thread_properties.cpp131 bionic_tcb* const tcb = __get_bionic_tcb_for_thread(tid); in __libc_iterate_dynamic_tls() local
132 TlsDtv* const dtv = __get_tcb_dtv(tcb); in __libc_iterate_dynamic_tls()
/bionic/libc/private/
Dbionic_elf_tls.h229 void __free_dynamic_tls(bionic_tcb* tcb);
/bionic/docs/
Delf-tls.md747 Add an lld option: `--android-tls[-tcb=SIZE]`