diff --git a/src/tasking/syscalls.c b/src/tasking/syscalls.c index 1212d1b..f114a1b 100644 --- a/src/tasking/syscalls.c +++ b/src/tasking/syscalls.c @@ -230,6 +230,11 @@ int sys_close(TrapFrame *tf) return -1; } +int sys_getpid(TrapFrame *tf) +{ + return current->pid; +} + void handle_syscall(TrapFrame *tf) { /* @@ -262,6 +267,10 @@ void handle_syscall(TrapFrame *tf) case 6://close tf->eax = sys_close(tf); break; + + case 20://getpid + tf->eax = sys_getpid(tf); + break; default: debug_log("unknown syscall: %X\n", tf->eax); tf->eax = -1;