Home
last modified time | relevance | path

Searched refs:dtv (Results 1 – 4 of 4) sorted by relevance

/bionic/libc/bionic/
Dbionic_elf_tls.cpp254 TlsDtv* const dtv = __get_tcb_dtv(tcb); in update_tls_dtv() local
260 for (size_t i = 0; i < dtv->count; ++i) { in update_tls_dtv()
264 dtv->modules[i] = static_tls + mod.static_offset; in update_tls_dtv()
268 mod.first_generation <= dtv->generation) { in update_tls_dtv()
272 allocator.free(dtv->modules[i]); in update_tls_dtv()
273 dtv->modules[i] = nullptr; in update_tls_dtv()
276 dtv->generation = atomic_load(&modules.generation); in update_tls_dtv()
290 TlsDtv* dtv = __get_tcb_dtv(tcb); in tls_get_addr_slow_path() local
292 void* mod_ptr = dtv->modules[module_idx]; in tls_get_addr_slow_path()
299 dtv->modules[module_idx] = mod_ptr; in tls_get_addr_slow_path()
[all …]
/bionic/tests/
Delftls_dl_test.cpp162 auto dtv = []() -> TlsDtv* { return __get_tcb_dtv(__get_bionic_tcb()); }; in TEST() local
174 TlsDtv* zero_dtv = dtv(); in TEST()
185 TlsDtv* initial_dtv = dtv(); in TEST()
197 ASSERT_EQ(5u, dtv()->count); in TEST()
200 ASSERT_EQ(13u, dtv()->count); in TEST()
204 TlsDtv* new_dtv = dtv(); in TEST()
215 ASSERT_EQ(new_dtv, dtv()); in TEST()
245 auto dtv = []() -> TlsDtv* { return __get_tcb_dtv(__get_bionic_tcb()); }; in TEST() local
262 count = dtv()->count; in TEST()
264 ASSERT_EQ(count, dtv()->count); in TEST()
/bionic/docs/
Delf-tls.md305   TlsDtv* dtv = __get_dtv();
307   if (dtv->generation >= arg->first_generation &&
308       dtv->modules[arg->idx.module] != nullptr) {
309     addr = dtv->modules[arg->idx.module] + arg->idx.offset;
/bionic/linker/
Dlinker.cpp377 TlsDtv* dtv = __get_tcb_dtv(__get_bionic_tcb()); in get_tls_block_for_this_thread() local
378 if (dtv->generation < tls_mod.first_generation) return nullptr; in get_tls_block_for_this_thread()
379 return dtv->modules[__tls_module_id_to_idx(si_tls->module_id)]; in get_tls_block_for_this_thread()