]> granicus.if.org Git - strace/commitdiff
Print struct timeval consistently
authorDmitry V. Levin <ldv@altlinux.org>
Mon, 28 Nov 2016 04:07:37 +0000 (04:07 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Mon, 28 Nov 2016 04:07:37 +0000 (04:07 +0000)
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>
print_timeval.c
print_timex.c
printrusage.c
tests/getrusage.c
tests/waitid.c
v4l2.c

index ca9439494dac8a7c6a144bf9f734521e82d42fde..6bb3e697d12f0e356441d8eb33755a30f572abf9 100644 (file)
@@ -41,6 +41,11 @@ print_timeval_t(const timeval_t *t)
        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)
 {
index 21ac0e4a7e36873ae3e825fc582d78706455491f..38bc09aa19e209cdee24559af844fc3141040829 100644 (file)
@@ -53,11 +53,10 @@ MPERS_PRINTER_DECL(int, print_timex, 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",
index 5dff1c6e0af7f49e99fb46fccdb05c2321263ddb..fce4e325794f600b8532d67b1d73ae8e3e89b659 100644 (file)
@@ -44,30 +44,32 @@ MPERS_PRINTER_DECL(void, printrusage, struct tcb *tcp, long addr)
        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
index 8bea24f2a6ab11624246c530b48c2ced20a226d0..8b76eff69e0e307e70762f9694db12722d3fc544 100644 (file)
@@ -41,16 +41,16 @@ main(void)
 {
        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,
index db15b824204770f1d96b0c0e0e59650640bb026f..6df25da627e5d5d9094ec0a6c377aa299dbc288e 100644 (file)
@@ -42,8 +42,8 @@ sprint_rusage(const struct rusage *const ru)
 {
        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"
@@ -62,10 +62,10 @@ sprint_rusage(const struct rusage *const ru)
 #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)
diff --git a/v4l2.c b/v4l2.c
index c204fe5ba26e715f68413cc320268fb2d89036f8..3aee199c0936eb17778a8e28a2ae69eba51bb941 100644 (file)
--- a/v4l2.c
+++ b/v4l2.c
@@ -366,10 +366,10 @@ print_v4l2_buffer(struct tcb *tcp, const unsigned int code, const long arg)
                        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("}");