diff options
author | Andreas Kling <awesomekling@gmail.com> | 2018-11-07 21:19:47 +0100 |
---|---|---|
committer | Andreas Kling <awesomekling@gmail.com> | 2018-11-07 21:19:47 +0100 |
commit | 03a8357e84a9a7c478d787c4705dddf70dc99f7d (patch) | |
tree | 23407586e5c6c3069f2b1f8c49c9b916e058b425 /VirtualFileSystem/VirtualFileSystem.cpp | |
parent | c8b308910efa1523f24a935e8d1d38ceb316637f (diff) | |
download | serenity-03a8357e84a9a7c478d787c4705dddf70dc99f7d.zip |
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.
Diffstat (limited to 'VirtualFileSystem/VirtualFileSystem.cpp')
-rw-r--r-- | VirtualFileSystem/VirtualFileSystem.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/VirtualFileSystem/VirtualFileSystem.cpp b/VirtualFileSystem/VirtualFileSystem.cpp index 8c6e3e330e..da482bd9fa 100644 --- a/VirtualFileSystem/VirtualFileSystem.cpp +++ b/VirtualFileSystem/VirtualFileSystem.cpp @@ -6,7 +6,7 @@ #include <AK/kstdio.h> #include <AK/ktime.h> #include "CharacterDevice.h" -#include "sys-errno.h" +#include <LibC/errno_numbers.h> //#define VFS_DEBUG |