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