Home
last modified time | relevance | path

Searched refs:modules (Results 1 – 11 of 11) sorted by relevance

/bionic/libc/bionic/
Dbionic_elf_tls.cpp258 TlsModules& modules = __libc_shared_globals()->tls_modules; in __init_static_tls() local
260 ScopedReadLock locker(&modules.rwlock); in __init_static_tls()
262 for (size_t i = 0; i < modules.module_count; ++i) { in __init_static_tls()
263 TlsModule& module = modules.module_table[i]; in __init_static_tls()
302 const TlsModules& modules = __libc_shared_globals()->tls_modules; in update_tls_dtv() local
308 if (__get_tcb_dtv(tcb)->generation == atomic_load(&modules.generation)) { in update_tls_dtv()
319 if (modules.module_count > old_cnt) { in update_tls_dtv()
336 if (i < modules.module_count) { in update_tls_dtv()
337 const TlsModule& mod = modules.module_table[i]; in update_tls_dtv()
339 dtv->modules[i] = static_tls + mod.static_offset; in update_tls_dtv()
[all …]
Dsys_thread_properties.cpp59 TlsModules& modules = __libc_shared_globals()->tls_modules; in __libc_register_thread_exit_callback() local
61 if (modules.first_thread_exit_callback == nullptr) { in __libc_register_thread_exit_callback()
62 modules.first_thread_exit_callback = cb; in __libc_register_thread_exit_callback()
70 new_node->prev = modules.thread_exit_callback_tail_node; in __libc_register_thread_exit_callback()
71 modules.thread_exit_callback_tail_node = new_node; in __libc_register_thread_exit_callback()
130 TlsModules& modules = __libc_shared_globals()->tls_modules; in __libc_iterate_dynamic_tls() local
135 for (size_t i = modules.static_module_count; i < dtv->count; ++i) { in __libc_iterate_dynamic_tls()
136 void* dtls_begin = dtv->modules[i]; in __libc_iterate_dynamic_tls()
Dlibc_init_static.cpp139 TlsModules& modules = __libc_shared_globals()->tls_modules; in layout_static_tls() local
148 modules.module_count = 1; in layout_static_tls()
149 modules.static_module_count = 1; in layout_static_tls()
150 modules.module_table = &mod; in layout_static_tls()
155 __libc_tls_generation_copy = modules.generation; in layout_static_tls()
/bionic/linker/
Dlinker_tls.cpp136 TlsModules& modules = __libc_shared_globals()->tls_modules; in linker_finalize_static_tls() local
137 modules.static_module_count = modules.module_count; in linker_finalize_static_tls()
DAndroid.bp459 // assorted modules
Dlinker.cpp413 return dtv->modules[__tls_module_id_to_idx(si_tls->module_id)]; in get_tls_block_for_this_thread()
/bionic/tests/libs/
Delftls_dtv_resize_helper.cpp88 if (current_dtv->modules[i] != nullptr) { in highest_modid_in_dtv()
143 ASSERT_NE(nullptr, initial_dtv->modules[__tls_module_id_to_idx(first_filler_modid)]); in main()
/bionic/libc/private/
Dbionic_elf_tls.h210 void* modules[]; member
/bionic/docs/
Delf-tls.md22 object or executable. At program startup, TLS for all initially-loaded modules comprises the "Static
50 The DTV's "generation" field is used to lazily update/reallocate the DTV when new modules are loaded
109 `__tls_get_addr` may reallocate the DTV or free blocks for unloaded modules.
225 As long as a shared object is one of the initially-loaded modules, a better option is to use
272 To support modules loaded with `dlopen`, the loader must use a resolver function that calls
301   char* modules[];
308       dtv->modules[arg->idx.module] != nullptr) {
309     addr = dtv->modules[arg->idx.module] + arg->idx.offset;
496 * TLS for dynamically loaded and unloaded modules (`__tls_get_addr`)
507 The loader exposes a list of TLS modules ([`struct TlsModules`][TlsModules]) to `libc.so` using the
[all …]
/bionic/
DREADME.md328 modules will not be built. Note that `make checkbuild` will not be complete
329 either, as `make tests` covers a few additional modules, but generally speaking
/bionic/libc/
DAndroid.bp2230 "//packages/modules/Virtualization/vmbase",