mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-12-11 17:00:37 +00: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. |
||
---|---|---|
.. | ||
FileSystem | ||
POSIX | ||
archctl_numbers.h | ||
BeepInstruction.h | ||
DeviceEvent.h | ||
DeviceFileTypes.h | ||
InodeWatcherEvent.h | ||
InodeWatcherFlags.h | ||
Ioctl.h | ||
Jail.h | ||
kcov.h | ||
KeyCode.h | ||
MemoryLayout.h | ||
MousePacket.h | ||
prctl_numbers.h | ||
serenity_limits.h | ||
Syscall.h | ||
SyscallString.h | ||
TimePage.h | ||
ttydefaults.h | ||
ttydefaultschars.h | ||
Unveil.h | ||
VirGL.h | ||
VirtualMemoryAnnotations.h |