X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;ds=sidebyside;f=src%2Flinux%2Fsettimeofday.c;h=860fb5de97b006c2d0c2c1e12a1cd6fd3f3a9a1b;hb=2412638bb39eb799b2600393bbd71cca8ae96bb2;hp=d741f66bcdfaf056a7f0efb1ae51377c12ac4e53;hpb=aa398f56fa398f2202b04e82c67f822f3233786f;p=musl diff --git a/src/linux/settimeofday.c b/src/linux/settimeofday.c index d741f66b..860fb5de 100644 --- a/src/linux/settimeofday.c +++ b/src/linux/settimeofday.c @@ -1,7 +1,13 @@ +#define _BSD_SOURCE #include +#include +#include #include "syscall.h" -int settimeofday(const struct timeval *tv, void *tz) +int settimeofday(const struct timeval *tv, const struct timezone *tz) { - return syscall(SYS_settimeofday, tv, 0); + if (!tv) return 0; + if (tv->tv_usec >= 1000000ULL) return __syscall_ret(-EINVAL); + return clock_settime(CLOCK_REALTIME, &((struct timespec){ + .tv_sec = tv->tv_sec, .tv_nsec = tv->tv_usec * 1000})); }