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/Semaphore.cpp
 | 
			
		||||
	kernel/Serial.cpp
 | 
			
		||||
	kernel/Signal.cpp
 | 
			
		||||
	kernel/SpinLock.cpp
 | 
			
		||||
	kernel/SSP.cpp
 | 
			
		||||
	kernel/Storage/ATABus.cpp
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,7 @@
 | 
			
		|||
.section .userspace, "aw"
 | 
			
		||||
 | 
			
		||||
#include <sys/syscall.h>
 | 
			
		||||
 | 
			
		||||
.global signal_trampoline
 | 
			
		||||
signal_trampoline:
 | 
			
		||||
	pushq %rax
 | 
			
		||||
| 
						 | 
				
			
			@ -18,14 +20,13 @@ signal_trampoline:
 | 
			
		|||
	pushq %r14
 | 
			
		||||
	pushq %r15
 | 
			
		||||
 | 
			
		||||
	xchgw %bx, %bx
 | 
			
		||||
 | 
			
		||||
	movq 128(%rsp), %rdi
 | 
			
		||||
	movq 120(%rsp), %rax
 | 
			
		||||
	call *%rax
 | 
			
		||||
 | 
			
		||||
	movq 128(%rsp), %rdi
 | 
			
		||||
	call signal_done
 | 
			
		||||
	movq $SYS_SIGNAL_DONE, %rax
 | 
			
		||||
	movq 128(%rsp), %rbx
 | 
			
		||||
	int $0x80
 | 
			
		||||
 | 
			
		||||
	popq %r15
 | 
			
		||||
	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