mirror of https://git.musl-libc.org/git/musl
Browse Source
this is yet another place where special handling of time syscalls can and should be avoided by implementing legacy functions in terms of their modern replacements. in theory a fallback to SYS_settimeofday could be added to clock_settime, but SYS_clock_settime has been available since Linux 2.6.0 or earlier, i.e. all the way back to the minimum supported version.master
1 changed files with 6 additions and 1 deletions
@ -1,8 +1,13 @@ |
|||
#define _BSD_SOURCE |
|||
#include <sys/time.h> |
|||
#include <time.h> |
|||
#include <errno.h> |
|||
#include "syscall.h" |
|||
|
|||
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})); |
|||
} |
|||
|
|||
Loading…
Reference in new issue