Namespaces

Records

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_t n)

    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_type tls_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