Home
last modified time | relevance | path

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

/bionic/libc/bionic/
Dbionic_elf_tls.cpp184 TlsModules& modules = __libc_shared_globals()->tls_modules; in __init_static_tls() local
186 ScopedReadLock locker(&modules.rwlock); in __init_static_tls()
188 for (size_t i = 0; i < modules.module_count; ++i) { in __init_static_tls()
189 TlsModule& module = modules.module_table[i]; in __init_static_tls()
228 const TlsModules& modules = __libc_shared_globals()->tls_modules; in update_tls_dtv() local
234 if (__get_tcb_dtv(tcb)->generation == atomic_load(&modules.generation)) { in update_tls_dtv()
245 if (modules.module_count > old_cnt) { in update_tls_dtv()
262 if (i < modules.module_count) { in update_tls_dtv()
263 const TlsModule& mod = modules.module_table[i]; in update_tls_dtv()
265 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()
131 TlsModules& modules = __libc_shared_globals()->tls_modules; in __libc_iterate_dynamic_tls() local
136 for (size_t i = modules.static_module_count; i < dtv->count; ++i) { in __libc_iterate_dynamic_tls()
137 void* dtls_begin = dtv->modules[i]; in __libc_iterate_dynamic_tls()
Dlibc_init_static.cpp145 TlsModules& modules = __libc_shared_globals()->tls_modules; in layout_static_tls() local
154 modules.module_count = 1; in layout_static_tls()
155 modules.static_module_count = 1; in layout_static_tls()
156 modules.module_table = &mod; in layout_static_tls()
161 __libc_tls_generation_copy = modules.generation; in layout_static_tls()
/bionic/linker/
Dlinker_tls.cpp131 TlsModules& modules = __libc_shared_globals()->tls_modules; in linker_finalize_static_tls() local
132 modules.static_module_count = modules.module_count; in linker_finalize_static_tls()
DAndroid.bp408 // assorted modules
/bionic/libc/private/
Dbionic_elf_tls.h183 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.md204 modules will not be built. Note that `make checkbuild` will not be complete
205 either, as `make tests` covers a few additional modules, but generally speaking