mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-01-24 10:12:25 -05:00
243d7003a2
This removes the allocate_tls syscall and adds an archctl option to set the fs_base for the current thread on x86-64, since you can't set that register from userspace. enter_thread_context loads the fs_base for the next thread on each context switch. This also moves tpidr_el0 (the thread pointer register on AArch64) to the register state, so it gets properly saved/restored on context switches. The userspace TLS allocation code is kept pretty similar to the original kernel TLS code, aside from a couple of style changes. We also have to add a new argument "tls_pointer" to SC_create_thread_params, as we otherwise can't prevent race conditions between setting the thread pointer register and signal handling code that might be triggered before the thread pointer was set, which could use TLS. |
||
---|---|---|
.. | ||
API | ||
Arch | ||
Boot | ||
Bus | ||
Devices | ||
FileSystem | ||
Firmware/ACPI | ||
Heap | ||
Interrupts | ||
Library | ||
Locking | ||
Memory | ||
Net | ||
Prekernel | ||
Security | ||
Syscalls | ||
Tasks | ||
Time | ||
CMakeLists.txt | ||
Debug.h.in | ||
embedmap.sh | ||
Forward.h | ||
generate-version-file.sh | ||
kprintf.cpp | ||
kstdio.h | ||
KSyms.cpp | ||
KSyms.h | ||
mkmap.sh | ||
SanCov.cpp | ||
Sections.h | ||
UnixTypes.h |