ladybird/Userland
Andreas Kling 03a8357e84 Implement sending signals to blocked-in-kernel processes.
This is dirty but pretty cool! If we have a pending, unmasked signal for
a process that's blocked inside the kernel, we set up alternate stacks
for that process and unblock it to execute the signal handler.

A slightly different return trampoline is used here: since we need to
get back into the kernel, a dedicated syscall is used (sys$sigreturn.)

This restores the TSS contents of the process to the state it was in
while we were originally blocking in the kernel.

NOTE: There's currently only one "kernel resume TSS" so signal nesting
definitely won't work.
2018-11-07 21:19:47 +01:00
..
.gitignore Add strsignal() and improve sharing signal numbers between LibC and kernel. 2018-11-06 15:45:16 +01:00
cat.cpp Add some basic signal support. 2018-11-06 10:56:41 +01:00
clear.cpp Add a /bin/clear that prints the clear terminal escape sequence. 2018-10-27 17:39:08 +02:00
date.cpp Add gettimeofday() syscall and LibC wrappers gettimeofday() and time(). 2018-10-25 17:36:18 +02:00
false.cpp Add /bin/false and /bin/true for fun. :^) 2018-10-25 21:39:37 +02:00
ft.cpp Implement fork()! 2018-11-02 20:41:58 +01:00
ft2.cpp Replace zones with individually tracked physical pages. 2018-11-05 10:23:00 +01:00
hostname.cpp Add sys$gethostname and /bin/hostname 2018-10-26 09:54:29 +02:00
id.cpp Add some basic setgroups(), getgroups() and initgroups(). 2018-11-07 01:38:51 +01:00
kill.cpp Add some basic signal support. 2018-11-06 10:56:41 +01:00
ls.cpp Fix ls build. 2018-10-31 15:52:24 +01:00
Makefile Rework process states to make a bit more sense. 2018-11-07 18:34:37 +01:00
mm.cpp Add basic symlink support. 2018-10-28 14:11:51 +01:00
ps.cpp Add basic symlink support. 2018-10-28 14:11:51 +01:00
sh.cpp Implement sending signals to blocked-in-kernel processes. 2018-11-07 21:19:47 +01:00
sleep.cpp Implement sending signals to blocked-in-kernel processes. 2018-11-07 21:19:47 +01:00
strsignal.cpp Add strsignal() and improve sharing signal numbers between LibC and kernel. 2018-11-06 15:45:16 +01:00
true.cpp Add /bin/false and /bin/true for fun. :^) 2018-10-25 21:39:37 +02:00
tst.cpp Canonicalize the path used by sh. 2018-10-28 09:36:21 +01:00
tty.cpp Add a /bin/tty command that prints the current tty. 2018-10-31 21:46:05 +01:00
uname.cpp Add sys$uname() and a /bin/uname utility. 2018-10-26 14:57:26 +02:00