/aosp12/bionic/tests/ |
H A D | struct_layout_test.cpp | 33 CHECK_SIZE(pthread_internal_t, 776); in tests() 34 CHECK_OFFSET(pthread_internal_t, next, 0); in tests() 35 CHECK_OFFSET(pthread_internal_t, prev, 8); in tests() 36 CHECK_OFFSET(pthread_internal_t, tid, 16); in tests() 37 CHECK_OFFSET(pthread_internal_t, attr, 24); in tests() 38 CHECK_OFFSET(pthread_internal_t, join_state, 80); in tests() 74 CHECK_SIZE(pthread_internal_t, 668); in tests() 75 CHECK_OFFSET(pthread_internal_t, next, 0); in tests() 76 CHECK_OFFSET(pthread_internal_t, prev, 4); in tests() 77 CHECK_OFFSET(pthread_internal_t, tid, 8); in tests() [all …]
|
H A D | Android.bp | 59 // Needed to test pthread_internal_t layout.
|
H A D | unistd_test.cpp | 442 pthread_internal_t* self = __get_thread(); in TEST()
|
/aosp12/bionic/libc/bionic/ |
H A D | pthread_internal.h | 65 class pthread_internal_t { 67 class pthread_internal_t* next; 68 class pthread_internal_t* prev; 176 __LIBC_HIDDEN__ void __init_tcb(bionic_tcb* tcb, pthread_internal_t* thread); 182 __LIBC_HIDDEN__ void __init_additional_stacks(pthread_internal_t*); 183 __LIBC_HIDDEN__ int __init_thread(pthread_internal_t* thread); 187 __LIBC_HIDDEN__ pthread_t __pthread_internal_add(pthread_internal_t* thread); 190 __LIBC_HIDDEN__ void __pthread_internal_remove(pthread_internal_t* thread); 191 __LIBC_HIDDEN__ void __pthread_internal_remove_and_free(pthread_internal_t* thread); 198 static inline __always_inline pthread_internal_t* __get_thread() { in __get_thread() [all …]
|
H A D | pthread_internal.cpp | 45 static pthread_internal_t* g_thread_list = nullptr; 48 pthread_t __pthread_internal_add(pthread_internal_t* thread) { in __pthread_internal_add() 61 void __pthread_internal_remove(pthread_internal_t* thread) { in __pthread_internal_remove() 74 static void __pthread_internal_free(pthread_internal_t* thread) { in __pthread_internal_free() 81 void __pthread_internal_remove_and_free(pthread_internal_t* thread) { in __pthread_internal_remove_and_free() 87 pthread_internal_t* thread = __pthread_internal_find(thread_id, caller); in __pthread_internal_gettid() 91 pthread_internal_t* __pthread_internal_find(pthread_t thread_id, const char* caller) { in __pthread_internal_find() 92 pthread_internal_t* thread = reinterpret_cast<pthread_internal_t*>(thread_id); in __pthread_internal_find() 101 for (pthread_internal_t* t = g_thread_list; t != nullptr; t = t->next) { in __pthread_internal_find() 166 for (pthread_internal_t* t = g_thread_list; t != nullptr; t = t->next) { in android_run_on_all_threads()
|
H A D | pthread_create.cpp | 89 static void __init_alternate_signal_stack(pthread_internal_t* thread) { in __init_alternate_signal_stack() 111 static void __init_shadow_call_stack(pthread_internal_t* thread __unused) { in __init_shadow_call_stack() 137 void __init_additional_stacks(pthread_internal_t* thread) { in __init_additional_stacks() 142 int __init_thread(pthread_internal_t* thread) { in __init_thread() 278 stack_top = align_down(stack_top - sizeof(pthread_internal_t), 16); in __allocate_thread() 280 pthread_internal_t* thread = reinterpret_cast<pthread_internal_t*>(stack_top); in __allocate_thread() 284 memset(thread, 0, sizeof(pthread_internal_t)); in __allocate_thread() 315 pthread_internal_t* thread = __get_thread(); in __set_stack_and_tls_vma_name() 340 pthread_internal_t* thread = reinterpret_cast<pthread_internal_t*>(arg); in __pthread_start() 400 pthread_internal_t* thread = tcb->thread(); in pthread_create()
|
H A D | pthread_exit.cpp | 53 pthread_internal_t* thread = __get_thread(); in __pthread_cleanup_push() 62 pthread_internal_t* thread = __get_thread(); in __pthread_cleanup_pop() 74 pthread_internal_t* thread = __get_thread(); in pthread_exit()
|
H A D | __cxa_thread_atexit_impl.cpp | 42 pthread_internal_t* thread = __get_thread(); in __cxa_thread_atexit_impl() 52 pthread_internal_t* thread = __get_thread(); in __cxa_thread_finalize()
|
H A D | clone.cpp | 48 pthread_internal_t* self = __get_thread(); in __start_thread() 88 pthread_internal_t* self = __get_thread(); in clone()
|
H A D | __libc_init_main_thread.cpp | 47 static pthread_internal_t main_thread; 88 void __init_tcb(bionic_tcb* tcb, pthread_internal_t* thread) { in __init_tcb()
|
H A D | gettid.cpp | 35 pthread_internal_t* self = __get_thread(); in gettid()
|
H A D | pthread_attr.cpp | 245 pthread_internal_t* thread = reinterpret_cast<pthread_internal_t*>(t); in pthread_getattr_np()
|
H A D | getpid.cpp | 36 pthread_internal_t* self = __get_thread(); in __get_cached_pid()
|
H A D | pthread_detach.cpp | 37 pthread_internal_t* thread = __pthread_internal_find(t, "pthread_detach"); in pthread_detach()
|
H A D | fork.cpp | 39 pthread_internal_t* self = __get_thread(); in __clone_for_fork()
|
H A D | pthread_join.cpp | 43 pthread_internal_t* thread = __pthread_internal_find(t, "pthread_join"); in pthread_join()
|
H A D | libc_init_common.cpp | 109 pthread_internal_t* main_thread = __get_thread(); in __libc_add_main_thread()
|
H A D | ndk_cruft.cpp | 368 pthread_internal_t* __get_thread() { in __get_thread()
|
/aosp12/bionic/libc/private/ |
H A D | bionic_tls.h | 49 class pthread_internal_t; variable 74 pthread_internal_t* thread() { in thread() 75 return static_cast<pthread_internal_t*>(tls_slot(TLS_SLOT_THREAD_ID)); in thread()
|
/aosp12/frameworks/libs/native_bridge_support/linker/ |
H A D | __libc_init_main_thread.cpp | 46 auto host_thread = reinterpret_cast<pthread_internal_t*>(__native_bridge_get_host_pthread()); in __libc_init_main_thread_early()
|
/aosp12/bionic/docs/ |
H A D | elf-tls.md | 518 The prototype currently allocates a `pthread_internal_t` object and static TLS in a single mmap'ed 590 the `pthread_internal_t` struct. 642 `pthread_internal_t` fields) become host accesses. Laying out TLS memory differently across 645 * A `pthread_t` is practically just a `pthread_internal_t*`, and some apps directly access the 646 `pthread_internal_t::tid` field. Past examples: http://b/17389248, [aosp/107467]. Reorganizing 647 the initial `pthread_internal_t` fields could break those apps. 802 trample on `pthread_internal_t`. We need something like `DF_STATIC_TLS`, but instead of 835 find `pthread_internal_t`, though, rather than assume a fixed offset. (XXX: I think it could be
|
H A D | status.md | 288 syscall or other, and sometimes update fields in the `pthread_internal_t`
|