From 7826c4030ea1651e31463cd7986de4007d8e041b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustav=20S=C3=B6rn=C3=A4s?= Date: Thu, 4 Feb 2021 10:56:18 +0100 Subject: syscall_handler(): parse syscall number --- src/userprog/syscall.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src/userprog/syscall.c') diff --git a/src/userprog/syscall.c b/src/userprog/syscall.c index 370c89b..e15555e 100644 --- a/src/userprog/syscall.c +++ b/src/userprog/syscall.c @@ -15,6 +15,15 @@ syscall_init (void) static void syscall_handler (struct intr_frame *f UNUSED) { - printf ("system call!\n"); + int syscall_number = *((int *)f->esp); + switch (syscall_number) { + case 9: + // printf + printf ("printf: %s", *((char **)(f->esp+8))); + break; + default: + printf ("kernel: unknown syscall '%d'\n", syscall_number); + break; + } thread_exit (); } -- cgit v1.2.1