diff --git a/kernel-src/arch/x86-64/syscall.asm b/kernel-src/arch/x86-64/syscall.asm index 25f970f4..6a6c4df9 100644 --- a/kernel-src/arch/x86-64/syscall.asm +++ b/kernel-src/arch/x86-64/syscall.asm @@ -115,6 +115,7 @@ arch_syscall_entry: ; call logging function + sti mov rdi, rax extern arch_syscall_log call arch_syscall_log ; compiled with __attribute__((no_caller_saved_registers)) @@ -122,7 +123,6 @@ arch_syscall_entry: ; prepare context argument mov rdi, rsp add rdi, 8 ; context pointer is after r9 argument - sti cmp rax, syscallcount jae .nosyscall diff --git a/kernel-src/arch/x86-64/syscalllog.c b/kernel-src/arch/x86-64/syscalllog.c index 553e073a..20c1dcc5 100644 --- a/kernel-src/arch/x86-64/syscalllog.c +++ b/kernel-src/arch/x86-64/syscalllog.c @@ -1,5 +1,6 @@ #include #include +#include #define SYSCALL_COUNT 23 #define LOGSTR(x) arch_e9_puts(x) @@ -69,7 +70,7 @@ __attribute__((no_caller_saved_registers)) void arch_syscall_log(int syscall, ui LOGSTR(printbuff); } -__attribute__((no_caller_saved_registers)) void arch_syscall_log_return(int syscall, uint64_t ret, uint64_t errno) { +__attribute__((no_caller_saved_registers)) void arch_syscall_log_return(uint64_t ret, uint64_t errno) { char printbuff[1024]; thread_t *thread = _cpu()->thread;