Kernel: Fix signal trampoline

32 bit did not even support it and 64 bit did not align stack
This commit is contained in:
2024-04-18 13:32:40 +03:00
parent a698f91db4
commit 061012a268
4 changed files with 18 additions and 6 deletions

View File

@@ -335,7 +335,9 @@ namespace Kernel
else if (signal_handler != (vaddr_t)SIG_DFL)
{
// call userspace signal handlers
#if ARCH(x86_64)
interrupt_stack.sp -= 128; // skip possible red-zone
#endif
write_to_stack(interrupt_stack.sp, interrupt_stack.ip);
write_to_stack(interrupt_stack.sp, signal);
write_to_stack(interrupt_stack.sp, signal_handler);