From dc0fd428d3533bac37b9f01d4b71a67c9770c9fc Mon Sep 17 00:00:00 2001 From: apio Date: Sun, 2 Oct 2022 10:47:59 +0200 Subject: [PATCH] Syscalls return a value, right? --- libs/libc/include/luna/syscall.h | 2 +- libs/libc/src/luna/syscall.cpp | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/libs/libc/include/luna/syscall.h b/libs/libc/include/luna/syscall.h index 938008f0..3112cd0c 100644 --- a/libs/libc/include/luna/syscall.h +++ b/libs/libc/include/luna/syscall.h @@ -8,7 +8,7 @@ extern "C" { #endif - void __syscall0(int sys_num); + long int __syscall0(int sys_num); #ifdef __cplusplus } diff --git a/libs/libc/src/luna/syscall.cpp b/libs/libc/src/luna/syscall.cpp index 3328d381..c265638f 100644 --- a/libs/libc/src/luna/syscall.cpp +++ b/libs/libc/src/luna/syscall.cpp @@ -3,8 +3,10 @@ extern "C" { - void __syscall0(int sys_num) + long int __syscall0(int sys_num) { - asm volatile("int $0x42" : : "a"(sys_num)); + long int result; + asm volatile("int $0x42" : "=a"(result) : "a"(sys_num)); + return result; } } \ No newline at end of file