Namespaces
Enumerations
enum AssumeAccess
| Name | Value |
|---|---|
| kUnknown | 0 |
| kAligned | 1 |
Defined at line 41 of file ../../third_party/llvm-libc/src/src/string/memory_utils/arm/common.h
enum BlockOp
| Name | Value |
|---|---|
| kFull | 0 |
| kByWord | 1 |
Defined at line 42 of file ../../third_party/llvm-libc/src/src/string/memory_utils/arm/common.h
enum Arg
| Name | Value |
|---|---|
| P1 | 0 |
| P2 | 1 |
| Dst | P1 |
| Src | P2 |
An enum class that discriminates between the first and second pointer.
Defined at line 327 of file ../../third_party/llvm-libc/src/src/string/memory_utils/utils.h
Records
-
class AlignHelper -
class AlignHelper -
class AllThreads -
class AllocationVmo -
class BigInt -
class BigInt -
class CreatedThreadDeleter -
class FloatToString -
class FloatToString -
class GuardedPageBlock -
class Incrementable -
class IntegerToString -
class Log -
class NoStack -
class NumberPair -
class PageRoundedSize -
class Processargs -
class Sign -
class StartupRelocate -
class StartupTrampoline -
class StrToNumResult -
class StrictIntegralType -
class ThreadAttributes -
class ThreadStorage -
class Weak -
class WeakCall -
class WeakCall -
class WeakLock -
class ZxName -
class is_big_int -
class is_big_int -
class is_big_int -
class is_integral_or_big_int -
class is_unsigned_integral_or_big_int -
class make_big_int_signed -
class make_big_int_signed -
class make_big_int_signed -
class make_big_int_unsigned -
class make_big_int_unsigned -
class make_big_int_unsigned -
class make_integral_or_big_int_signed -
class make_integral_or_big_int_signed -
class make_integral_or_big_int_signed -
class make_integral_or_big_int_unsigned -
class make_integral_or_big_int_unsigned -
class make_integral_or_big_int_unsigned
Functions
-
int __pthread_attr_init_impl__ (pthread_attr_t * )Defined at line 12 of file ../../sdk/lib/c/pthread/pthread_attr_init.cc
-
int __pthread_detach_impl__ (pthread_t )Defined at line 12 of file ../../sdk/lib/c/pthread/pthread_detach.cc
-
void __pthread_exit_impl__ (void * )Defined at line 12 of file ../../sdk/lib/c/pthread/pthread_exit.cc
-
int __thrd_create_impl__ (thrd_t * , thrd_start_t , void * )Defined at line 12 of file ../../sdk/lib/c/threads/thrd_create.cc
-
int __thrd_create_with_name_impl__ (thrd_t * , thrd_start_t , void * , const char * )Defined at line 12 of file ../../sdk/lib/c/threads/thrd_create_with_name.cc
-
int __thrd_detach_impl__ (thrd_t )Defined at line 12 of file ../../sdk/lib/c/threads/thrd_detach.cc
-
void __thrd_exit_impl__ (int )Defined at line 12 of file ../../sdk/lib/c/threads/thrd_exit.cc
-
int __thrd_join_impl__ (thrd_t , int * )Defined at line 12 of file ../../sdk/lib/c/threads/thrd_join.cc
-
int __pthread_create_impl__ (pthread_t *__restrict , const pthread_attr_t *__restrict , __pthread_start_t , void * )Defined at line 13 of file ../../sdk/lib/c/pthread/pthread_create.cc
-
void __abort_impl__ ()Defined at line 13 of file ../../sdk/lib/c/stdlib/abort.cc
-
int thrd_create_with_name (thrd_t * thread, thrd_start_t func, void * arg, const char * name)Defined at line 12 of file ../../sdk/lib/c/threads/thrd_create_with_name.cc
-
int __pthread_join_impl__ (pthread_t , void ** )Defined at line 14 of file ../../sdk/lib/c/pthread/pthread_join.cc
-
void __exit_impl__ (int )Defined at line 15 of file ../../sdk/lib/c/stdlib/exit.cc
-
int __pthread_getname_np_impl__ (pthread_t , char * , size_t )Defined at line 16 of file ../../sdk/lib/c/pthread/pthread_getname_np.cc
-
int __pthread_setname_np_impl__ (pthread_t , const char * )Defined at line 16 of file ../../sdk/lib/c/pthread/pthread_setname_np.cc
-
void abort ()Defined at line 13 of file ../../sdk/lib/c/stdlib/abort.cc
-
void exit (int status)Defined at line 15 of file ../../sdk/lib/c/stdlib/exit.cc
-
int pthread_attr_init (pthread_attr_t * attr)Defined at line 12 of file ../../sdk/lib/c/pthread/pthread_attr_init.cc
-
int pthread_detach (pthread_t thread)Defined at line 12 of file ../../sdk/lib/c/pthread/pthread_detach.cc
-
void pthread_exit (void * retval)Defined at line 12 of file ../../sdk/lib/c/pthread/pthread_exit.cc
-
int pthread_join (pthread_t thread, void ** retval)Defined at line 14 of file ../../sdk/lib/c/pthread/pthread_join.cc
-
int pthread_setname_np (pthread_t , const char * name)Defined at line 16 of file ../../sdk/lib/c/pthread/pthread_setname_np.cc
-
int thrd_create (thrd_t * thread, thrd_start_t func, void * arg)Defined at line 12 of file ../../sdk/lib/c/threads/thrd_create.cc
-
int thrd_detach (thrd_t thread)Defined at line 12 of file ../../sdk/lib/c/threads/thrd_detach.cc
-
void thrd_exit (int retval)Defined at line 12 of file ../../sdk/lib/c/threads/thrd_exit.cc
-
int thrd_join (thrd_t thread, int * retval)Defined at line 12 of file ../../sdk/lib/c/threads/thrd_join.cc
-
pthread_attr_t ToPthreadAttr (ThreadAttributes attr)Defined at line 12 of file ../../sdk/lib/c/pthread/attr.h
-
int pthread_create (pthread_t *__restrict thread, const pthread_attr_t *__restrict attr, __pthread_start_t func, void * arg)Defined at line 13 of file ../../sdk/lib/c/pthread/pthread_create.cc
-
ThreadAttributes FromPthreadAttr (const pthread_attr_t * attr)Defined at line 20 of file ../../sdk/lib/c/pthread/attr.h
-
zx::unowned_vmar AllocationVmar ()This is the VMAR to be used for general data allocations and mappings.
**Note:** It should not be presumed to permit executable mappings.
Defined at line 24 of file ../../sdk/lib/c/zircon/vmar.h
-
int dl_iterate_phdr (__dl_iterate_phdr_callback_t , void * ) -
int pthread_getname_np (pthread_t , char * , size_t )Defined at line 16 of file ../../sdk/lib/c/pthread/pthread_getname_np.cc
-
cpp::string_view get_error_string (int err_num) -
cpp::string_view get_error_string (int err_num, cpp::span<char> buffer) -
PageRoundedSize InitialStackSize ()Get the stack size indicated by the executable's PT_GNU_STACK, or default.
This must use only the basic machine ABI because it's called in phase one
from StartCompilerAbi (startup-trampoline.h).
Defined at line 11 of file ../../sdk/lib/c/ld/initial-stack-size.cc
-
void _dlfcn_lock ()The libdl entrypoints do their own locking for the most part. But in some
places libc needs to exclude libdl (dlopen) changes while doing other things
before or after it calls into a _dlfcn_* hook to have libdl do something.
-
void _dlfcn_unlock () -
void StartupSanitizerModuleLoaded ()This calls the
<zircon
/sanitizer.h> __sanitizer_module_loaded hook for every
module dl_iterate_phdr would report. This is called in phase two before
calling the __sanitizer_startup_hook.
Defined at line 11 of file ../../sdk/lib/c/ld/musl-ctors.cc
-
void __libc_start_main (zx_handle_t bootstrap_client_end, const void * vdso, zx_handle_t svc_server_end, MainFunction * )This is the ABI between the _start (Scrt1.o) code linked into each
executable and libc, whether libc is linked in statically or dynamically.
This is implemented in assembly (startup-trampoline.S) and is wholly
independent of the bootstrap protocol details. It is entered using the
basic machine ABI and calls StartCompilerAbi (below), but then acts as a
tail call to the namespaced __libc_start_main (declared in start-main.h).
Both functions have the same name in the source and thus as rendered in
backtraces with debugging symbols so that, at least by plain function name,
every point in startup should show _start -> __libc_start_main -> ... in a
backtrace whether in the initial phase or when -> ... is -> main -> ...
NOLINTNEXTLINE(bugprone-reserved-identifier)
-
void StartupCtors ()This calls all the static constructors and such encoded via ELF. This is
the end of phase two, the point at which the full normal standard C runtime
environment is entirely place: it comes after all sanitizer hooks; the
libc-internal (and fdio) setup and preinit hooks; and very shortly before
calling the user's `main` (final argument to __libc_start_main)
Defined at line 13 of file ../../sdk/lib/c/ld/musl-ctors.cc
-
ld::DlPhdrInfoCounts _dlfcn_phdr_info_counts ()This returns the .dlpi_adds, .dlpi_subs values that dl_iterate_phdr will use
in the callbacks it makes for startup modules. If it's undefined, values
ld::DlPhdrInfoInitialExecCounts(_ld_abi) are used. Note that there is no
synchronization intended between collecting these values and the eventual
call to _dlfcn_iterate_phdr (see below). If there are intervening dlopen or
dlclose calls that change the values that _dlfcn_iterate_phdr will later
give to its callbacks from the ones returned here, so be it. Note that
after this returns, _dlfcn_iterate_phdr will not necessarily be called at
all (if the user's callback bailed out early).
-
int _dlfcn_iterate_phdr (__dl_iterate_phdr_callback_t , void * )This has the exact signature and semantics of dl_iterate_phdr, except that
it's only called after all the startup modules have been reported to the
user's callback. If the user's callback bailed out with a nonzero return
value, this will never be called. If this is called at all, then it's
paired with the preceding _dlfcn_phdr_info_counts() call on the same thread.
This is tail-called by libc's dl_iterate_phdr after reporting the startup
modules. If it's undefined, dl_iterate_phdr just returns zero instead.
-
void ThreadExit (intptr_t value)This does the final "normal" work on the exiting thread: running
destructors, etc. This is reached either directly from a call to
thrd_exit() or pthread_exit(), or from a thread function returning.
Defined at line 17 of file ../../sdk/lib/c/threads/thread-exit.cc
-
zx::result<intptr_t> ThreadJoin (Thread & thread)This underlies thrd_join() and pthread_join(). It yields the value passed
to ThreadExit().
Defined at line 19 of file ../../sdk/lib/c/threads/thread-join.cc
-
zx::result<> ThreadDetach (Thread & thread)This underlies thrd_detach() and pthread_detach(). As soon as it returns
success, the Thread reference is no longer safe to use in any way because
the thread can exit and free the storage itself at any time.
Defined at line 17 of file ../../sdk/lib/c/threads/thread-detach.cc
-
void OnTlsSegments (Thread & thread, sanitizer_memory_snapshot_callback_t * callback, void * callback_arg)Make the callback on the thread's TLS segments.
Defined at line 10 of file ../../sdk/lib/c/threads/musl-on-tls-segments.cc
-
bool operator== (Sign a, Sign b)Defined at line 21 of file ../../third_party/llvm-libc/src/src/__support/sign.h
-
void WritableSegmentsMemorySnapshot (sanitizer_memory_snapshot_callback_t * , void * )Make callbacks on behalf of __sanitizer_memory_snapshot for the writable
segments of every module. This is run when all other threads were
previously suspended while holding the kDlfcnLock; but it's no longer held.
All other threads remain suspended during this call. (So it's as if the
lock _were_ held in that no other thread will contend for it.) Thus this
function can safely take locks but also can probably safely ignore locking.
Defined at line 21 of file ../../sdk/lib/c/ld/_dl_phdr_report_globals.cc
-
template <typename T, size_t count>cpp::enable_if_t<cpp::is_unsigned_v<T>, T> mask_trailing_ones ()Create a bitmask with the count right-most bits set to 1, and all other bits
set to 0. Only unsigned types are allowed.
Defined at line 24 of file ../../third_party/llvm-libc/src/src/__support/math_extras.h
-
template <typename T, size_t count>cpp::enable_if_t<cpp::is_unsigned_v<T>, T> mask_trailing_ones ()Create a bitmask with the count right-most bits set to 1, and all other bits
set to 0. Only unsigned types are allowed.
Defined at line 24 of file ../../third_party/llvm-libc/src/src/__support/math_extras.h
-
bool operator!= (Sign a, Sign b)Defined at line 25 of file ../../third_party/llvm-libc/src/src/__support/sign.h
-
template <size_t alignment>uintptr_t distance_to_align_down (const void * ptr)Returns the number of bytes to substract from ptr to get to the previous
multiple of alignment. If ptr is already aligned returns 0.
Defined at line 29 of file ../../third_party/llvm-libc/src/src/string/memory_utils/utils.h
-
template <size_t alignment>uintptr_t distance_to_align_down (const void * ptr)Returns the number of bytes to substract from ptr to get to the previous
multiple of alignment. If ptr is already aligned returns 0.
Defined at line 29 of file ../../third_party/llvm-libc/src/src/string/memory_utils/utils.h
-
(lambda at ../../sdk/lib/c/sanitizers/../ld/writable-segments.h:37:10) ModuleWritableSegmentsCallback (sanitizer_memory_snapshot_callback_t * callback, void * callback_arg)This returns a void(const ld::abi::Abi
<
>::Module
&
) callable to make such
callbacks for one module.
Defined at line 31 of file ../../sdk/lib/c/sanitizers/../ld/writable-segments.h
-
void _Exit (int status)Defined at line 34 of file ../../sdk/lib/c/stdlib/_Exit.cc
-
void _exit (int status)Defined at line 36 of file ../../sdk/lib/c/stdlib/_Exit.cc
-
void InitStartupRandom ()This fills all LIBC_STARTUP_RANDOM_VAR objects with random bits. This is
called very early, before the compiler ABI is set up. In fact, it's also
what initializes the main thread's ZX_TLS_STACK_GUARD_OFFSET slot with
random bits. Therefore it's built with an hermetic partial link, and so
needs LIBC_ASM_LINKAGE.
Defined at line 29 of file ../../sdk/lib/c/startup/startup-random.cc
-
void ___Exit_impl__ (int )Standard C specifies _Exit and C++ declares it noexcept.
POSIX specifies _exit and in C++ it's not declared noexcept.
They're actually the same thing, but a strict C++ compiler
won't let us make them [[gnu::alias]] aliases directly here
because the noexcept constitutes a type difference. So both
are separately defined identically and will be ICF'd together
for the same effect as the alias, but we can't use the alias
(unless we resort to assembly, but this seems cleaner).
Defined at line 34 of file ../../sdk/lib/c/stdlib/_Exit.cc
-
void ___exit_impl__ (int )Defined at line 36 of file ../../sdk/lib/c/stdlib/_Exit.cc
-
template <size_t alignment>uintptr_t distance_to_align_up (const void * ptr)Returns the number of bytes to add to ptr to get to the next multiple of
alignment. If ptr is already aligned returns 0.
Defined at line 38 of file ../../third_party/llvm-libc/src/src/string/memory_utils/utils.h
-
template <size_t alignment>uintptr_t distance_to_align_up (const void * ptr)Returns the number of bytes to add to ptr to get to the next multiple of
alignment. If ptr is already aligned returns 0.
Defined at line 38 of file ../../third_party/llvm-libc/src/src/string/memory_utils/utils.h
-
template <typename T, size_t count>cpp::enable_if_t<cpp::is_unsigned_v<T>, T> mask_leading_ones ()Create a bitmask with the count left-most bits set to 1, and all other bits
set to 0. Only unsigned types are allowed.
Defined at line 40 of file ../../third_party/llvm-libc/src/src/__support/math_extras.h
-
template <typename T, size_t count>cpp::enable_if_t<cpp::is_unsigned_v<T>, T> mask_leading_ones ()Create a bitmask with the count left-most bits set to 1, and all other bits
set to 0. Only unsigned types are allowed.
Defined at line 40 of file ../../third_party/llvm-libc/src/src/__support/math_extras.h
-
void inline_memset (void * dst, uint8_t value, size_t count)Defined at line 40 of file ../../third_party/llvm-libc/src/src/string/memory_utils/inline_memset.h
-
void inline_memset (void * dst, uint8_t value, size_t count)Defined at line 40 of file ../../third_party/llvm-libc/src/src/string/memory_utils/inline_memset.h
-
uintptr_t misaligned (CPtr ptr)Defined at line 44 of file ../../third_party/llvm-libc/src/src/string/memory_utils/arm/common.h
-
void inline_memcpy (void *__restrict dst, const void *__restrict src, size_t count)Defined at line 44 of file ../../third_party/llvm-libc/src/src/string/memory_utils/inline_memcpy.h
-
void inline_memcpy (void *__restrict dst, const void *__restrict src, size_t count)Defined at line 44 of file ../../third_party/llvm-libc/src/src/string/memory_utils/inline_memcpy.h
-
cpp::optional<cpp::string_view> try_get_errno_name (int err_num) -
void SetStartHandles (zx::process process_self, zx::vmar allocation_vmar, zx::thread thread_self)This is called by StartCompilerAbi with the full Fuchsia Compiler ABI but
still on the original stack: so technically still phase one, but closer to
phase two and outside phase one's basic-ABI hermetic partial links so it
must use asm linkage to be called across that hermetic boundary. It takes
ownership of these handles by storing them in libc global state that can't
be accessed directly from hermetic (phase one proper) code.
Defined at line 115 of file ../../sdk/lib/c/startup/start-main.cc
-
void __libc_start_main (void * hook, zx_handle_t svc_server_end, MainFunction * main)This is called by startup-trampoline.S (the public __libc_start_main) after
switching to the stack returned by StartCompilerAbi. It constitutes phase
two: it already has the full Fuchsia Compiler ABI in place. It calls the
second two
<zircon
/startup.h> API functions that complete the work done in
phase one to start handling the process bootstrap protocol and yield `hook`,
which is propagated to the phase-two
<zircon
/startup.h> functions.
Defined at line 145 of file ../../sdk/lib/c/startup/start-main.cc
-
StartupTrampoline StartCompilerAbi (zx_handle_t bootstrap_client_end, const void * vdso)This is called by startup-trampoline.S using the basic machine ABI. It
takes exactly the arguments of the actual `zx_process_start` entry point
(the first two that `_start` and then `__libc_start_main` saw and then
propagated), but returns a value (in two registers).
It's responsible for allocating the stacks and initializing the thread
pointer. It uses [`_zx_startup_get_handles`](../include/zircon/startup.h).
That must decode the bootstrap protocol at least enough to acquire essential
handles like the VMAR to use for allocation. This does all the allocation
and initializes the thread pointer and shadow call stack register as fully
as required by the Fuchsia Compiler ABI. When it returns to the assembly
code, [phase two](start-main.h) is entered.
Defined at line 45 of file ../../sdk/lib/c/startup/start-compiler-abi.cc
-
template <typename T, size_t count>cpp::enable_if_t<cpp::is_unsigned_v<T>, T> mask_trailing_zeros ()Create a bitmask with the count right-most bits set to 0, and all other bits
set to 1. Only unsigned types are allowed.
Defined at line 48 of file ../../third_party/llvm-libc/src/src/__support/math_extras.h
-
template <typename T, size_t count>cpp::enable_if_t<cpp::is_unsigned_v<T>, T> mask_trailing_zeros ()Create a bitmask with the count right-most bits set to 0, and all other bits
set to 1. Only unsigned types are allowed.
Defined at line 48 of file ../../third_party/llvm-libc/src/src/__support/math_extras.h
-
CPtr bitwise_or (CPtr a, CPtr b)Defined at line 48 of file ../../third_party/llvm-libc/src/src/string/memory_utils/arm/common.h
-
void __thread_allocation_inhibit ()dlopen calls this under another lock. Only one dlopen call can be modifying
state at a time. It excludes all ThreadStorage::Allocate() calls until the
corresponding Thread goes on the gAllThreads list (thread-list.h).
Defined at line 49 of file ../../sdk/lib/c/threads/thread-create.cc
-
template <size_t alignment>uintptr_t distance_to_next_aligned (const void * ptr)Returns the number of bytes to add to ptr to get to the next multiple of
alignment. If ptr is already aligned returns alignment.
Defined at line 49 of file ../../third_party/llvm-libc/src/src/string/memory_utils/utils.h
-
template <size_t alignment>uintptr_t distance_to_next_aligned (const void * ptr)Returns the number of bytes to add to ptr to get to the next multiple of
alignment. If ptr is already aligned returns alignment.
Defined at line 49 of file ../../third_party/llvm-libc/src/src/string/memory_utils/utils.h
-
void inline_memcpy_x86_sse2_ge64 (__restrict Ptr dst, __restrict CPtr src, size_t count)Defined at line 49 of file ../../third_party/llvm-libc/src/src/string/memory_utils/x86_64/inline_memcpy.h
-
void __thread_allocation_release ()Defined at line 53 of file ../../sdk/lib/c/threads/thread-create.cc
-
template <size_t alignment, typename T>T * assume_aligned (T * ptr)Returns the same pointer but notifies the compiler that it is aligned.
Defined at line 54 of file ../../third_party/llvm-libc/src/src/string/memory_utils/utils.h
-
template <size_t alignment, typename T>T * assume_aligned (T * ptr)Returns the same pointer but notifies the compiler that it is aligned.
Defined at line 54 of file ../../third_party/llvm-libc/src/src/string/memory_utils/utils.h
-
template <auto&& f>void OnStack (NoStack , auto && f)Defined at line 55 of file ../../sdk/lib/c/startup/../threads/stack-abi.h
-
template <auto&& stack, auto&& f>void OnStack (auto && stack, auto && f)Defined at line 56 of file ../../sdk/lib/c/startup/../threads/stack-abi.h
-
template <typename T, size_t count>cpp::enable_if_t<cpp::is_unsigned_v<T>, T> mask_leading_zeros ()Create a bitmask with the count left-most bits set to 0, and all other bits
set to 1. Only unsigned types are allowed.
Defined at line 56 of file ../../third_party/llvm-libc/src/src/__support/math_extras.h
-
template <typename T, size_t count>cpp::enable_if_t<cpp::is_unsigned_v<T>, T> mask_leading_zeros ()Create a bitmask with the count left-most bits set to 0, and all other bits
set to 1. Only unsigned types are allowed.
Defined at line 56 of file ../../third_party/llvm-libc/src/src/__support/math_extras.h
-
zx::result<CreatedThread> ThreadCreate (ThreadAttributes attrs)Create a new Thread. This does all the allocation and creates the kernel
thread. The new Thread object is initialized, owns that zx::thread handle,
and is attached to the global thread list. The thread is not running yet and
will be destroyed when the CreatedThread object dies before ThreadStart.
Kernel operations can now be done via the thread handle to affect the thread
(set scheduling parameters, etc.) before it starts running.
Defined at line 57 of file ../../sdk/lib/c/threads/thread-create.cc
-
ThreadFunction * ToThreadFunction (int (*)(void *) func)Defined at line 58 of file ../../sdk/lib/c/pthread/../threads/thread.h
-
void inline_memcpy_x86_avx_ge64 (__restrict Ptr dst, __restrict CPtr src, size_t count)Defined at line 59 of file ../../third_party/llvm-libc/src/src/string/memory_utils/x86_64/inline_memcpy.h
-
template <auto value>auto StackOr (NoStack , auto value)Defined at line 60 of file ../../sdk/lib/c/startup/../threads/stack-abi.h
-
bool is_disjoint (const void * p1, const void * p2, size_t size)Returns true iff memory regions [p1, p1 + size] and [p2, p2 + size] are
disjoint.
Defined at line 60 of file ../../third_party/llvm-libc/src/src/string/memory_utils/utils.h
-
bool is_disjoint (const void * p1, const void * p2, size_t size)Returns true iff memory regions [p1, p1 + size] and [p2, p2 + size] are
disjoint.
Defined at line 60 of file ../../third_party/llvm-libc/src/src/string/memory_utils/utils.h
-
ThreadFunction * ToThreadFunction (void *(*)(void *) func)Defined at line 61 of file ../../sdk/lib/c/pthread/../threads/thread.h
-
template <auto stack, auto value>auto StackOr (auto stack, std::convertible_to<decltype(stack)> auto value)Defined at line 61 of file ../../sdk/lib/c/startup/../threads/stack-abi.h
-
template <typename T>bool add_overflow (T a, T b, T & res)Returns whether 'a + b' overflows, the result is stored in 'res'.
Defined at line 63 of file ../../third_party/llvm-libc/src/src/__support/math_extras.h
-
thrd_t ToC11Thread (Thread & thread)The C11
<threads
.h> thrd_t is actually just the Thread*.
Defined at line 66 of file ../../sdk/lib/c/pthread/../threads/thread.h
-
Thread * FromC11Thread (thrd_t thread)Defined at line 67 of file ../../sdk/lib/c/pthread/../threads/thread.h
-
void ShadowCallStackSet (uint64_t * scsp)Defined at line 68 of file ../../sdk/lib/c/startup/../threads/stack-abi.h
-
pthread_t ToPthread (Thread & thread)The POSIX
<pthread
.h> pthread_t is the same thing too.
Defined at line 70 of file ../../sdk/lib/c/pthread/../threads/thread.h
-
Thread * FromPthread (pthread_t thread)Defined at line 71 of file ../../sdk/lib/c/pthread/../threads/thread.h
-
void inline_memcpy_prefetch (__restrict Ptr dst, __restrict CPtr src, size_t distance)Defined at line 71 of file ../../third_party/llvm-libc/src/src/string/memory_utils/x86_64/inline_memcpy.h
-
template <typename T>bool sub_overflow (T a, T b, T & res)Returns whether 'a - b' overflows, the result is stored in 'res'.
Defined at line 74 of file ../../third_party/llvm-libc/src/src/__support/math_extras.h
-
void inline_memcpy_x86_sse2_ge64_sw_prefetching (__restrict Ptr dst, __restrict CPtr src, size_t count)Defined at line 78 of file ../../third_party/llvm-libc/src/src/string/memory_utils/x86_64/inline_memcpy.h
-
void inline_memset_arm_low_end (Ptr dst, uint8_t value, size_t size)Implementation for Cortex-M0, M0+, M1. It compiles down to 140 bytes when
used through `memset` that also needs to return the `dst` ptr. These cores do
not allow unaligned stores so all accesses are aligned.
Defined at line 80 of file ../../third_party/llvm-libc/src/src/string/memory_utils/arm/inline_memset.h
-
template <size_t Size>void memcpy_inline (void *__restrict dst, const void *__restrict src)Performs a constant count copy.
Defined at line 85 of file ../../third_party/llvm-libc/src/src/string/memory_utils/utils.h
-
template <size_t Size>void memcpy_inline (void *__restrict dst, const void *__restrict src)Performs a constant count copy.
Defined at line 85 of file ../../third_party/llvm-libc/src/src/string/memory_utils/utils.h
-
void ShadowCallStackPrologue (void * caller)This must be called first thing in the first function that runs with the
full compiler ABI available. In builds of libc without shadow-call-stack
support enabled on machines where the ABI includes it, this mimics what the
compiler's (non-leaf) function prologue would usually do. This ensures that
however libc is built, the shadow-call-stack backtraces are consistent with
the frame-pointer backtraces for the initial frames, yielding a predictable
backtrace of _start -> __libc_start_main -> main via CFI, frame-pointer, and
shadow-call-stack techniques. If main and the code it calls (outside libc)
do use shadow-call-stack and expect good backtraces taken purely from the
shadow call stack, then the outermost frames will match expectations.
Defined at line 90 of file ../../sdk/lib/c/startup/../threads/stack-abi.h
-
template <typename T>cpp::enable_if_t<cpp::is_unsigned_v<T>, T> add_with_carry (T a, T b, T carry_in, T & carry_out)Returns the result of 'a + b' taking into account 'carry_in'.
The carry out is stored in 'carry_out' it not 'nullptr', dropped otherwise.
We keep the pass by pointer interface for consistency with the intrinsic.
Defined at line 91 of file ../../third_party/llvm-libc/src/src/__support/math_extras.h
-
void inline_memcpy_arm_low_end (Ptr dst, CPtr src, size_t size)Implementation for Cortex-M0, M0+, M1 cores that do not allow for unaligned
loads/stores. It compiles down to 208 bytes when used through `memcpy` that
also needs to return the `dst` ptr.
Note:
- When `src` and `dst` are coaligned, we start by aligning them and perform
bulk copies. We let the compiler know the pointers are aligned so it can
use load/store multiple (LDM, STM). This significantly increase throughput
but it also requires more registers and push/pop instructions. This impacts
latency for small size copies.
- When `src` and `dst` are misaligned, we align `dst` and recompose words
using multiple aligned loads. `load_aligned` takes care of endianness
issues.
Defined at line 98 of file ../../third_party/llvm-libc/src/src/string/memory_utils/arm/inline_memcpy.h
-
void inline_memset_arm_mid_end (Ptr dst, uint8_t value, size_t size)Implementation for Cortex-M3, M4, M7, M23, M33, M35P, M52 with hardware
support for unaligned loads and stores. It compiles down to 186 bytes when
used through `memset` that also needs to return the `dst` ptr.
Defined at line 101 of file ../../third_party/llvm-libc/src/src/string/memory_utils/arm/inline_memset.h
-
template <std::invocable<Thread&> auto NewThread, std::invocable<zx_status_t> auto Status>decltype(Status(std::declval<zx_status_t>())) ThreadCreateAndStart (decltype(NewThread(std::declval<Thread &>())) * new_thread, ThreadAttributes attrs, ThreadFunction * func, void * arg)Combines ThreadCreate and ThreadStart. This is templatized with converter
functions for the public thread and error types (ToC11Thread / ToPthread,
C11ThreadError / PthreadError) rather than just being a non-template
function returning zx::result
<Thread
*> because thrd_create is required to
write its result parameter before the new thread might read it back out of
that same memory; the caller unpacking the result would be too late.
Defined at line 104 of file ../../sdk/lib/c/pthread/../threads/thread.h
-
template <typename T>cpp::enable_if_t<cpp::is_unsigned_v<T>, T> sub_with_borrow (T a, T b, T carry_in, T & carry_out)Returns the result of 'a - b' taking into account 'carry_in'.
The carry out is stored in 'carry_out' it not 'nullptr', dropped otherwise.
We keep the pass by pointer interface for consistency with the intrinsic.
Defined at line 117 of file ../../third_party/llvm-libc/src/src/__support/math_extras.h
-
ThreadList AllThreadsLocked ()Defined at line 119 of file ../../sdk/lib/c/threads/thread-list.h
-
void inline_memcpy_x86_avx_ge64_sw_prefetching (__restrict Ptr dst, __restrict CPtr src, size_t count)Defined at line 125 of file ../../third_party/llvm-libc/src/src/string/memory_utils/x86_64/inline_memcpy.h
-
template <typename T>cpp::enable_if_t<cpp::is_unsigned_v<T>, int> first_leading_zero (T value)Defined at line 142 of file ../../third_party/llvm-libc/src/src/__support/math_extras.h
-
void inline_memset_arm_dispatch (Ptr dst, uint8_t value, size_t size)Defined at line 145 of file ../../third_party/llvm-libc/src/src/string/memory_utils/arm/inline_memset.h
-
void inline_memcpy_arm_mid_end (Ptr dst, CPtr src, size_t size)Implementation for Cortex-M3, M4, M7, M23, M33, M35P, M52 with hardware
support for unaligned loads and stores. It compiles down to 272 bytes when
used through `memcpy` that also needs to return the `dst` ptr.
Defined at line 145 of file ../../third_party/llvm-libc/src/src/string/memory_utils/arm/inline_memcpy.h
-
template <typename T>cpp::enable_if_t<cpp::is_unsigned_v<T>, int> first_leading_one (T value)Defined at line 149 of file ../../third_party/llvm-libc/src/src/__support/math_extras.h
-
MemcmpReturnType cmp_uint32_t (uint32_t a, uint32_t b)This implements the semantic of 'memcmp' returning a negative value when 'a'
is less than 'b', '0' when 'a' equals 'b' and a positive number otherwise.
Defined at line 150 of file ../../third_party/llvm-libc/src/src/string/memory_utils/utils.h
-
template <typename T>cpp::enable_if_t<cpp::is_unsigned_v<T>, int> first_trailing_zero (T value)Defined at line 155 of file ../../third_party/llvm-libc/src/src/__support/math_extras.h
-
int C11ThreadError (zx_status_t status)Convert Zircon error to C11
<threads
.h> return value.
Defined at line 158 of file ../../sdk/lib/c/pthread/../threads/thread.h
-
template <typename T>cpp::enable_if_t<cpp::is_unsigned_v<T>, int> first_trailing_one (T value)Defined at line 163 of file ../../third_party/llvm-libc/src/src/__support/math_extras.h
-
void inline_memcpy_x86 (__restrict Ptr dst, __restrict CPtr src, size_t count)Defined at line 164 of file ../../third_party/llvm-libc/src/src/string/memory_utils/x86_64/inline_memcpy.h
-
void ThreadExitFinish (Thread & self)The last phase of exit is compiled using only the basic machine ABI so it
can do some stack-switching and then free all the main thread stacks.
Defined at line 166 of file ../../sdk/lib/c/threads/thread-exit-finish.cc
-
template <typename T>cpp::enable_if_t<cpp::is_unsigned_v<T>, int> count_zeros (T value)Defined at line 169 of file ../../third_party/llvm-libc/src/src/__support/math_extras.h
-
template <typename T>cpp::enable_if_t<cpp::is_integral_v<T>, uint8_t> extract_decimal_digit (T & value)Extract the low-order decimal digit from a value of integer type T. The
returned value is the digit itself, from 0 to 9. The input value is passed
by reference, and modified by dividing by 10, so that iterating this
function extracts all the digits of the original number one at a time from
low to high.
Defined at line 172 of file ../../third_party/llvm-libc/src/src/__support/integer_to_string.h
-
int PthreadError (zx_status_t status)Convert Zircon error to POSIX errno.
Defined at line 172 of file ../../sdk/lib/c/pthread/../threads/thread.h
-
MemcmpReturnType cmp_neq_uint64_t (uint64_t a, uint64_t b)Returns a negative value if 'a' is less than 'b' and a positive value
otherwise. This implements the semantic of 'memcmp' when we know that 'a' and
'b' differ.
Defined at line 178 of file ../../third_party/llvm-libc/src/src/string/memory_utils/utils.h
-
MemcmpReturnType cmp_neq_uint64_t (uint64_t a, uint64_t b)Returns a negative value if 'a' is less than 'b' and a positive value
otherwise. This implements the semantic of 'memcmp' when we know that 'a' and
'b' differ.
Defined at line 178 of file ../../third_party/llvm-libc/src/src/string/memory_utils/utils.h
-
template <typename T>cpp::enable_if_t<is_big_int_v<T>, uint8_t> extract_decimal_digit (T & value)A specialization of extract_decimal_digit for the BigInt type in big_int.h,
avoiding the use of general-purpose BigInt division which is very slow.
Defined at line 186 of file ../../third_party/llvm-libc/src/src/__support/integer_to_string.h
-
void inline_memcpy_arm (Ptr dst, CPtr src, size_t size)Defined at line 195 of file ../../third_party/llvm-libc/src/src/string/memory_utils/arm/inline_memcpy.h
-
template <typename T>T load (CPtr ptr)Loads bytes from memory (possibly unaligned) and materializes them as
type.
Defined at line 212 of file ../../third_party/llvm-libc/src/src/string/memory_utils/utils.h
-
void inline_memcpy_x86_maybe_interpose_repmovsb (__restrict Ptr dst, __restrict CPtr src, size_t count)Defined at line 217 of file ../../third_party/llvm-libc/src/src/string/memory_utils/x86_64/inline_memcpy.h
-
template <typename T>void store (Ptr ptr, T value)Stores a value of type T in memory (possibly unaligned).
Defined at line 219 of file ../../third_party/llvm-libc/src/src/string/memory_utils/utils.h
-
template <typename ValueType, typename T, typename... TS>ValueType load_aligned (CPtr src)Loads a 'ValueType' by decomposing it into several loads that are assumed to
be aligned.
e.g. load_aligned
<uint32
_t, uint16_t, uint16_t>(ptr);
Defined at line 232 of file ../../third_party/llvm-libc/src/src/string/memory_utils/utils.h
-
template <typename T, typename... TS>auto load32_aligned (CPtr src, size_t offset)Alias for loading a 'uint32_t'.
Defined at line 251 of file ../../third_party/llvm-libc/src/src/string/memory_utils/utils.h
-
template <typename T, typename... TS>auto load32_aligned (CPtr src, size_t offset)Alias for loading a 'uint32_t'.
Defined at line 251 of file ../../third_party/llvm-libc/src/src/string/memory_utils/utils.h
-
template <typename T, typename... TS>auto load64_aligned (CPtr src, size_t offset)Alias for loading a 'uint64_t'.
Defined at line 258 of file ../../third_party/llvm-libc/src/src/string/memory_utils/utils.h
-
template <typename T, typename... TS>auto load64_aligned (CPtr src, size_t offset)Alias for loading a 'uint64_t'.
Defined at line 258 of file ../../third_party/llvm-libc/src/src/string/memory_utils/utils.h
-
template <typename ValueType, typename T, typename... TS>void store_aligned (ValueType value, Ptr dst)Stores a 'ValueType' by decomposing it into several stores that are assumed
to be aligned.
e.g. store_aligned
<uint32
_t, uint16_t, uint16_t>(value, ptr);
Defined at line 267 of file ../../third_party/llvm-libc/src/src/string/memory_utils/utils.h
-
template <typename T, typename... TS>void store32_aligned (uint32_t value, Ptr dst, size_t offset)Alias for storing a 'uint32_t'.
Defined at line 286 of file ../../third_party/llvm-libc/src/src/string/memory_utils/utils.h
-
template <typename T, typename... TS>void store32_aligned (uint32_t value, Ptr dst, size_t offset)Alias for storing a 'uint32_t'.
Defined at line 286 of file ../../third_party/llvm-libc/src/src/string/memory_utils/utils.h
-
zx::result<Thread *> ThreadStart (CreatedThread thread, ThreadFunction * func, void * arg)After a new Thread has been fully created, this actually starts it running.
The new thread will call ThreadExit(func(arg)). Once the thread is running,
it owns its own storage and kernel handle, so the CreatedThread is released.
But unless the thread is detached, the caller now owns it via the Thread*
until that is passed to ThreadJoin (or detached).
Defined at line 289 of file ../../sdk/lib/c/threads/thread-start.cc
-
template <typename T, typename... TS>void store64_aligned (uint64_t value, Ptr dst, size_t offset)Alias for storing a 'uint64_t'.
Defined at line 293 of file ../../third_party/llvm-libc/src/src/string/memory_utils/utils.h
-
template <typename T, typename... TS>void store64_aligned (uint64_t value, Ptr dst, size_t offset)Alias for storing a 'uint64_t'.
Defined at line 293 of file ../../third_party/llvm-libc/src/src/string/memory_utils/utils.h
-
template <typename T1, typename T2>void adjust (ptrdiff_t offset, T1 *__restrict & p1, T2 *__restrict & p2, size_t & count)Advances the pointers p1 and p2 by offset bytes and decrease count by the
same amount.
Defined at line 301 of file ../../third_party/llvm-libc/src/src/string/memory_utils/utils.h
-
template <typename T1, typename T2>void adjust (ptrdiff_t offset, T1 *__restrict & p1, T2 *__restrict & p2, size_t & count)Advances the pointers p1 and p2 by offset bytes and decrease count by the
same amount.
Defined at line 301 of file ../../third_party/llvm-libc/src/src/string/memory_utils/utils.h
-
template <size_t SIZE, typename T1, typename T2>void align_p1_to_next_boundary (T1 *__restrict & p1, T2 *__restrict & p2, size_t & count)Advances p1 and p2 so p1 gets aligned to the next SIZE bytes boundary
and decrease count by the same amount.
We make sure the compiler knows about the adjusted pointer alignment.
Defined at line 312 of file ../../third_party/llvm-libc/src/src/string/memory_utils/utils.h
-
template <size_t SIZE, typename T1, typename T2>void align_p1_to_next_boundary (T1 *__restrict & p1, T2 *__restrict & p2, size_t & count)Advances p1 and p2 so p1 gets aligned to the next SIZE bytes boundary
and decrease count by the same amount.
We make sure the compiler knows about the adjusted pointer alignment.
Defined at line 312 of file ../../third_party/llvm-libc/src/src/string/memory_utils/utils.h
-
template <size_t SIZE, typename T>void align_to_next_boundary (T *& p1, size_t & count)Same as align_p1_to_next_boundary above but with a single pointer instead.
Defined at line 321 of file ../../third_party/llvm-libc/src/src/string/memory_utils/utils.h
-
template <size_t SIZE, typename T>void align_to_next_boundary (T *& p1, size_t & count)Same as align_p1_to_next_boundary above but with a single pointer instead.
Defined at line 321 of file ../../third_party/llvm-libc/src/src/string/memory_utils/utils.h
-
template <size_t SIZE, Arg AlignOn, typename T1, typename T2>void align_to_next_boundary (T1 *__restrict & p1, T2 *__restrict & p2, size_t & count)Same as align_p1_to_next_boundary but allows for aligning p2 instead of p1.
Precondition:
&p
1 !=
&p
2
Defined at line 332 of file ../../third_party/llvm-libc/src/src/string/memory_utils/utils.h
-
template <size_t SIZE, Arg AlignOn, typename T1, typename T2>void align_to_next_boundary (T1 *__restrict & p1, T2 *__restrict & p2, size_t & count)Same as align_p1_to_next_boundary but allows for aligning p2 instead of p1.
Precondition:
&p
1 !=
&p
2
Defined at line 332 of file ../../third_party/llvm-libc/src/src/string/memory_utils/utils.h
-
void prefetch_for_write (CPtr dst)Defined at line 351 of file ../../third_party/llvm-libc/src/src/string/memory_utils/utils.h
-
void prefetch_to_local_cache (CPtr dst)Defined at line 355 of file ../../third_party/llvm-libc/src/src/string/memory_utils/utils.h
-
BigInt<Bits, Signed, WordType> operator& (const BigInt<Bits, Signed, WordType> & lhs, const BigInt<Bits, Signed, WordType> & rhs)Defined at line 861 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
-
BigInt<Bits, Signed, WordType> operator& (const BigInt<Bits, Signed, WordType> & lhs, const BigInt<Bits, Signed, WordType> & rhs)Defined at line 861 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
-
BigInt<Bits, Signed, WordType> operator&= (BigInt<Bits, Signed, WordType> & lhs, const BigInt<Bits, Signed, WordType> & rhs)Defined at line 861 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
-
BigInt<Bits, Signed, WordType> operator&= (BigInt<Bits, Signed, WordType> & lhs, const BigInt<Bits, Signed, WordType> & rhs)Defined at line 861 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
-
BigInt<Bits, Signed, WordType> operator| (const BigInt<Bits, Signed, WordType> & lhs, const BigInt<Bits, Signed, WordType> & rhs)Defined at line 862 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
-
BigInt<Bits, Signed, WordType> operator| (const BigInt<Bits, Signed, WordType> & lhs, const BigInt<Bits, Signed, WordType> & rhs)Defined at line 862 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
-
BigInt<Bits, Signed, WordType> operator|= (BigInt<Bits, Signed, WordType> & lhs, const BigInt<Bits, Signed, WordType> & rhs)Defined at line 862 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
-
BigInt<Bits, Signed, WordType> operator|= (BigInt<Bits, Signed, WordType> & lhs, const BigInt<Bits, Signed, WordType> & rhs)Defined at line 862 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
-
BigInt<Bits, Signed, WordType> operator^ (const BigInt<Bits, Signed, WordType> & lhs, const BigInt<Bits, Signed, WordType> & rhs)Defined at line 863 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
-
BigInt<Bits, Signed, WordType> operator^ (const BigInt<Bits, Signed, WordType> & lhs, const BigInt<Bits, Signed, WordType> & rhs)Defined at line 863 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
-
BigInt<Bits, Signed, WordType> operator^= (BigInt<Bits, Signed, WordType> & lhs, const BigInt<Bits, Signed, WordType> & rhs)Defined at line 863 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
-
BigInt<Bits, Signed, WordType> operator^= (BigInt<Bits, Signed, WordType> & lhs, const BigInt<Bits, Signed, WordType> & rhs)Defined at line 863 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
-
bool operator== (const BigInt<Bits, Signed, WordType> & lhs, const BigInt<Bits, Signed, WordType> & rhs)Defined at line 879 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
-
bool operator== (const BigInt<Bits, Signed, WordType> & lhs, const BigInt<Bits, Signed, WordType> & rhs)Defined at line 879 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
-
bool operator!= (const BigInt<Bits, Signed, WordType> & lhs, const BigInt<Bits, Signed, WordType> & rhs)Defined at line 887 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
-
bool operator!= (const BigInt<Bits, Signed, WordType> & lhs, const BigInt<Bits, Signed, WordType> & rhs)Defined at line 887 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
-
bool operator> (const BigInt<Bits, Signed, WordType> & lhs, const BigInt<Bits, Signed, WordType> & rhs)Defined at line 892 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
-
bool operator> (const BigInt<Bits, Signed, WordType> & lhs, const BigInt<Bits, Signed, WordType> & rhs)Defined at line 892 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
-
bool operator>= (const BigInt<Bits, Signed, WordType> & lhs, const BigInt<Bits, Signed, WordType> & rhs)Defined at line 896 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
-
bool operator>= (const BigInt<Bits, Signed, WordType> & lhs, const BigInt<Bits, Signed, WordType> & rhs)Defined at line 896 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
-
bool operator< (const BigInt<Bits, Signed, WordType> & lhs, const BigInt<Bits, Signed, WordType> & rhs)Defined at line 900 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
-
bool operator< (const BigInt<Bits, Signed, WordType> & lhs, const BigInt<Bits, Signed, WordType> & rhs)Defined at line 900 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
-
bool operator<= (const BigInt<Bits, Signed, WordType> & lhs, const BigInt<Bits, Signed, WordType> & rhs)Defined at line 904 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
-
bool operator<= (const BigInt<Bits, Signed, WordType> & lhs, const BigInt<Bits, Signed, WordType> & rhs)Defined at line 904 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
-
int cmp (const BigInt<Bits, Signed, WordType> & lhs, const BigInt<Bits, Signed, WordType> & rhs)Defined at line 952 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
-
int cmp (const BigInt<Bits, Signed, WordType> & lhs, const BigInt<Bits, Signed, WordType> & rhs)Defined at line 952 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
-
template <typename T, size_t count>cpp::enable_if_t<is_big_int_v<T>, T> mask_trailing_ones ()Specialization of mask_trailing_ones ('math_extras.h') for BigInt.
Defined at line 1307 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
-
template <typename T, size_t count>cpp::enable_if_t<is_big_int_v<T>, T> mask_trailing_ones ()Specialization of mask_trailing_ones ('math_extras.h') for BigInt.
Defined at line 1307 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
-
template <typename T, size_t count>cpp::enable_if_t<is_big_int_v<T>, T> mask_leading_ones ()Specialization of mask_leading_ones ('math_extras.h') for BigInt.
Defined at line 1324 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
-
template <typename T, size_t count>cpp::enable_if_t<is_big_int_v<T>, T> mask_leading_ones ()Specialization of mask_leading_ones ('math_extras.h') for BigInt.
Defined at line 1324 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
-
template <typename T, size_t count>cpp::enable_if_t<is_big_int_v<T>, T> mask_trailing_zeros ()Specialization of mask_trailing_zeros ('math_extras.h') for BigInt.
Defined at line 1340 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
-
template <typename T, size_t count>cpp::enable_if_t<is_big_int_v<T>, T> mask_trailing_zeros ()Specialization of mask_trailing_zeros ('math_extras.h') for BigInt.
Defined at line 1340 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
-
template <typename T, size_t count>cpp::enable_if_t<is_big_int_v<T>, T> mask_leading_zeros ()Specialization of mask_leading_zeros ('math_extras.h') for BigInt.
Defined at line 1347 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
-
template <typename T, size_t count>cpp::enable_if_t<is_big_int_v<T>, T> mask_leading_zeros ()Specialization of mask_leading_zeros ('math_extras.h') for BigInt.
Defined at line 1347 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
-
template <typename T>cpp::enable_if_t<is_big_int_v<T>, int> count_zeros (T value)Specialization of count_zeros ('math_extras.h') for BigInt.
Defined at line 1354 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
-
template <typename T>cpp::enable_if_t<is_big_int_v<T>, int> first_leading_zero (T value)Specialization of first_leading_zero ('math_extras.h') for BigInt.
Defined at line 1361 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
-
template <typename T>cpp::enable_if_t<is_big_int_v<T>, int> first_leading_one (T value)Specialization of first_leading_one ('math_extras.h') for BigInt.
Defined at line 1369 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
-
template <typename T>cpp::enable_if_t<is_big_int_v<T>, int> first_trailing_zero (T value)Specialization of first_trailing_zero ('math_extras.h') for BigInt.
Defined at line 1376 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
-
template <typename T>cpp::enable_if_t<is_big_int_v<T>, int> first_trailing_one (T value)Specialization of first_trailing_one ('math_extras.h') for BigInt.
Defined at line 1384 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
Concepts
template <typename IncrementFunctiontypename ValueType> Incrementer std::regular_invocable<IncrementFunction, ValueType> && std::convertible_to<std::invoke_result_t<IncrementFunction, ValueType>, ValueType>
Defined at line 60 of file ../../sdk/lib/c/threads/thread-list.h
Variables
Mutex gAllThreadsLock
Defined at line 9 of file ../../sdk/lib/c/threads/thread-list.cc
Thread * gAllThreads
Defined at line 10 of file ../../sdk/lib/c/threads/thread-list.cc
std::array<uint64_t, (4 + 0)> gJmpBufManglers
Defined at line 17 of file ../../sdk/lib/c/setjmp/fuchsia/manglers.cc
std::byte[] kBegin
std::byte[] kEnd
const bool kShadowCallStackAbi
Defined at line 36 of file ../../sdk/lib/c/startup/../threads/stack-abi.h
const WeakLock<_dlfcn_lock, _dlfcn_unlock> kDlfcnLock
Defined at line 37 of file ../../sdk/lib/c/threads/../dlfcn/dlfcn-abi.h
Log gLog
Defined at line 39 of file ../../sdk/lib/c/ld/log-storage.cc
const size_t kWordSize
Defined at line 39 of file ../../third_party/llvm-libc/src/src/string/memory_utils/arm/common.h
const bool kSafeStackAbi
Defined at line 45 of file ../../sdk/lib/c/startup/../threads/stack-abi.h
const WeakLock<__thread_allocation_inhibit, __thread_allocation_release> kStaticTlsLock
Defined at line 56 of file ../../sdk/lib/c/threads/thread-list.h
Abi mutable_ld_abi
Defined at line 80 of file ../../sdk/lib/c/startup/static-pie-relocate.cc
const bool is_big_int_v
Defined at line 1105 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
const bool is_big_int_v
Defined at line 1105 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
const bool is_big_int_v
Defined at line 1105 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
const bool is_big_int_v
Defined at line 1105 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
const bool is_big_int_v
Defined at line 1105 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
const bool is_big_int_v
Defined at line 1105 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
const bool is_big_int_v
Defined at line 1105 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
const bool is_big_int_v
Defined at line 1105 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
const bool is_big_int_v
Defined at line 1105 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
const bool is_big_int_v
Defined at line 1106 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
const bool is_integral_or_big_int_v
Defined at line 1116 of file ../../third_party/llvm-libc/src/src/__support/big_int.h
const bool is_unsigned_integral_or_big_int_v
Defined at line 1179 of file ../../third_party/llvm-libc/src/src/__support/big_int.h