Namespaces
Records
-
class ConcatView -
class Diagnostics -
class DiagnosticsFlags -
class DiagnosticsReport -
class DynamicTlsPtr -
class Error -
class LinkingResult -
class LinkingSession -
class LinkingSessionBase -
class RuntimeDynamicLinker -
class RuntimeModule -
class StatefulError -
class TlsDescResolver -
class TlsdescIndirect -
class TlsdescIndirectStorage
Functions
-
fit::result<Error> PrepareTlsBlocksForThread (std::span<const TlsModule> dynamic_tls_modules, void * tp)Allocate and initialize dynamic TLS blocks for a newly-created thread given
a list of dynamic TLS module descriptors.
Defined at line 9 of file ../../sdk/lib/c/dlfcn/dl/tlsdesc-runtime-dynamic.cc
-
RawDynamicTlsArray & TpToDynamicTlsBlocks (void * tp)Given the thread pointer of any thread, including one just being allocated
and not actually started yet, access its _dl_tlsdesc_runtime_dynamic_blocks
variable as an lvalue reference. Just accessing the thread_local variable
directly is the same as `TpToDynamicTlsBlocks(__builtin_thread_pointer())`.
Defined at line 90 of file ../../sdk/lib/c/dlfcn/dl/test/../tlsdesc-runtime-dynamic.h
-
SizedDynamicTlsArray MakeDynamicTlsArray (fbl::AllocChecker & ac, size_t n)Defined at line 264 of file ../../sdk/lib/c/dlfcn/dl/test/../tlsdesc-runtime-dynamic.h
-
UnsizedDynamicTlsArray ExchangeRuntimeDynamicBlocks (SizedDynamicTlsArray blocks, void * tp)Defined at line 287 of file ../../sdk/lib/c/dlfcn/dl/test/../tlsdesc-runtime-dynamic.h
-
SizedDynamicTlsArray AdoptDynamicTlsArray (UnsizedDynamicTlsArray blocks, size_t n)In testing cases, when an old array is recovered and its size is known, turn
it into a SizedDynamicTlsArray again.
Defined at line 296 of file ../../sdk/lib/c/dlfcn/dl/test/../tlsdesc-runtime-dynamic.h
-
SizedDynamicTlsArray EnlargeDynamicTlsArray (fbl::AllocChecker &ac,SizedDynamicTlsArray &old_array,size_tn)In testing cases, an old array of known size can be expanded by moving its
existing blocks without deleting them but then deleting the old array
itself. This is only safe when it's known that no thread could be reading
the old array (for example, it's the current thread's own array) and then
it's fine if the thread does continue accessing the TLS blocks themselves
either through previously-acquired pointers or through the new array that
now owns those TLS blocks. The old array is passed by lvalue reference so
it can be left untouched if the allocation of the new array fails.
Defined at line 309 of file ../../sdk/lib/c/dlfcn/dl/test/../tlsdesc-runtime-dynamic.h
-
void * DynamicTlsData (const ld::abi::Abi<> &abi,Elf::size_typetls_module_id,const TlsModule &tls_module)Given the startup ABI, a global TLS module ID for a dynamically-loaded
module, and its module descriptor, return a pointer to the beginning of the
dynamic TLS block on the calling thread.
Defined at line 323 of file ../../sdk/lib/c/dlfcn/dl/test/../tlsdesc-runtime-dynamic.h
-
ptrdiff_t _dl_tlsdesc_runtime_dynamic_split (const elfldltl::Elf<>::TlsDescGot<> & )This hook splits the `value` field in half, with index in the high bits.
-
ptrdiff_t _dl_tlsdesc_runtime_dynamic_indirect (const elfldltl::Elf<>::TlsDescGot<> & )This hook makes the `value` field a `const TlsdescIndirect*`.
-
template <typename Ostreamtypename Ttypename = std::enable_if_t<std::is_same_v<Error, std::decay_t<T>>>>decltype(auto) operator<< (Ostream && os, T && error)This makes ostream
<
<
things like gtest macros take dl::Error destructively.
Defined at line 201 of file ../../sdk/lib/c/dlfcn/dl/test/../error.h
Concepts
template <class Iterator> IteratorHasArrow requires (Iterator it) { { it.operator->() } -> std::same_as<typename Iterator::value_type *>; }
Defined at line 21 of file ../../sdk/lib/c/dlfcn/dl/test/../concat-view.h
Variables
StatefulError gPerThreadErrorState
Defined at line 13 of file ../../sdk/lib/c/dlfcn/dl/stateful-error.cc
RawDynamicTlsArray _dl_tlsdesc_runtime_dynamic_blocks
Defined at line 54 of file ../../sdk/lib/c/dlfcn/dl/tls-desc-resolver.cc
const int kOpenSymbolScopeMask
Defined at line 58 of file ../../sdk/lib/c/dlfcn/dl/test/../runtime-dynamic-linker.h
const int kOpenBindingModeMask
Defined at line 59 of file ../../sdk/lib/c/dlfcn/dl/test/../runtime-dynamic-linker.h
const int kOpenFlagsMask
Defined at line 60 of file ../../sdk/lib/c/dlfcn/dl/test/../runtime-dynamic-linker.h