Home
last modified time | relevance | path

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

/bionic/libc/bionic/
Dpthread_internal.h176 __LIBC_HIDDEN__ void __init_tcb(bionic_tcb* tcb, pthread_internal_t* thread);
177 __LIBC_HIDDEN__ void __init_tcb_stack_guard(bionic_tcb* tcb);
178 __LIBC_HIDDEN__ void __init_tcb_dtv(bionic_tcb* tcb);
179 __LIBC_HIDDEN__ void __init_bionic_tls_ptrs(bionic_tcb* tcb, bionic_tls* tls);
206 static inline __always_inline TlsDtv* __get_tcb_dtv(bionic_tcb* tcb) { in __get_tcb_dtv() argument
207 uintptr_t dtv_slot = reinterpret_cast<uintptr_t>(tcb->tls_slot(TLS_SLOT_DTV)); in __get_tcb_dtv()
211 static inline void __set_tcb_dtv(bionic_tcb* tcb, TlsDtv* val) { in __set_tcb_dtv() argument
212 tcb->tls_slot(TLS_SLOT_DTV) = &val->generation; in __set_tcb_dtv()
Dbionic_elf_tls.cpp227 static void update_tls_dtv(bionic_tcb* tcb) { in update_tls_dtv() argument
234 if (__get_tcb_dtv(tcb)->generation == atomic_load(&modules.generation)) { in update_tls_dtv()
238 const size_t old_cnt = __get_tcb_dtv(tcb)->count; in update_tls_dtv()
247 TlsDtv* const old_dtv = __get_tcb_dtv(tcb); in update_tls_dtv()
252 __set_tcb_dtv(tcb, new_dtv); in update_tls_dtv()
255 TlsDtv* const dtv = __get_tcb_dtv(tcb); in update_tls_dtv()
258 char* static_tls = reinterpret_cast<char*>(tcb) - layout.offset_bionic_tcb(); in update_tls_dtv()
288 bionic_tcb* tcb = __get_bionic_tcb(); in tls_get_addr_slow_path() local
295 update_tls_dtv(tcb); in tls_get_addr_slow_path()
297 TlsDtv* dtv = __get_tcb_dtv(tcb); in tls_get_addr_slow_path()
[all …]
Dpthread_create.cpp60 void __init_tcb_stack_guard(bionic_tcb* tcb) { in __init_tcb_stack_guard() argument
62 tcb->tls_slot(TLS_SLOT_STACK_GUARD) = reinterpret_cast<void*>(__stack_chk_guard); in __init_tcb_stack_guard()
65 void __init_bionic_tls_ptrs(bionic_tcb* tcb, bionic_tls* tls) { in __init_bionic_tls_ptrs() argument
66 tcb->thread()->bionic_tls = tls; in __init_bionic_tls_ptrs()
67 tcb->tls_slot(TLS_SLOT_BIONIC_TLS) = tls; in __init_bionic_tls_ptrs()
289 auto tcb = reinterpret_cast<bionic_tcb*>(mapping.static_tls + layout.offset_bionic_tcb()); in __allocate_thread() local
294 __init_tcb(tcb, thread); in __allocate_thread()
295 __init_tcb_dtv(tcb); in __allocate_thread()
296 __init_tcb_stack_guard(tcb); in __allocate_thread()
297 __init_bionic_tls_ptrs(tcb, tls); in __allocate_thread()
[all …]
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()
Dsys_thread_properties.cpp132 bionic_tcb* const tcb = __get_bionic_tcb_for_thread(tid); in __libc_iterate_dynamic_tls() local
133 TlsDtv* const dtv = __get_tcb_dtv(tcb); in __libc_iterate_dynamic_tls()
/bionic/libc/private/
Dbionic_elf_tls.h202 void __free_dynamic_tls(bionic_tcb* tcb);
/bionic/docs/
Delf-tls.md747 Add an lld option: `--android-tls[-tcb=SIZE]`