Lines Matching refs:module

21 At run-time, TLS variables are allocated on a module-by-module basis, where a module is a shared
44 Each thread has a "Dynamic Thread Vector" (DTV) with a pointer to each module's TLS block (or NULL
45 if it hasn't been allocated yet). If the executable has a TLS segment, then it will always be module
66 A TLS variable may be in a different module than the reference.
87   long module; // starts counting at 1
93     R_TLS_DTPMOD(tls_var), // dynamic TP module ID
100 `R_TLS_DTPMOD` is a dynamic relocation to the index of the module containing `tls_var`, and
101 `R_TLS_DTPOFF` is a dynamic relocation to the offset of `tls_var` within its module's `PT_TLS`
104 `__tls_get_addr` looks up `TlsIndex::module`'s entry in the DTV and adds `TlsIndex::offset` to the
105 module's TLS block. Before it can do this, it ensures that the module's TLS block is allocated. A
111 2. If the DTV's entry for the given module is `NULL`, then `__tls_get_addr` allocates the module's
122 variables that are both part of the same module as the reference. Instead of a call to
124 module's TLS block, then adds each variable's DTPOFF to the result.
141     // a dynamic relocation against symbol 0 => current module ID
175 // Unlike DTPOFF, which is relative to the start of the module’s block,
288 * By storing the module's initial generation alongside the TlsIndex, the resolver function doesn't
308       dtv->modules[arg->idx.module] != nullptr) {
309     addr = dtv->modules[arg->idx.module] + arg->idx.offset;
317 The loader needs to allocate a table of `TlsDescDynamicArg` objects for each TLS module with dynamic
404 > ... All OSes use basically the same algorithm (a per-module lookup table) as detailed in Ulrich
419 …_link_map_l_tls_modid` | Offset of a `link_map` field containing the module's 1-based TLS module ID
425 * Find the `link_map` object and module-relative offset for a TLS variable.
426 * Use `_thread_db_link_map_l_tls_modid` to find the TLS variable's module ID.
429 * Use `_thread_db_dtv_dtv` and `_thread_db_dtv_t_pointer_val` to find the desired module's block
431 * Add the module-relative offset to the module pointer.
434 read past the end of an out-of-date DTV or access an unloaded module. To be robust, it needs to
435 compare a module's initial generation count against the DTV's generation count. (XXX: Does gdb have
510 iterates its module list to lazily allocate and free TLS blocks.
566 > necessary. For instance, a loaded module might only be used by one thread of the many which make