forked from Bananymous/banan-os
Kernel: Cleanup signal trampoline
This commit is contained in:
parent
6f7d97cf94
commit
08cdf88586
|
@ -46,7 +46,6 @@ set(KERNEL_SOURCES
|
||||||
kernel/Scheduler.cpp
|
kernel/Scheduler.cpp
|
||||||
kernel/Semaphore.cpp
|
kernel/Semaphore.cpp
|
||||||
kernel/Serial.cpp
|
kernel/Serial.cpp
|
||||||
kernel/Signal.cpp
|
|
||||||
kernel/SpinLock.cpp
|
kernel/SpinLock.cpp
|
||||||
kernel/SSP.cpp
|
kernel/SSP.cpp
|
||||||
kernel/Storage/ATABus.cpp
|
kernel/Storage/ATABus.cpp
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
.section .userspace, "aw"
|
.section .userspace, "aw"
|
||||||
|
|
||||||
|
#include <sys/syscall.h>
|
||||||
|
|
||||||
.global signal_trampoline
|
.global signal_trampoline
|
||||||
signal_trampoline:
|
signal_trampoline:
|
||||||
pushq %rax
|
pushq %rax
|
||||||
|
@ -18,14 +20,13 @@ signal_trampoline:
|
||||||
pushq %r14
|
pushq %r14
|
||||||
pushq %r15
|
pushq %r15
|
||||||
|
|
||||||
xchgw %bx, %bx
|
|
||||||
|
|
||||||
movq 128(%rsp), %rdi
|
movq 128(%rsp), %rdi
|
||||||
movq 120(%rsp), %rax
|
movq 120(%rsp), %rax
|
||||||
call *%rax
|
call *%rax
|
||||||
|
|
||||||
movq 128(%rsp), %rdi
|
movq $SYS_SIGNAL_DONE, %rax
|
||||||
call signal_done
|
movq 128(%rsp), %rbx
|
||||||
|
int $0x80
|
||||||
|
|
||||||
popq %r15
|
popq %r15
|
||||||
popq %r14
|
popq %r14
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
#include <sys/syscall.h>
|
|
||||||
#include <kernel/Syscall.h>
|
|
||||||
|
|
||||||
extern "C" __attribute__((section(".userspace")))
|
|
||||||
void signal_done(int signal)
|
|
||||||
{
|
|
||||||
Kernel::syscall(SYS_SIGNAL_DONE, signal);
|
|
||||||
}
|
|
Loading…
Reference in New Issue