From 463736887fbb6439fe5e676f6fd7990adc6bb727 Mon Sep 17 00:00:00 2001 From: Michal Idziorek Date: Thu, 23 Oct 2014 08:41:34 +0200 Subject: added execve syscall --- asm/int_syscall_handler.asm | 30 +++++++++++------------------- 1 file changed, 11 insertions(+), 19 deletions(-) (limited to 'asm/int_syscall_handler.asm') diff --git a/asm/int_syscall_handler.asm b/asm/int_syscall_handler.asm index c36b9b5..25de51a 100644 --- a/asm/int_syscall_handler.asm +++ b/asm/int_syscall_handler.asm @@ -1,11 +1,9 @@ global int_syscall_handler -[extern example_syscall] -[extern example_syscall_2] - [extern syscall_write] [extern syscall_read] [extern syscall_readdir] +[extern syscall_execve] [bits 32] int_syscall_handler: @@ -16,12 +14,6 @@ int_syscall_handler: push ecx push edx - cmp eax, 10 - je call_example_syscall - - cmp eax, 20 - je call_example_syscall_2 - cmp eax, 61 je call_write @@ -31,6 +23,9 @@ int_syscall_handler: cmp eax, 63 je call_readdir + cmp eax, 64 + je call_execve + done: mov ebx,eax @@ -54,15 +49,6 @@ done_blocking: iret ;Interrupt-Return - -call_example_syscall: - call example_syscall - jmp done - -call_example_syscall_2: - call example_syscall_2 - jmp done - call_write: call syscall_write jmp done @@ -72,7 +58,6 @@ call_readdir: jmp done call_read: - mov al, 0x20 ;Port number AND command number to Acknowledge IRQ out 0x20, al ;Acknowledge IRQ, so we keep getting interrupts sti @@ -81,3 +66,10 @@ call_read: jmp done_blocking +call_execve: + mov al, 0x20 ;Port number AND command number to Acknowledge IRQ + out 0x20, al ;Acknowledge IRQ, so we keep getting interrupts + sti + call syscall_execve + jmp $ ; this should never return TODO: pop stack!? + -- cgit v1.2.3