Use print_struct_timeval interface to print struct timeval.
* print_timeval.c (print_struct_timeval): New mpers printer.
* print_timex.c (print_timex): Use it.
* printrusage.c (printrusage): Likewise.
* v4l2.c (print_v4l2_buffer): Likewise.
* tests/getrusage.c (main): Print tv_sec and tv_usec fields as signed.
* tests/waitid.c (sprint_rusage): Likewise.
Suggested-by: Eugene Syromyatnikov <evgsyr@gmail.com>
tprintf(timeval_fmt, (intmax_t) t->tv_sec, (intmax_t) t->tv_usec);
}
+MPERS_PRINTER_DECL(void, print_struct_timeval, const void *arg)
+{
+ print_timeval_t(arg);
+}
+
MPERS_PRINTER_DECL(void, print_timeval,
struct tcb *tcp, const long addr)
{
(intmax_t) tx.offset, (intmax_t) tx.freq,
(uintmax_t) tx.maxerror, (uintmax_t) tx.esterror);
printflags(adjtimex_status, tx.status, "STA_???");
- tprintf(", constant=%jd, precision=%ju, tolerance=%jd",
+ tprintf(", constant=%jd, precision=%ju, tolerance=%jd, time=",
(intmax_t) tx.constant, (uintmax_t) tx.precision,
(intmax_t) tx.tolerance);
- tprintf(", time={tv_sec=%jd, tv_usec=%jd}",
- (intmax_t) tx.time.tv_sec, (intmax_t) tx.time.tv_usec);
+ MPERS_FUNC_NAME(print_struct_timeval)(&tx.time);
tprintf(", tick=%jd, ppsfreq=%jd, jitter=%jd",
(intmax_t) tx.tick, (intmax_t) tx.ppsfreq, (intmax_t) tx.jitter);
tprintf(", shift=%d, stabil=%jd, jitcnt=%jd",
if (umove_or_printaddr(tcp, addr, &ru))
return;
- tprintf("{ru_utime={tv_sec=%llu, tv_usec=%llu}, "
- "ru_stime={tv_sec=%llu, tv_usec=%llu}, ",
- zero_extend_signed_to_ull(ru.ru_utime.tv_sec),
- zero_extend_signed_to_ull(ru.ru_utime.tv_usec),
- zero_extend_signed_to_ull(ru.ru_stime.tv_sec),
- zero_extend_signed_to_ull(ru.ru_stime.tv_usec));
+ tprints("{ru_utime=");
+ MPERS_FUNC_NAME(print_struct_timeval)(&ru.ru_utime);
+ tprints(", ru_stime=");
+ MPERS_FUNC_NAME(print_struct_timeval)(&ru.ru_stime);
if (abbrev(tcp))
- tprints("...}");
+ tprints(", ...");
else {
- tprintf("ru_maxrss=%llu, ", zero_extend_signed_to_ull(ru.ru_maxrss));
- tprintf("ru_ixrss=%llu, ", zero_extend_signed_to_ull(ru.ru_ixrss));
- tprintf("ru_idrss=%llu, ", zero_extend_signed_to_ull(ru.ru_idrss));
- tprintf("ru_isrss=%llu, ", zero_extend_signed_to_ull(ru.ru_isrss));
- tprintf("ru_minflt=%llu, ", zero_extend_signed_to_ull(ru.ru_minflt));
- tprintf("ru_majflt=%llu, ", zero_extend_signed_to_ull(ru.ru_majflt));
- tprintf("ru_nswap=%llu, ", zero_extend_signed_to_ull(ru.ru_nswap));
- tprintf("ru_inblock=%llu, ", zero_extend_signed_to_ull(ru.ru_inblock));
- tprintf("ru_oublock=%llu, ", zero_extend_signed_to_ull(ru.ru_oublock));
- tprintf("ru_msgsnd=%llu, ", zero_extend_signed_to_ull(ru.ru_msgsnd));
- tprintf("ru_msgrcv=%llu, ", zero_extend_signed_to_ull(ru.ru_msgrcv));
- tprintf("ru_nsignals=%llu, ", zero_extend_signed_to_ull(ru.ru_nsignals));
- tprintf("ru_nvcsw=%llu, ", zero_extend_signed_to_ull(ru.ru_nvcsw));
- tprintf("ru_nivcsw=%llu}", zero_extend_signed_to_ull(ru.ru_nivcsw));
+#define PRINT_RUSAGE_MEMBER(member) \
+ tprintf(", " #member "=%llu", zero_extend_signed_to_ull(ru.member))
+ PRINT_RUSAGE_MEMBER(ru_maxrss);
+ PRINT_RUSAGE_MEMBER(ru_ixrss);
+ PRINT_RUSAGE_MEMBER(ru_idrss);
+ PRINT_RUSAGE_MEMBER(ru_isrss);
+ PRINT_RUSAGE_MEMBER(ru_minflt);
+ PRINT_RUSAGE_MEMBER(ru_majflt);
+ PRINT_RUSAGE_MEMBER(ru_nswap);
+ PRINT_RUSAGE_MEMBER(ru_inblock);
+ PRINT_RUSAGE_MEMBER(ru_oublock);
+ PRINT_RUSAGE_MEMBER(ru_msgsnd);
+ PRINT_RUSAGE_MEMBER(ru_msgrcv);
+ PRINT_RUSAGE_MEMBER(ru_nsignals);
+ PRINT_RUSAGE_MEMBER(ru_nvcsw);
+ PRINT_RUSAGE_MEMBER(ru_nivcsw);
+#undef PRINT_RUSAGE_MEMBER
}
+ tprints("}");
}
#ifdef ALPHA
{
struct rusage *const usage = tail_alloc(sizeof(struct rusage));
int rc = syscall(__NR_getrusage, RUSAGE_SELF, usage);
- printf("getrusage(RUSAGE_SELF, {ru_utime={tv_sec=%ju, tv_usec=%ju}"
- ", ru_stime={tv_sec=%ju, tv_usec=%ju}, ru_maxrss=%lu"
+ printf("getrusage(RUSAGE_SELF, {ru_utime={tv_sec=%jd, tv_usec=%jd}"
+ ", ru_stime={tv_sec=%jd, tv_usec=%jd}, ru_maxrss=%lu"
", ru_ixrss=%lu, ru_idrss=%lu, ru_isrss=%lu, ru_minflt=%lu"
", ru_majflt=%lu, ru_nswap=%lu, ru_inblock=%lu"
", ru_oublock=%lu, ru_msgsnd=%lu, ru_msgrcv=%lu"
", ru_nsignals=%lu, ru_nvcsw=%lu, ru_nivcsw=%lu}) = %d\n",
- (uintmax_t) usage->ru_utime.tv_sec,
- (uintmax_t) usage->ru_utime.tv_usec,
- (uintmax_t) usage->ru_stime.tv_sec,
- (uintmax_t) usage->ru_stime.tv_usec,
+ (intmax_t) usage->ru_utime.tv_sec,
+ (intmax_t) usage->ru_utime.tv_usec,
+ (intmax_t) usage->ru_stime.tv_sec,
+ (intmax_t) usage->ru_stime.tv_usec,
usage->ru_maxrss, usage->ru_ixrss, usage->ru_idrss,
usage->ru_isrss, usage->ru_minflt, usage->ru_majflt,
usage->ru_nswap, usage->ru_inblock, usage->ru_oublock,
{
static char buf[1024];
snprintf(buf, sizeof(buf),
- "{ru_utime={tv_sec=%llu, tv_usec=%llu}"
- ", ru_stime={tv_sec=%llu, tv_usec=%llu}"
+ "{ru_utime={tv_sec=%lld, tv_usec=%lld}"
+ ", ru_stime={tv_sec=%lld, tv_usec=%lld}"
#if VERBOSE
", ru_maxrss=%llu"
", ru_ixrss=%llu"
#else
", ...}"
#endif
- , zero_extend_signed_to_ull(ru->ru_utime.tv_sec)
- , zero_extend_signed_to_ull(ru->ru_utime.tv_usec)
- , zero_extend_signed_to_ull(ru->ru_stime.tv_sec)
- , zero_extend_signed_to_ull(ru->ru_stime.tv_usec)
+ , (long long) ru->ru_utime.tv_sec
+ , (long long) ru->ru_utime.tv_usec
+ , (long long) ru->ru_stime.tv_sec
+ , (long long) ru->ru_stime.tv_usec
#if VERBOSE
, zero_extend_signed_to_ull(ru->ru_maxrss)
, zero_extend_signed_to_ull(ru->ru_ixrss)
tprintf(", length=%u, bytesused=%u, flags=",
b.length, b.bytesused);
printflags(v4l2_buf_flags, b.flags, "V4L2_BUF_FLAG_???");
- if (code == VIDIOC_DQBUF)
- tprintf(", timestamp = {%ju.%06ju}",
- (uintmax_t)b.timestamp.tv_sec,
- (uintmax_t)b.timestamp.tv_usec);
+ if (code == VIDIOC_DQBUF) {
+ tprints(", timestamp = ");
+ MPERS_FUNC_NAME(print_struct_timeval)(&b.timestamp);
+ }
tprints(", ...");
}
tprints("}");