void printtv_bitness(struct tcb *tcp, long addr, enum bitness_t bitness) { if (addr == 0) tprintf("NULL"); else if (!verbose(tcp)) tprintf("%#lx", addr); else { int rc; if (bitness == BITNESS_32 #if defined(LINUX) && SUPPORTED_PERSONALITIES > 1 || personality_wordsize[current_personality] == 4 #endif ) { struct timeval32 tv; if ((rc = umove(tcp, addr, &tv)) >= 0) tprint_timeval32(tcp, &tv); } else { struct timeval tv; if ((rc = umove(tcp, addr, &tv)) >= 0) tprint_timeval(tcp, &tv); } if (rc < 0) tprintf("{...}"); } }
static void printitv_bitness(struct tcb *tcp, long addr, enum bitness_t bitness) { if (addr == 0) tprints("NULL"); else if (!verbose(tcp)) tprintf("%#lx", addr); else { int rc; if (bitness == BITNESS_32 #if SUPPORTED_PERSONALITIES > 1 || current_wordsize == 4 #endif ) { struct { struct timeval32 it_interval, it_value; } itv; rc = umove(tcp, addr, &itv); if (rc >= 0) { tprints("{it_interval="); tprint_timeval32(tcp, &itv.it_interval); tprints(", it_value="); tprint_timeval32(tcp, &itv.it_value); tprints("}"); } } else { struct itimerval itv; rc = umove(tcp, addr, &itv); if (rc >= 0) { tprints("{it_interval="); tprint_timeval(tcp, &itv.it_interval); tprints(", it_value="); tprint_timeval(tcp, &itv.it_value); tprints("}"); } } if (rc < 0) tprints("{...}"); } }
static void printitv_bitness(struct tcb *tcp, long addr, enum bitness_t bitness) { if (addr == 0) tprints("NULL"); else if (!verbose(tcp)) tprintf("%#lx", addr); else { int rc; if (bitness == BITNESS_32 || current_time_t_is_compat) { struct { struct timeval32 it_interval, it_value; } itv; rc = umove(tcp, addr, &itv); if (rc >= 0) { tprints("{it_interval="); tprint_timeval32(tcp, &itv.it_interval); tprints(", it_value="); tprint_timeval32(tcp, &itv.it_value); tprints("}"); } } else { struct itimerval itv; rc = umove(tcp, addr, &itv); if (rc >= 0) { tprints("{it_interval="); tprint_timeval(tcp, &itv.it_interval); tprints(", it_value="); tprint_timeval(tcp, &itv.it_value); tprints("}"); } } if (rc < 0) tprints("{...}"); } }
static int tprint_timex32(struct tcb *tcp, long addr) { struct { unsigned int modes; int offset; int freq; int maxerror; int esterror; int status; int constant; int precision; int tolerance; struct timeval32 time; int tick; int ppsfreq; int jitter; int shift; int stabil; int jitcnt; int calcnt; int errcnt; int stbcnt; } tx; if (umove(tcp, addr, &tx) < 0) return -1; tprints("{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); tprints("}"); return 0; }