+ if (umove(tcp, addr, &tx) < 0)
+ return -1;
+
+ tprintf("{modes=");
+ printflags(adjtimex_modes, tx.modes, "ADJ_???");
+ tprintf(", offset=%d, freq=%d, maxerror=%d, ",
+ tx.offset, tx.freq, tx.maxerror);
+ tprintf("esterror=%u, status=", tx.esterror);
+ printflags(adjtimex_status, tx.status, "STA_???");
+ tprintf(", constant=%d, precision=%u, ",
+ tx.constant, tx.precision);
+ tprintf("tolerance=%d, time=", tx.tolerance);
+ tprint_timeval32(tcp, &tx.time);
+ tprintf(", tick=%d, ppsfreq=%d, jitter=%d",
+ tx.tick, tx.ppsfreq, tx.jitter);
+ tprintf(", shift=%d, stabil=%d, jitcnt=%d",
+ tx.shift, tx.stabil, tx.jitcnt);
+ tprintf(", calcnt=%d, errcnt=%d, stbcnt=%d",
+ tx.calcnt, tx.errcnt, tx.stbcnt);
+ tprintf("}");
+ return 0;
+}
+#endif /* SUPPORTED_PERSONALITIES > 1 */
+
+static int
+tprint_timex(struct tcb *tcp, long addr)
+{
+ struct timex tx;
+
+#if SUPPORTED_PERSONALITIES > 1
+ if (personality_wordsize[current_personality] == 4)
+ return tprint_timex32(tcp, addr);
+#endif
+ if (umove(tcp, addr, &tx) < 0)
+ return -1;
+
+#if LINUX_VERSION_CODE < 66332
+ tprintf("{mode=%d, offset=%ld, frequency=%ld, ",
+ tx.mode, tx.offset, tx.frequency);
+ tprintf("maxerror=%ld, esterror=%lu, status=%u, ",
+ tx.maxerror, tx.esterror, tx.status);
+ tprintf("time_constant=%ld, precision=%lu, ",
+ tx.time_constant, tx.precision);
+ tprintf("tolerance=%ld, time=", tx.tolerance);
+ tprint_timeval(tcp, &tx.time);
+#else
+ tprintf("{modes=");
+ printflags(adjtimex_modes, tx.modes, "ADJ_???");
+ tprintf(", offset=%ld, freq=%ld, maxerror=%ld, ",
+ tx.offset, tx.freq, tx.maxerror);
+ tprintf("esterror=%lu, status=", tx.esterror);
+ printflags(adjtimex_status, tx.status, "STA_???");
+ tprintf(", constant=%ld, precision=%lu, ",
+ tx.constant, tx.precision);
+ tprintf("tolerance=%ld, time=", tx.tolerance);
+ tprint_timeval(tcp, &tx.time);
+ tprintf(", tick=%ld, ppsfreq=%ld, jitter=%ld",
+ tx.tick, tx.ppsfreq, tx.jitter);
+ tprintf(", shift=%d, stabil=%ld, jitcnt=%ld",
+ tx.shift, tx.stabil, tx.jitcnt);
+ tprintf(", calcnt=%ld, errcnt=%ld, stbcnt=%ld",
+ tx.calcnt, tx.errcnt, tx.stbcnt);
+#endif
+ tprintf("}");
+ return 0;
+}
+
+int
+sys_adjtimex(struct tcb *tcp)
+{