From 8a29c78d34f1924c4e39a3a951b36c4512ffe9c1 Mon Sep 17 00:00:00 2001 From: dzwdz Date: Fri, 23 Jul 2021 13:50:00 +0200 Subject: update the process' EIP/ESP when it syscalls --- src/kernel/syscalls.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/kernel/syscalls.c') diff --git a/src/kernel/syscalls.c b/src/kernel/syscalls.c index 2af8cf9..24706d3 100644 --- a/src/kernel/syscalls.c +++ b/src/kernel/syscalls.c @@ -18,7 +18,10 @@ int sc_debuglog(const char *msg, size_t len) { return len; } -int syscall_handler(int num, int a, int b, int c) { +int syscall_handler(int num, int a, int b, int c, void *stack, void *eip) { + process_current->esp = stack; + process_current->eip = eip; + switch (num) { case SC_DEBUGLOG: return sc_debuglog((void*)a, b); -- cgit v1.2.3