refactor adjtime function using adjtimex function instead of syscall
authorRich Felker <dalias@aerifal.cx>
Sat, 20 Jul 2019 21:23:40 +0000 (17:23 -0400)
committerRich Felker <dalias@aerifal.cx>
Sat, 20 Jul 2019 21:23:40 +0000 (17:23 -0400)
this removes the assumption that userspace struct timex matches the
syscall type and sets the stage for 64-bit time_t on 32-bit archs.

src/linux/adjtime.c

index fa8af9f021773f575989fb34b872699434cfe4cf..5a707f2f217e829127247301896883667f487b5a 100644 (file)
@@ -15,7 +15,7 @@ int adjtime(const struct timeval *in, struct timeval *out)
                tx.offset = in->tv_sec*1000000 + in->tv_usec;
                tx.modes = ADJ_OFFSET_SINGLESHOT;
        }
-       if (syscall(SYS_adjtimex, &tx) < 0) return -1;
+       if (adjtimex(&tx) < 0) return -1;
        if (out) {
                out->tv_sec = tx.offset / 1000000;
                if ((out->tv_usec = tx.offset % 1000000) < 0) {