diff --git a/Kernel/API/Syscall.h b/Kernel/API/Syscall.h index ecf8aee963..b332059686 100644 --- a/Kernel/API/Syscall.h +++ b/Kernel/API/Syscall.h @@ -282,8 +282,8 @@ struct SC_poll_params { struct SC_clock_nanosleep_params { int clock_id; int flags; - const struct timespec* requested_sleep; - struct timespec* remaining_sleep; + Userspace requested_sleep; + Userspace remaining_sleep; }; struct SC_sendto_params { diff --git a/Kernel/Process.h b/Kernel/Process.h index 30251418d4..cae0cd9b24 100644 --- a/Kernel/Process.h +++ b/Kernel/Process.h @@ -241,7 +241,7 @@ public: int sys$gettimeofday(Userspace); int sys$clock_gettime(clockid_t, timespec*); int sys$clock_settime(clockid_t, timespec*); - int sys$clock_nanosleep(const Syscall::SC_clock_nanosleep_params*); + int sys$clock_nanosleep(Userspace); int sys$gethostname(char*, ssize_t); int sys$sethostname(const char*, ssize_t); int sys$uname(utsname*); diff --git a/Kernel/Syscalls/clock.cpp b/Kernel/Syscalls/clock.cpp index 7fc1be5f8a..dc9a6e4c6e 100644 --- a/Kernel/Syscalls/clock.cpp +++ b/Kernel/Syscalls/clock.cpp @@ -76,7 +76,7 @@ int Process::sys$clock_settime(clockid_t clock_id, timespec* user_ts) return 0; } -int Process::sys$clock_nanosleep(const Syscall::SC_clock_nanosleep_params* user_params) +int Process::sys$clock_nanosleep(Userspace user_params) { REQUIRE_PROMISE(stdio); @@ -118,8 +118,7 @@ int Process::sys$clock_nanosleep(const Syscall::SC_clock_nanosleep_params* user_ return -EFAULT; } - timespec remaining_sleep; - memset(&remaining_sleep, 0, sizeof(timespec)); + timespec remaining_sleep = {}; remaining_sleep.tv_sec = ticks_left / TimeManagement::the().ticks_per_second(); ticks_left -= remaining_sleep.tv_sec * TimeManagement::the().ticks_per_second(); remaining_sleep.tv_nsec = ticks_left * 1000000000 / TimeManagement::the().ticks_per_second();