]> granicus.if.org Git - strace/commitdiff
Print microseconds/nanoseconds as non-negative
authorEugene Syromyatnikov <evgsyr@gmail.com>
Sun, 23 Apr 2017 03:57:03 +0000 (05:57 +0200)
committerDmitry V. Levin <ldv@altlinux.org>
Mon, 24 Apr 2017 23:14:57 +0000 (23:14 +0000)
Negative micro/nanoseconds values are treated as invalid by kernel
anyway, and in one case (timespec_valid in include/linux/time.h)
it is even checked by conversion to unsigned long.

* print_timespec.c (timespec_fmt): Change tv_sec format to %lld and
tv_nsec format to %llu.
(print_timespec_t): Cast tv_sec to long long and process tv_nsec with
zero_extend_signed_to_ull.
(sprint_timespec): Likewise.
* print_timeval.c (timeval_fmt): Change tv_sec format to %lld and
tv_usec format to %llu.
(print_timeval_t): Cast tv_sec to long long and process tv_nsec with
zero_extend_signed_to_ull.
(sprint_timeval, print_timeval32_t, sprint_timeval32): Likewise.
* defs.h (TIMESPEC_TEXT_BUFSIZE): Update.
* tests/adjtimex.c (main): Change tv_sec printing format to %lld, cast
it to long long; change tv_usec printing format to %llu, process it with
zero_extend_signed_to_ull.
* tests/clock_nanosleep.c (main): Change tv_sec printing format to %lld,
cast it to long long; change tv_nsec printing format to %llu, process it
with zero_extend_signed_to_ull.
* tests/clock_xettime.c (main): Likewise.
* tests/futex.c (main): Likewise.
* tests/futimesat.c (print_tv): Likewise.
* tests/getrusage.c (invoke_print): Likewise.
* tests/mq_sendrecv.c (do_send, do_recv, main): Likewise.
* tests/nanosleep.c (main): Likewise.
* tests/pselect6.c (main): Likewise.
* tests/restart_syscall.c (main): Likewise.
* tests/rt_sigtimedwait.c (iterate, main): Likewise.
* tests/sched_rr_get_interval.c (main): Likewise.
* tests/semop.c (main): Likewise.
* tests/timer_xettime.c (main): Likewise.
* tests/timerfd_xettime.c (main): Likewise.
* tests/waitid.c (main): Likewise.
* tests/xetitimer.c (main): Likewise.
* tests/xettimeofday.c (main): Likewise.
* tests/xselect.c (main): Likewise.
* tests/xutimes.c (print_tv): Likewise.
* tests/wait4.c (sprint_rusage): Likewise.
* tests/waitid.c (sprint_rusage): Likewise.
* tests/utimensat.c (print_ts): Likewise.
(main): Add check for higher bits of tv_sec/tv_nsec.

Co-authored-by: Dmitry V. Levin <ldv@altlinux.org>
25 files changed:
defs.h
print_timespec.c
print_timeval.c
tests/adjtimex.c
tests/clock_nanosleep.c
tests/clock_xettime.c
tests/futex.c
tests/futimesat.c
tests/getrusage.c
tests/mq_sendrecv.c
tests/nanosleep.c
tests/pselect6.c
tests/restart_syscall.c
tests/rt_sigtimedwait.c
tests/sched_rr_get_interval.c
tests/semop.c
tests/timer_xettime.c
tests/timerfd_xettime.c
tests/utimensat.c
tests/wait4.c
tests/waitid.c
tests/xetitimer.c
tests/xettimeofday.c
tests/xselect.c
tests/xutimes.c

diff --git a/defs.h b/defs.h
index 63bdb0d589d43b0210a369452eaeacd3747e7742..fb3a603e308dfce292d72cd466b4beb2f91a204d 100644 (file)
--- a/defs.h
+++ b/defs.h
@@ -579,7 +579,7 @@ extern void
 printpath(struct tcb *, kernel_ulong_t addr);
 
 #define TIMESPEC_TEXT_BUFSIZE \
-               (sizeof(intmax_t)*3 * 2 + sizeof("{tv_sec=%jd, tv_nsec=%jd}"))
+               (sizeof(long long) * 3 * 2 + sizeof("{tv_sec=-, tv_nsec=}"))
 extern void printfd(struct tcb *, int);
 extern void print_sockaddr(struct tcb *tcp, const void *, int);
 extern bool print_sockaddr_by_inode(const unsigned long, const enum sock_proto);
index 76c70edbe0ab271d2af4454b96c66e31285203a9..818cb95d69d64337a93686cc22ad4545c642d422 100644 (file)
@@ -40,12 +40,13 @@ typedef struct timespec timespec_t;
 # define UTIME_OMIT ((1l << 30) - 2l)
 #endif
 
-static const char timespec_fmt[] = "{tv_sec=%jd, tv_nsec=%jd}";
+static const char timespec_fmt[] = "{tv_sec=%lld, tv_nsec=%llu}";
 
 static void
 print_timespec_t(const timespec_t *t)
 {
-       tprintf(timespec_fmt, (intmax_t) t->tv_sec, (intmax_t) t->tv_nsec);
+       tprintf(timespec_fmt, (long long) t->tv_sec,
+               zero_extend_signed_to_ull(t->tv_nsec));
 }
 
 static void
@@ -88,7 +89,8 @@ MPERS_PRINTER_DECL(const char *, sprint_timespec,
                snprintf(buf, sizeof(buf), "%#" PRI_klx, addr);
        } else {
                snprintf(buf, sizeof(buf), timespec_fmt,
-                        (intmax_t) t.tv_sec, (intmax_t) t.tv_nsec);
+                        (long long) t.tv_sec,
+                        zero_extend_signed_to_ull(t.tv_nsec));
        }
 
        return buf;
index 1b39394de0f00a895cfa4703ee88a1d3bf61eb85..92c6ad61f4747b7162e8d367a44394452c845075 100644 (file)
@@ -33,12 +33,13 @@ typedef struct timeval timeval_t;
 
 #include MPERS_DEFS
 
-static const char timeval_fmt[]  = "{tv_sec=%jd, tv_usec=%jd}";
+static const char timeval_fmt[]  = "{tv_sec=%lld, tv_usec=%llu}";
 
 static void
 print_timeval_t(const timeval_t *t)
 {
-       tprintf(timeval_fmt, (intmax_t) t->tv_sec, (intmax_t) t->tv_usec);
+       tprintf(timeval_fmt, (long long) t->tv_sec,
+               zero_extend_signed_to_ull(t->tv_usec));
 }
 
 MPERS_PRINTER_DECL(void, print_struct_timeval, const void *arg)
@@ -85,7 +86,8 @@ MPERS_PRINTER_DECL(const char *, sprint_timeval,
                snprintf(buf, sizeof(buf), "%#" PRI_klx, addr);
        } else {
                snprintf(buf, sizeof(buf), timeval_fmt,
-                        (intmax_t) t.tv_sec, (intmax_t) t.tv_usec);
+                        (long long) t.tv_sec,
+                        zero_extend_signed_to_ull(t.tv_usec));
        }
 
        return buf;
@@ -111,7 +113,8 @@ MPERS_PRINTER_DECL(void, print_itimerval,
 void
 print_timeval32_t(const timeval32_t *t)
 {
-       tprintf(timeval_fmt, (intmax_t) t->tv_sec, (intmax_t) t->tv_usec);
+       tprintf(timeval_fmt, (long long) t->tv_sec,
+               zero_extend_signed_to_ull(t->tv_usec));
 }
 
 void
@@ -168,7 +171,8 @@ sprint_timeval32(struct tcb *const tcp, const kernel_ulong_t addr)
                snprintf(buf, sizeof(buf), "%#" PRI_klx, addr);
        } else {
                snprintf(buf, sizeof(buf), timeval_fmt,
-                        (intmax_t) t.tv_sec, (intmax_t) t.tv_usec);
+                        (long long) t.tv_sec,
+                        zero_extend_signed_to_ull(t.tv_usec));
        }
 
        return buf;
index d0e36306a456d369abb6d63dde5ed8e4b316f4be..4d68ea11616ad12777c91e88e64e52c0645bcae0 100644 (file)
@@ -61,9 +61,9 @@ main(void)
        else
                putchar('0');
        printf(", constant=%jd, precision=%jd"
-              ", tolerance=%jd, time={tv_sec=%jd, tv_usec=%jd}, tick=%jd, "
-              "ppsfreq=%jd, jitter=%jd, shift=%d, stabil=%jd, jitcnt=%jd, "
-              "calcnt=%jd, errcnt=%jd, stbcnt=%jd"
+              ", tolerance=%jd, time={tv_sec=%lld, tv_usec=%llu}, tick=%jd"
+              ", ppsfreq=%jd, jitter=%jd, shift=%d, stabil=%jd, jitcnt=%jd"
+              "calcnt=%jd, errcnt=%jd, stbcnt=%jd"
 #ifdef HAVE_STRUCT_TIMEX_TAI
               ", tai=%d"
 #endif
@@ -71,8 +71,8 @@ main(void)
               (intmax_t) tx->constant,
               (intmax_t) tx->precision,
               (intmax_t) tx->tolerance,
-              (intmax_t) tx->time.tv_sec,
-              (intmax_t) tx->time.tv_usec,
+              (long long) tx->time.tv_sec,
+              zero_extend_signed_to_ull(tx->time.tv_usec),
               (intmax_t) tx->tick,
               (intmax_t) tx->ppsfreq,
               (intmax_t) tx->jitter,
index dacef441f71236eee0a83f3320450eb901d0ecd4..a2428bd17547821993b0e363da9db1479a393e8a 100644 (file)
@@ -64,9 +64,10 @@ main(void)
 
        if (syscall(__NR_clock_nanosleep, CLOCK_REALTIME, 0, &req.ts, NULL))
                perror_msg_and_skip("clock_nanosleep CLOCK_REALTIME");
-       printf("clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec=%jd, tv_nsec=%jd}, "
-              "NULL) = 0\n",
-              (intmax_t) req.ts.tv_sec, (intmax_t) req.ts.tv_nsec);
+       printf("clock_nanosleep(CLOCK_REALTIME, 0"
+              ", {tv_sec=%lld, tv_nsec=%llu}, NULL) = 0\n",
+              (long long) req.ts.tv_sec,
+              zero_extend_signed_to_ull(req.ts.tv_nsec));
 
        assert(syscall(__NR_clock_nanosleep, CLOCK_REALTIME, 0,
                       NULL, &rem.ts) == -1);
@@ -75,16 +76,18 @@ main(void)
 
        assert(syscall(__NR_clock_nanosleep, CLOCK_REALTIME, 0,
                       &req.ts, &rem.ts) == 0);
-       printf("clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec=%jd, tv_nsec=%jd}, "
-              "%p) = 0\n",
-              (intmax_t) req.ts.tv_sec, (intmax_t) req.ts.tv_nsec, &rem.ts);
+       printf("clock_nanosleep(CLOCK_REALTIME, 0"
+              ", {tv_sec=%lld, tv_nsec=%llu}, %p) = 0\n",
+              (long long) req.ts.tv_sec,
+              zero_extend_signed_to_ull(req.ts.tv_nsec), &rem.ts);
 
        req.ts.tv_nsec = 999999999 + 1;
        assert(syscall(__NR_clock_nanosleep, CLOCK_MONOTONIC, 0,
                       &req.ts, &rem.ts) == -1);
        printf("clock_nanosleep(CLOCK_MONOTONIC, 0"
-              ", {tv_sec=%jd, tv_nsec=%jd}, %p) = -1 EINVAL (%m)\n",
-              (intmax_t) req.ts.tv_sec, (intmax_t) req.ts.tv_nsec, &rem.ts);
+              ", {tv_sec=%lld, tv_nsec=%llu}, %p) = -1 EINVAL (%m)\n",
+              (long long) req.ts.tv_sec,
+              zero_extend_signed_to_ull(req.ts.tv_nsec), &rem.ts);
 
        assert(sigaction(SIGALRM, &act, NULL) == 0);
        assert(sigprocmask(SIG_SETMASK, &set, NULL) == 0);
@@ -95,26 +98,30 @@ main(void)
        --req.ts.tv_nsec;
        assert(syscall(__NR_clock_nanosleep, CLOCK_REALTIME, 0,
                       &req.ts, &rem.ts) == -1);
-       printf("clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec=%jd, tv_nsec=%jd}, "
-              "{tv_sec=%jd, tv_nsec=%jd})"
+       printf("clock_nanosleep(CLOCK_REALTIME, 0"
+              ", {tv_sec=%lld, tv_nsec=%llu}, {tv_sec=%lld, tv_nsec=%llu})"
               " = ? ERESTART_RESTARTBLOCK (Interrupted by signal)\n",
-              (intmax_t) req.ts.tv_sec, (intmax_t) req.ts.tv_nsec,
-              (intmax_t) rem.ts.tv_sec, (intmax_t) rem.ts.tv_nsec);
+              (long long) req.ts.tv_sec,
+              zero_extend_signed_to_ull(req.ts.tv_nsec),
+              (long long) rem.ts.tv_sec,
+              zero_extend_signed_to_ull(rem.ts.tv_nsec));
        puts("--- SIGALRM {si_signo=SIGALRM, si_code=SI_KERNEL} ---");
 
        assert(syscall(__NR_clock_gettime, CLOCK_REALTIME, &req.ts) == 0);
-       printf("clock_gettime(CLOCK_REALTIME, {tv_sec=%jd, tv_nsec=%jd}) = 0\n",
-              (intmax_t) req.ts.tv_sec, (intmax_t) req.ts.tv_nsec);
+       printf("clock_gettime(CLOCK_REALTIME, {tv_sec=%lld, tv_nsec=%llu}) = 0\n",
+              (long long) req.ts.tv_sec,
+              zero_extend_signed_to_ull(req.ts.tv_nsec));
 
        ++req.ts.tv_sec;
        rem.ts.tv_sec = 0xc0de4;
        rem.ts.tv_nsec = 0xc0de5;
        assert(syscall(__NR_clock_nanosleep, CLOCK_REALTIME, TIMER_ABSTIME,
                       &req.ts, &rem.ts) == -1);
-       printf("clock_nanosleep(CLOCK_REALTIME, TIMER_ABSTIME, {tv_sec=%jd, "
-              "tv_nsec=%jd}, %p)"
+       printf("clock_nanosleep(CLOCK_REALTIME, TIMER_ABSTIME"
+              ", {tv_sec=%lld, tv_nsec=%llu}, %p)"
               " = ? ERESTARTNOHAND (To be restarted if no handler)\n",
-              (intmax_t) req.ts.tv_sec, (intmax_t) req.ts.tv_nsec, &rem.ts);
+              (long long) req.ts.tv_sec,
+              zero_extend_signed_to_ull(req.ts.tv_nsec), &rem.ts);
        puts("--- SIGALRM {si_signo=SIGALRM, si_code=SI_KERNEL} ---");
 
        puts("+++ exited with 0 +++");
index 3ef5695fb9b089546c24c596b8d3cc7ec581992a..220a81cb9006e7aba1f8d0f1dd08a8055fcba721 100644 (file)
@@ -48,26 +48,27 @@ main(void)
 
        if (syscall(__NR_clock_getres, CLOCK_REALTIME, &t.ts))
                perror_msg_and_skip("clock_getres CLOCK_REALTIME");
-       printf("clock_getres(CLOCK_REALTIME, {tv_sec=%jd, tv_nsec=%jd}) = 0\n",
-              (intmax_t) t.ts.tv_sec,
-              (intmax_t) t.ts.tv_nsec);
+       printf("clock_getres(CLOCK_REALTIME, {tv_sec=%lld, tv_nsec=%llu})"
+              " = 0\n",
+              (long long) t.ts.tv_sec,
+              zero_extend_signed_to_ull(t.ts.tv_nsec));
 
        if (syscall(__NR_clock_gettime, CLOCK_PROCESS_CPUTIME_ID, &t.ts))
                perror_msg_and_skip("clock_gettime CLOCK_PROCESS_CPUTIME_ID");
-       printf("clock_gettime(CLOCK_PROCESS_CPUTIME_ID"
-              "{tv_sec=%jd, tv_nsec=%jd}) = 0\n",
-              (intmax_t) t.ts.tv_sec,
-              (intmax_t) t.ts.tv_nsec);
+       printf("clock_gettime(CLOCK_PROCESS_CPUTIME_ID"
+              ", {tv_sec=%lld, tv_nsec=%llu}) = 0\n",
+              (long long) t.ts.tv_sec,
+              zero_extend_signed_to_ull(t.ts.tv_nsec));
 
        t.ts.tv_sec = 0xdeface1;
        t.ts.tv_nsec = 0xdeface2;
        if (!syscall(__NR_clock_settime, CLOCK_THREAD_CPUTIME_ID, &t.ts))
                error_msg_and_skip("clock_settime CLOCK_THREAD_CPUTIME_ID:"
                                   " EINVAL expected");
-       printf("clock_settime(CLOCK_THREAD_CPUTIME_ID, {tv_sec=%jd, "
-              "tv_nsec=%jd}) = -1 EINVAL (%m)\n",
-              (intmax_t) t.ts.tv_sec,
-              (intmax_t) t.ts.tv_nsec);
+       printf("clock_settime(CLOCK_THREAD_CPUTIME_ID"
+              ", {tv_sec=%lld, tv_nsec=%llu}) = -1 EINVAL (%m)\n",
+              (long long) t.ts.tv_sec,
+              zero_extend_signed_to_ull(t.ts.tv_nsec));
 
        puts("+++ exited with 0 +++");
        return 0;
index 81819c8c5b759b3d6daa589f7844e437bc7de176..0f986a51ad5614b134d16c6a1f7bd47b47345596 100644 (file)
@@ -189,37 +189,37 @@ main(int argc, char *argv[])
        /* uaddr is NULL */
        CHECK_FUTEX(NULL, FUTEX_WAIT, VAL, tmout, uaddr2, VAL3,
                (rc == -1) && (errno == EFAULT));
-       printf("futex(NULL, FUTEX_WAIT, %u, {tv_sec=%jd, tv_nsec=%jd}) = %s\n",
-               VAL_PR, (intmax_t) tmout->tv_sec, (intmax_t) tmout->tv_nsec,
-               sprintrc(rc));
+       printf("futex(NULL, FUTEX_WAIT, %u, {tv_sec=%lld, tv_nsec=%llu}) = %s\n",
+              VAL_PR, (long long) tmout->tv_sec,
+              zero_extend_signed_to_ull(tmout->tv_nsec), sprintrc(rc));
 
        /* uaddr is faulty */
        CHECK_FUTEX(uaddr + 1, FUTEX_WAIT, VAL, tmout, uaddr2, VAL3,
                (rc == -1) && (errno == EFAULT));
-       printf("futex(%p, FUTEX_WAIT, %u, {tv_sec=%jd, tv_nsec=%jd}) = %s\n",
-               uaddr + 1, VAL_PR, (intmax_t) tmout->tv_sec,
-               (intmax_t) tmout->tv_nsec, sprintrc(rc));
+       printf("futex(%p, FUTEX_WAIT, %u, {tv_sec=%lld, tv_nsec=%llu}) = %s\n",
+              uaddr + 1, VAL_PR, (long long) tmout->tv_sec,
+              zero_extend_signed_to_ull(tmout->tv_nsec), sprintrc(rc));
 
        /* timeout is faulty */
        CHECK_FUTEX(uaddr, FUTEX_WAIT, VAL, tmout + 1, uaddr2, VAL3,
                (rc == -1) && (errno == EFAULT));
        printf("futex(%p, FUTEX_WAIT, %u, %p) = %s\n",
-               uaddr, 0xfacefeed, tmout + 1, sprintrc(rc));
+              uaddr, 0xfacefeed, tmout + 1, sprintrc(rc));
 
        /* uaddr is not as provided; uaddr2 is faulty but ignored */
        CHECK_FUTEX(uaddr, FUTEX_WAIT, VAL, tmout, uaddr2 + 1, VAL3,
                (rc == -1) && (errno == EAGAIN));
-       printf("futex(%p, FUTEX_WAIT, %u, {tv_sec=%jd, tv_nsec=%jd}) = %s\n",
-               uaddr, VAL_PR, (intmax_t) tmout->tv_sec,
-               (intmax_t) tmout->tv_nsec, sprintrc(rc));
+       printf("futex(%p, FUTEX_WAIT, %u, {tv_sec=%lld, tv_nsec=%llu}) = %s\n",
+              uaddr, VAL_PR, (long long) tmout->tv_sec,
+              zero_extend_signed_to_ull(tmout->tv_nsec), sprintrc(rc));
 
        /* uaddr is not as provided; uaddr2 is faulty but ignored */
        CHECK_FUTEX_ENOSYS(uaddr, FUTEX_PRIVATE_FLAG | FUTEX_WAIT, VAL, tmout,
                uaddr2 + 1, VAL3, (rc == -1) && (errno == EAGAIN));
-       printf("futex(%p, FUTEX_WAIT_PRIVATE, %u, {tv_sec=%jd, tv_nsec=%jd}) = "
-               "%s\n",
-               uaddr, VAL_PR, (intmax_t) tmout->tv_sec,
-               (intmax_t) tmout->tv_nsec, sprintrc(rc));
+       printf("futex(%p, FUTEX_WAIT_PRIVATE, %u, {tv_sec=%lld, tv_nsec=%llu})"
+              " = %s\n",
+              uaddr, VAL_PR, (long long) tmout->tv_sec,
+              zero_extend_signed_to_ull(tmout->tv_nsec), sprintrc(rc));
 
        /* Next 2 tests are with CLOCKRT bit set */
 
@@ -227,18 +227,18 @@ main(int argc, char *argv[])
        CHECK_FUTEX_ENOSYS(uaddr,
                FUTEX_CLOCK_REALTIME | FUTEX_WAIT,
                VAL, tmout, uaddr2, VAL3, (rc == -1) && (errno == EAGAIN));
-       printf("futex(%p, FUTEX_WAIT|FUTEX_CLOCK_REALTIME, %u"
-               "{tv_sec=%jd, tv_nsec=%jd}) = %s\n", uaddr, VAL_PR,
-               (intmax_t) tmout->tv_sec, (intmax_t) tmout->tv_nsec,
-               sprintrc(rc));
+       printf("futex(%p, FUTEX_WAIT|FUTEX_CLOCK_REALTIME, %u"
+              ", {tv_sec=%lld, tv_nsec=%llu}) = %s\n",
+              uaddr, VAL_PR, (long long) tmout->tv_sec,
+              zero_extend_signed_to_ull(tmout->tv_nsec), sprintrc(rc));
 
        CHECK_FUTEX_ENOSYS(uaddr,
                FUTEX_CLOCK_REALTIME | FUTEX_PRIVATE_FLAG | FUTEX_WAIT ,
                VAL, tmout, uaddr2, 0, (rc == -1) && (errno == EAGAIN));
-       printf("futex(%p, FUTEX_WAIT_PRIVATE|FUTEX_CLOCK_REALTIME, %u"
-               "{tv_sec=%jd, tv_nsec=%jd}) = %s\n", uaddr, VAL_PR,
-               (intmax_t) tmout->tv_sec, (intmax_t) tmout->tv_nsec,
-               sprintrc(rc));
+       printf("futex(%p, FUTEX_WAIT_PRIVATE|FUTEX_CLOCK_REALTIME, %u"
+              ", {tv_sec=%lld, tv_nsec=%llu}) = %s\n",
+              uaddr, VAL_PR, (long long) tmout->tv_sec,
+              zero_extend_signed_to_ull(tmout->tv_nsec), sprintrc(rc));
 
        /* FUTEX_WAIT_BITSET - FUTEX_WAIT which provides additional bitmask
         *                     which should be matched at least in one bit with
@@ -254,50 +254,54 @@ main(int argc, char *argv[])
 
        CHECK_FUTEX_ENOSYS(uaddr, FUTEX_WAIT_BITSET, VAL, tmout, uaddr2 + 1,
                VAL3, (rc == -1) && (errno == EAGAIN));
-       printf("futex(%p, FUTEX_WAIT_BITSET, %u, {tv_sec=%jd, tv_nsec=%jd}, "
-               "%#x) = %s\n",
-               uaddr, VAL_PR, (intmax_t) tmout->tv_sec,
-               (intmax_t) tmout->tv_nsec, VAL3_PR, sprintrc(rc));
+       printf("futex(%p, FUTEX_WAIT_BITSET, %u, {tv_sec=%lld, tv_nsec=%llu}"
+              ", %#x) = %s\n",
+              uaddr, VAL_PR, (long long) tmout->tv_sec,
+              zero_extend_signed_to_ull(tmout->tv_nsec), VAL3_PR,
+              sprintrc(rc));
 
        /* val3 of 0 is invalid  */
        CHECK_FUTEX_ENOSYS(uaddr, FUTEX_WAIT_BITSET, VAL, tmout, uaddr2 + 1, 0,
                (rc == -1) && (errno == EINVAL));
-       printf("futex(%p, FUTEX_WAIT_BITSET, %u, {tv_sec=%jd, tv_nsec=%jd}, "
-               "%#x) = %s\n",
-               uaddr, VAL_PR, (intmax_t) tmout->tv_sec,
-               (intmax_t) tmout->tv_nsec, 0, sprintrc(rc));
+       printf("futex(%p, FUTEX_WAIT_BITSET, %u, {tv_sec=%lld, tv_nsec=%llu}"
+              ", %#x) = %s\n",
+              uaddr, VAL_PR, (long long) tmout->tv_sec,
+              zero_extend_signed_to_ull(tmout->tv_nsec), 0, sprintrc(rc));
 
        CHECK_FUTEX_ENOSYS(uaddr, FUTEX_PRIVATE_FLAG | FUTEX_WAIT_BITSET, VAL,
                tmout, uaddr2 + 1, VAL3, (rc == -1) && (errno == EAGAIN));
-       printf("futex(%p, FUTEX_WAIT_BITSET_PRIVATE, %u, "
-               "{tv_sec=%jd, tv_nsec=%jd}, %#x) = %s\n",
-               uaddr, VAL_PR, (intmax_t) tmout->tv_sec,
-               (intmax_t) tmout->tv_nsec, VAL3_PR, sprintrc(rc));
+       printf("futex(%p, FUTEX_WAIT_BITSET_PRIVATE, %u"
+              ", {tv_sec=%lld, tv_nsec=%llu}, %#x) = %s\n",
+              uaddr, VAL_PR, (long long) tmout->tv_sec,
+              zero_extend_signed_to_ull(tmout->tv_nsec), VAL3_PR,
+              sprintrc(rc));
 
        /* Next 3 tests are with CLOCKRT bit set */
 
        CHECK_FUTEX_ENOSYS(uaddr, FUTEX_CLOCK_REALTIME | FUTEX_WAIT_BITSET, VAL,
                tmout, uaddr2 + 1, VAL3, (rc == -1) && (errno == EAGAIN));
-       printf("futex(%p, FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME, %u, "
-               "{tv_sec=%jd, tv_nsec=%jd}, %#x) = %s\n", uaddr, VAL_PR,
-               (intmax_t) tmout->tv_sec, (intmax_t) tmout->tv_nsec, VAL3_PR,
-               sprintrc(rc));
+       printf("futex(%p, FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME, %u"
+              ", {tv_sec=%lld, tv_nsec=%llu}, %#x) = %s\n",
+              uaddr, VAL_PR, (long long) tmout->tv_sec,
+              zero_extend_signed_to_ull(tmout->tv_nsec), VAL3_PR,
+              sprintrc(rc));
 
        /* val3 of 0 is invalid  */
        CHECK_FUTEX_ENOSYS(uaddr, FUTEX_CLOCK_REALTIME | FUTEX_WAIT_BITSET, VAL,
                tmout, uaddr2 + 1, 0, (rc == -1) && (errno == EINVAL));
-       printf("futex(%p, FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME, %u"
-               "{tv_sec=%jd, tv_nsec=%jd}, %#x) = %s\n", uaddr, VAL_PR,
-               (intmax_t) tmout->tv_sec, (intmax_t) tmout->tv_nsec, 0,
-               sprintrc(rc));
+       printf("futex(%p, FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME, %u"
+              ", {tv_sec=%lld, tv_nsec=%llu}, %#x) = %s\n",
+              uaddr, VAL_PR, (long long) tmout->tv_sec,
+              zero_extend_signed_to_ull(tmout->tv_nsec), 0, sprintrc(rc));
 
        CHECK_FUTEX_ENOSYS(uaddr, FUTEX_CLOCK_REALTIME | FUTEX_PRIVATE_FLAG |
                FUTEX_WAIT_BITSET, VAL, tmout, uaddr2 + 1, VAL3,
                (rc == -1) && (errno == EAGAIN));
-       printf("futex(%p, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, %u, "
-               "{tv_sec=%jd, tv_nsec=%jd}, %#x) = %s\n", uaddr, VAL_PR,
-               (intmax_t) tmout->tv_sec, (intmax_t) tmout->tv_nsec, VAL3_PR,
-               sprintrc(rc));
+       printf("futex(%p, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, %u"
+              ", {tv_sec=%lld, tv_nsec=%llu}, %#x) = %s\n",
+              uaddr, VAL_PR, (long long) tmout->tv_sec,
+              zero_extend_signed_to_ull(tmout->tv_nsec), VAL3_PR,
+              sprintrc(rc));
 
        /* FUTEX_WAKE - wake val processes waiting for uaddr
         * Possible flags: PRIVATE
@@ -522,9 +526,9 @@ main(int argc, char *argv[])
                        CHECK_FUTEX_ENOSYS(uaddr,
                                j ? FUTEX_WAKE_OP_PRIVATE : FUTEX_WAKE_OP,
                                VAL, i, uaddr2, wake_ops[i].val, (rc == 0));
-                       printf("futex(%p, FUTEX_WAKE_OP%s, %u, %u, %p, %s) = "
-                               "%s\n", uaddr, j ? "_PRIVATE" : "", VAL_PR, i,
-                               uaddr2, wake_ops[i].str, sprintrc(rc));
+                       printf("futex(%p, FUTEX_WAKE_OP%s, %u, %u, %p, %s)"
+                              " = %s\n", uaddr, j ? "_PRIVATE" : "", VAL_PR,
+                              i, uaddr2, wake_ops[i].str, sprintrc(rc));
                }
        }
 
@@ -552,16 +556,16 @@ main(int argc, char *argv[])
 
        CHECK_FUTEX_ENOSYS(uaddr + 1, FUTEX_LOCK_PI, VAL, tmout, uaddr2 + 1,
                VAL3, (rc == -1) && (errno == EFAULT));
-       printf("futex(%p, FUTEX_LOCK_PI, {tv_sec=%jd, tv_nsec=%jd}) = %s\n",
-               uaddr + 1, (intmax_t) tmout->tv_sec, (intmax_t) tmout->tv_nsec,
-               sprintrc(rc));
+       printf("futex(%p, FUTEX_LOCK_PI, {tv_sec=%lld, tv_nsec=%llu}) = %s\n",
+              uaddr + 1, (long long) tmout->tv_sec,
+              zero_extend_signed_to_ull(tmout->tv_nsec), sprintrc(rc));
 
        CHECK_FUTEX_ENOSYS(uaddr + 1, FUTEX_PRIVATE_FLAG | FUTEX_LOCK_PI, VAL,
                tmout, uaddr2 + 1, VAL3, (rc == -1) && (errno == EFAULT));
-       printf("futex(%p, FUTEX_LOCK_PI_PRIVATE, {tv_sec=%jd, tv_nsec=%jd}) = "
-               "%s\n",
-               uaddr + 1, (intmax_t) tmout->tv_sec, (intmax_t) tmout->tv_nsec,
-               sprintrc(rc));
+       printf("futex(%p, FUTEX_LOCK_PI_PRIVATE, {tv_sec=%lld, tv_nsec=%llu})"
+              " = %s\n",
+              uaddr + 1, (long long) tmout->tv_sec,
+              zero_extend_signed_to_ull(tmout->tv_nsec), sprintrc(rc));
 
        /* NULL is passed by invalid_op() in cases valid timeout address is
         * needed */
@@ -633,32 +637,32 @@ main(int argc, char *argv[])
 
        CHECK_FUTEX_ENOSYS(uaddr, FUTEX_WAIT_REQUEUE_PI, VAL, tmout, uaddr2,
                VAL3, (rc == -1) && (errno == EAGAIN));
-       printf("futex(%p, FUTEX_WAIT_REQUEUE_PI, %u"
-               "{tv_sec=%jd, tv_nsec=%jd}, %p) = %s\n",
-               uaddr, VAL_PR, (intmax_t) tmout->tv_sec,
-               (intmax_t) tmout->tv_nsec, uaddr2, sprintrc(rc));
+       printf("futex(%p, FUTEX_WAIT_REQUEUE_PI, %u"
+              ", {tv_sec=%lld, tv_nsec=%llu}, %p) = %s\n",
+              uaddr, VAL_PR, (long long) tmout->tv_sec,
+              zero_extend_signed_to_ull(tmout->tv_nsec), uaddr2, sprintrc(rc));
 
        CHECK_FUTEX_ENOSYS(uaddr, FUTEX_PRIVATE_FLAG | FUTEX_WAIT_REQUEUE_PI,
                VAL, tmout, uaddr2, VAL3, (rc == -1) && (errno == EAGAIN));
-       printf("futex(%p, FUTEX_WAIT_REQUEUE_PI_PRIVATE, %u"
-               "{tv_sec=%jd, tv_nsec=%jd}, %p) "
-               "= %s\n", uaddr, VAL_PR, (intmax_t) tmout->tv_sec,
-               (intmax_t) tmout->tv_nsec, uaddr2, sprintrc(rc));
+       printf("futex(%p, FUTEX_WAIT_REQUEUE_PI_PRIVATE, %u"
+              ", {tv_sec=%lld, tv_nsec=%llu}, %p) = %s\n",
+              uaddr, VAL_PR, (long long) tmout->tv_sec,
+              zero_extend_signed_to_ull(tmout->tv_nsec), uaddr2, sprintrc(rc));
 
        CHECK_FUTEX_ENOSYS(uaddr, FUTEX_CLOCK_REALTIME | FUTEX_WAIT_REQUEUE_PI,
                VAL, tmout, uaddr2, VAL3, (rc == -1) && (errno == EAGAIN));
-       printf("futex(%p, FUTEX_WAIT_REQUEUE_PI|FUTEX_CLOCK_REALTIME, %u"
-               "{tv_sec=%jd, tv_nsec=%jd}, %p) = %s\n", uaddr, VAL_PR,
-               (intmax_t) tmout->tv_sec, (intmax_t) tmout->tv_nsec, uaddr2,
-               sprintrc(rc));
+       printf("futex(%p, FUTEX_WAIT_REQUEUE_PI|FUTEX_CLOCK_REALTIME, %u"
+              ", {tv_sec=%lld, tv_nsec=%llu}, %p) = %s\n",
+              uaddr, VAL_PR, (long long) tmout->tv_sec,
+              zero_extend_signed_to_ull(tmout->tv_nsec), uaddr2, sprintrc(rc));
 
        CHECK_FUTEX_ENOSYS(uaddr, FUTEX_CLOCK_REALTIME | FUTEX_PRIVATE_FLAG |
                FUTEX_WAIT_REQUEUE_PI, VAL, tmout, uaddr2, VAL3,
                (rc == -1) && (errno == EAGAIN));
-       printf("futex(%p, FUTEX_WAIT_REQUEUE_PI_PRIVATE|FUTEX_CLOCK_REALTIME"
-               "%u, {tv_sec=%jd, tv_nsec=%jd}, %p) = %s\n", uaddr, VAL_PR,
-               (intmax_t) tmout->tv_sec, (intmax_t) tmout->tv_nsec, uaddr2,
-               sprintrc(rc));
+       printf("futex(%p, FUTEX_WAIT_REQUEUE_PI_PRIVATE|FUTEX_CLOCK_REALTIME"
+              ", %u, {tv_sec=%lld, tv_nsec=%llu}, %p) = %s\n",
+              uaddr, VAL_PR, (long long) tmout->tv_sec,
+              zero_extend_signed_to_ull(tmout->tv_nsec), uaddr2, sprintrc(rc));
 
        /* FUTEX_CMP_REQUEUE_PI - version of FUTEX_CMP_REQUEUE which re-queues
         *                        on PI-aware futex.
index ae83988eca09e721e38fab392ce32f4690543686..c6ec2a083d3c38b9fec86794fbe51f3fb418895d 100644 (file)
@@ -40,8 +40,9 @@
 static void
 print_tv(const struct timeval *tv)
 {
-       printf("{tv_sec=%ju, tv_usec=%ju}",
-              (uintmax_t) tv->tv_sec, (uintmax_t) tv->tv_usec);
+       printf("{tv_sec=%lld, tv_usec=%llu}",
+              (long long) tv->tv_sec,
+              zero_extend_signed_to_ull(tv->tv_usec));
 }
 
 static const char *errstr;
index 002420f0f6d9e46eabf679043f54e7402852cadf..ac9b3332cd2f22c63fb331b6a4161fbab9f79ca2 100644 (file)
@@ -45,17 +45,17 @@ invoke_print(int who, const char *who_str, struct rusage *usage)
 {
        int rc = syscall(__NR_getrusage, who, usage);
        int saved_errno = errno;
-       printf("getrusage(%s, {ru_utime={tv_sec=%jd, tv_usec=%jd}"
-              ", ru_stime={tv_sec=%jd, tv_usec=%jd}, ru_maxrss=%lu"
+       printf("getrusage(%s, {ru_utime={tv_sec=%lld, tv_usec=%llu}"
+              ", ru_stime={tv_sec=%lld, tv_usec=%llu}, 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}) = %s\n",
               who_str,
-              (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,
+              (long long) usage->ru_utime.tv_sec,
+              zero_extend_signed_to_ull(usage->ru_utime.tv_usec),
+              (long long) usage->ru_stime.tv_sec,
+              zero_extend_signed_to_ull(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 ab1d2ddef50d9d582bea2463dd345072c0213bf1..66c56a6a66e13ad966a6aea0db6e1f69e93dff0e 100644 (file)
@@ -144,9 +144,9 @@ do_send(int fd, char *msg, unsigned int msg_size, struct timespec *tmout,
                if (cropped)
                        printf("...");
                errno = saved_errno;
-               printf(", %u, 42, {tv_sec=%jd, tv_nsec=%jd}) = %s\n", msg_size,
-                      (intmax_t) tmout->tv_sec, (intmax_t) tmout->tv_nsec,
-                      sprintrc(rc));
+               printf(", %u, 42, {tv_sec=%lld, tv_nsec=%llu}) = %s\n", msg_size,
+                      (long long) tmout->tv_sec,
+                      zero_extend_signed_to_ull(tmout->tv_nsec), sprintrc(rc));
                errno = saved_errno;
 
                if (rc == -1) {
@@ -182,9 +182,9 @@ do_recv(int fd, char *msg, unsigned int msg_size, struct timespec *tmout,
                        printf("%p", msg);
                }
                errno = saved_errno;
-               printf(", %u, [42], {tv_sec=%jd, tv_nsec=%jd}) = %s\n", MSG_SIZE,
-                      (intmax_t) tmout->tv_sec,
-                      (intmax_t) tmout->tv_nsec, sprintrc(rc));
+               printf(", %u, [42], {tv_sec=%lld, tv_nsec=%llu}) = %s\n", MSG_SIZE,
+                      (long long) tmout->tv_sec,
+                      zero_extend_signed_to_ull(tmout->tv_nsec), sprintrc(rc));
                errno = saved_errno;
 
                if (rc == -1) {
@@ -275,8 +275,8 @@ main(void)
        /* Valid attributes structure */
        rc = syscall(__NR_mq_open, msg, O_CREAT | bogus_oflags, bogus_mode,
                     bogus_attrs);
-       printf("mq_open(%p, O_ACCMODE|O_CREAT, %#o, {mq_flags=%#llx"
-              "mq_maxmsg=%lld, mq_msgsize=%lld, mq_curmsgs=%lld}) = %s\n",
+       printf("mq_open(%p, O_ACCMODE|O_CREAT, %#o, {mq_flags=%#llx"
+              "mq_maxmsg=%lld, mq_msgsize=%lld, mq_curmsgs=%lld}) = %s\n",
               msg, (unsigned short) bogus_mode,
               (unsigned long long) (kernel_ulong_t) bogus_attrs[0],
               (long long) bogus_attrs[1],
@@ -301,12 +301,12 @@ main(void)
        /* Partially invalid message (memory only partially available) */
        rc = syscall(__NR_mq_timedsend, bogus_fd, msg + MSG_SIZE - MSG_CUT,
                     MSG_SIZE, bogus_prio, bogus_tmout);
-       printf("mq_timedsend(%d, %p, %llu, %u, {tv_sec=%jd, tv_nsec=%jd}) = "
-              "%s\n",
+       printf("mq_timedsend(%d, %p, %llu, %u, {tv_sec=%lld, tv_nsec=%llu})"
+              " = %s\n",
               (int) bogus_fd, msg + MSG_SIZE - MSG_CUT,
               (unsigned long long) MSG_SIZE, (unsigned) bogus_prio,
-              (intmax_t) bogus_tmout->tv_sec, (intmax_t) bogus_tmout->tv_nsec,
-              sprintrc(rc));
+              (long long) bogus_tmout->tv_sec,
+              zero_extend_signed_to_ull(bogus_tmout->tv_nsec), sprintrc(rc));
 
        /* Fully valid message, uncut */
        rc = syscall(__NR_mq_timedsend, bogus_fd, msg + MSG_SIZE - MSG_CUT,
@@ -314,10 +314,10 @@ main(void)
        errstr = sprintrc(rc);
        printf("mq_timedsend(%d, ", (int) bogus_fd);
        printstr(MSG_START + MSG_SIZE - MSG_CUT, MSG_CUT);
-       printf(", %llu, %u, {tv_sec=%jd, tv_nsec=%jd}) = %s\n",
+       printf(", %llu, %u, {tv_sec=%lld, tv_nsec=%llu}) = %s\n",
               (unsigned long long) MSG_CUT, (unsigned) bogus_prio,
-              (intmax_t) bogus_tmout->tv_sec, (intmax_t) bogus_tmout->tv_nsec,
-              errstr);
+              (long long) bogus_tmout->tv_sec,
+              zero_extend_signed_to_ull(bogus_tmout->tv_nsec), errstr);
 
        /* Partially invalid message, cut at maxstrlen */
        rc = syscall(__NR_mq_timedsend, bogus_fd, msg + MSG_CUT, MSG_SIZE,
@@ -325,10 +325,10 @@ main(void)
        errstr = sprintrc(rc);
        printf("mq_timedsend(%d, ", (int) bogus_fd);
        printstr(MSG_START + MSG_CUT, MSG_MAX_UNCUT);
-       printf("..., %llu, %u, {tv_sec=%jd, tv_nsec=%jd}) = %s\n",
+       printf("..., %llu, %u, {tv_sec=%lld, tv_nsec=%llu}) = %s\n",
               (unsigned long long) MSG_SIZE, (unsigned) bogus_prio,
-              (intmax_t) bogus_tmout->tv_sec, (intmax_t) bogus_tmout->tv_nsec,
-              errstr);
+              (long long) bogus_tmout->tv_sec,
+              zero_extend_signed_to_ull(bogus_tmout->tv_nsec), errstr);
 
 
        /* mq_timedreceive */
@@ -348,11 +348,11 @@ main(void)
        /* Invalid fd, valid msg pointer */
        rc = syscall(__NR_mq_timedreceive, bogus_fd, msg, bogus_size,
                     bogus_prio_ptr, bogus_tmout);
-       printf("mq_timedreceive(%d, %p, %llu, %p, {tv_sec=%jd, tv_nsec=%jd}) = "
-              "%s\n",
+       printf("mq_timedreceive(%d, %p, %llu, %p, {tv_sec=%lld, tv_nsec=%llu}) "
+              "%s\n",
               (int) bogus_fd, msg, (unsigned long long) bogus_size,
-              bogus_prio_ptr, (intmax_t) bogus_tmout->tv_sec,
-              (intmax_t) bogus_tmout->tv_nsec, sprintrc(rc));
+              bogus_prio_ptr, (long long) bogus_tmout->tv_sec,
+              zero_extend_signed_to_ull(bogus_tmout->tv_nsec), sprintrc(rc));
 
 
        /* mq_notify */
@@ -378,8 +378,8 @@ main(void)
        /* SIGEV_NONE */
        bogus_sev->sigev_notify = SIGEV_NONE;
        rc = syscall(__NR_mq_notify, bogus_fd, bogus_sev);
-       printf("mq_notify(%d, {sigev_value={sival_int=%d, sival_ptr=%#lx}"
-              "sigev_signo=%u, sigev_notify=SIGEV_NONE}) = %s\n",
+       printf("mq_notify(%d, {sigev_value={sival_int=%d, sival_ptr=%#lx}"
+              "sigev_signo=%u, sigev_notify=SIGEV_NONE}) = %s\n",
               (int) bogus_fd, bogus_sev->sigev_value.sival_int,
               bogus_sev->sigev_value.sival_ptr,
               bogus_sev->sigev_signo, sprintrc(rc));
@@ -388,8 +388,8 @@ main(void)
        bogus_sev->sigev_notify = SIGEV_SIGNAL;
        bogus_sev->sigev_signo = SIGALRM;
        rc = syscall(__NR_mq_notify, bogus_fd, bogus_sev);
-       printf("mq_notify(%d, {sigev_value={sival_int=%d, sival_ptr=%#lx}"
-              "sigev_signo=SIGALRM, sigev_notify=SIGEV_SIGNAL}) = %s\n",
+       printf("mq_notify(%d, {sigev_value={sival_int=%d, sival_ptr=%#lx}"
+              "sigev_signo=SIGALRM, sigev_notify=SIGEV_SIGNAL}) = %s\n",
               (int) bogus_fd, bogus_sev->sigev_value.sival_int,
               bogus_sev->sigev_value.sival_ptr, sprintrc(rc));
 
@@ -400,10 +400,10 @@ main(void)
        bogus_sev->sigev_un.sigev_thread.attribute =
                (unsigned long) 0xcafef00dfacefeedULL;
        rc = syscall(__NR_mq_notify, bogus_fd, bogus_sev);
-       printf("mq_notify(%d, {sigev_value={sival_int=%d, sival_ptr=%#lx}"
-              "sigev_signo=SIGALRM, sigev_notify=SIGEV_THREAD, "
-              "sigev_notify_function=%#lx, sigev_notify_attributes=%#lx}) = "
-              "%s\n",
+       printf("mq_notify(%d, {sigev_value={sival_int=%d, sival_ptr=%#lx}"
+              ", sigev_signo=SIGALRM, sigev_notify=SIGEV_THREAD"
+              ", sigev_notify_function=%#lx, sigev_notify_attributes=%#lx})"
+              " = %s\n",
               (int) bogus_fd, bogus_sev->sigev_value.sival_int,
               bogus_sev->sigev_value.sival_ptr,
               bogus_sev->sigev_un.sigev_thread.function,
@@ -449,8 +449,8 @@ main(void)
        fill_memory_ex(bogus_attrs, sizeof(*bogus_attrs) * NUM_ATTRS,
                       0xbb, 0x70);
        printf("mq_open(\"%s\", O_RDWR|O_CREAT|O_NONBLOCK, 0700"
-              ", {mq_flags=%#llx, mq_maxmsg=2, mq_msgsize=%u"
-              "mq_curmsgs=%lld}) = %s\n",
+              ", {mq_flags=%#llx, mq_maxmsg=2, mq_msgsize=%u"
+              "mq_curmsgs=%lld}) = %s\n",
               mq_name, (unsigned long long) (kernel_ulong_t) bogus_attrs[0],
               MSG_SIZE, (long long) bogus_attrs[3], errstr);
 
index 647f2d45a44a0aeb1073fe4ef1df8d03e6e2e477..e0f5cce91291b43ae29605a20c613c2fc4830b6a 100644 (file)
@@ -59,21 +59,24 @@ main(void)
 
        if (nanosleep(&req.ts, NULL))
                perror_msg_and_fail("nanosleep");
-       printf("nanosleep({tv_sec=%jd, tv_nsec=%jd}, NULL) = 0\n",
-              (intmax_t) req.ts.tv_sec, (intmax_t) req.ts.tv_nsec);
+       printf("nanosleep({tv_sec=%lld, tv_nsec=%llu}, NULL) = 0\n",
+              (long long) req.ts.tv_sec,
+              zero_extend_signed_to_ull(req.ts.tv_nsec));
 
        assert(nanosleep(NULL, &rem.ts) == -1);
        printf("nanosleep(NULL, %p) = -1 EFAULT (%m)\n", &rem.ts);
 
        if (nanosleep(&req.ts, &rem.ts))
                perror_msg_and_fail("nanosleep");
-       printf("nanosleep({tv_sec=%jd, tv_nsec=%jd}, %p) = 0\n",
-              (intmax_t) req.ts.tv_sec, (intmax_t) req.ts.tv_nsec, &rem.ts);
+       printf("nanosleep({tv_sec=%lld, tv_nsec=%llu}, %p) = 0\n",
+              (long long) req.ts.tv_sec,
+              zero_extend_signed_to_ull(req.ts.tv_nsec), &rem.ts);
 
        req.ts.tv_nsec = 1000000000;
        assert(nanosleep(&req.ts, &rem.ts) == -1);
-       printf("nanosleep({tv_sec=%jd, tv_nsec=%jd}, %p) = -1 EINVAL (%m)\n",
-              (intmax_t) req.ts.tv_sec, (intmax_t) req.ts.tv_nsec, &rem.ts);
+       printf("nanosleep({tv_sec=%lld, tv_nsec=%llu}, %p) = -1 EINVAL (%m)\n",
+              (long long) req.ts.tv_sec,
+              zero_extend_signed_to_ull(req.ts.tv_nsec), &rem.ts);
 
        assert(sigaction(SIGALRM, &act, NULL) == 0);
        assert(sigprocmask(SIG_SETMASK, &set, NULL) == 0);
@@ -83,10 +86,13 @@ main(void)
 
        req.ts.tv_nsec = 999999999;
        assert(nanosleep(&req.ts, &rem.ts) == -1);
-       printf("nanosleep({tv_sec=%jd, tv_nsec=%jd}, {tv_sec=%jd, tv_nsec=%jd})"
+       printf("nanosleep({tv_sec=%lld, tv_nsec=%llu}"
+              ", {tv_sec=%lld, tv_nsec=%llu})"
               " = ? ERESTART_RESTARTBLOCK (Interrupted by signal)\n",
-              (intmax_t) req.ts.tv_sec, (intmax_t) req.ts.tv_nsec,
-              (intmax_t) rem.ts.tv_sec, (intmax_t) rem.ts.tv_nsec);
+              (long long) req.ts.tv_sec,
+              zero_extend_signed_to_ull(req.ts.tv_nsec),
+              (long long) rem.ts.tv_sec,
+              zero_extend_signed_to_ull(rem.ts.tv_nsec));
        puts("--- SIGALRM {si_signo=SIGALRM, si_code=SI_KERNEL} ---");
 
        puts("+++ exited with 0 +++");
index f26448531a9c96dba6ab9f9ab10d83333308f990..91198838090b80c4aa1638b7d43cfe28eb5be9b5 100644 (file)
@@ -95,13 +95,13 @@ int main(int ac, char **av)
        FD_SET(fds[0], set[1]);
        FD_SET(fds[1], set[1]);
        assert(syscall(__NR_pselect6, fds[1] + 1, NULL, set[1], NULL, &tm.ts, NULL) == 3);
-       printf("pselect6(%d, NULL, [1 2 %d %d], NULL"
-              "{tv_sec=%lld, tv_nsec=%lld}, NULL) = 3 (out [1 2 %d], left "
-              "{tv_sec=%lld, tv_nsec=%lld})\n",
-              fds[1] + 1, fds[0], fds[1],
-              (long long) tm_in.ts.tv_sec, (long long) tm_in.ts.tv_nsec,
-              fds[1],
-              (long long) tm.ts.tv_sec, (long long) tm.ts.tv_nsec);
+       printf("pselect6(%d, NULL, [1 2 %d %d], NULL"
+              ", {tv_sec=%lld, tv_nsec=%llu}, NULL) = 3 (out [1 2 %d]"
+              ", left {tv_sec=%lld, tv_nsec=%llu})\n",
+              fds[1] + 1, fds[0], fds[1], (long long) tm_in.ts.tv_sec,
+              zero_extend_signed_to_ull(tm_in.ts.tv_nsec),
+              fds[1], (long long) tm.ts.tv_sec,
+              zero_extend_signed_to_ull(tm.ts.tv_nsec));
 
        /*
         * Now the crash case that trinity found, negative nfds
@@ -122,8 +122,8 @@ int main(int ac, char **av)
        tm.ts.tv_sec = 0;
        tm.ts.tv_nsec = 123;
        assert(pselect(FD_SETSIZE + 1, set[0], set[1], NULL, &tm.ts, &mask) == 0);
-       printf("pselect6(%d, [%d], [], NULL, {tv_sec=0, tv_nsec=123}"
-              "{[HUP CHLD], %u}) = 0 (Timeout)\n",
+       printf("pselect6(%d, [%d], [], NULL, {tv_sec=0, tv_nsec=123}"
+              "{[HUP CHLD], %u}) = 0 (Timeout)\n",
               FD_SETSIZE + 1, fds[0], NSIG_BYTES);
 
        /*
@@ -134,9 +134,9 @@ int main(int ac, char **av)
 
        tm.ts.tv_nsec = 222222222;
        assert(pselect(0, NULL, NULL, NULL, &tm.ts, &mask) == -1);
-       printf("pselect6(0, NULL, NULL, NULL, {tv_sec=0, tv_nsec=222222222}"
-              "{[HUP CHLD], %u}) = "
-              "? ERESTARTNOHAND (To be restarted if no handler)\n",
+       printf("pselect6(0, NULL, NULL, NULL, {tv_sec=0, tv_nsec=222222222}"
+              ", {[HUP CHLD], %u})"
+              " = ? ERESTARTNOHAND (To be restarted if no handler)\n",
               NSIG_BYTES);
        puts("--- SIGALRM {si_signo=SIGALRM, si_code=SI_KERNEL} ---");
 
index e492e62e2e430f44879c7811eae0bf96afd122e6..b45e86c625426b317c7150025f6d4264bbd8ce10 100644 (file)
@@ -55,11 +55,11 @@ main(void)
        if (nanosleep(&req, &rem))
                perror_msg_and_fail("nanosleep");
 
-       printf("nanosleep\\(\\{tv_sec=%jd, tv_nsec=%jd\\}, "
-              "\\{tv_sec=%jd, tv_nsec=%jd\\}\\)"
+       printf("nanosleep\\(\\{tv_sec=%lld, tv_nsec=%llu\\}"
+              ", \\{tv_sec=%lld, tv_nsec=%llu\\}\\)"
               " = \\? ERESTART_RESTARTBLOCK \\(Interrupted by signal\\)\n",
-              (intmax_t) req.tv_sec, (intmax_t) req.tv_nsec,
-              (intmax_t) rem.tv_sec, (intmax_t) rem.tv_nsec);
+              (long long) req.tv_sec, zero_extend_signed_to_ull(req.tv_nsec),
+              (long long) rem.tv_sec, zero_extend_signed_to_ull(rem.tv_nsec));
        puts("--- SIGALRM \\{si_signo=SIGALRM, si_code=SI_KERNEL\\} ---");
 #ifdef __arm__
 /* old kernels used to overwrite ARM_r0 with -EINTR */
@@ -67,11 +67,12 @@ main(void)
 #else
 # define ALTERNATIVE_NANOSLEEP_REQ ""
 #endif
-       printf("(nanosleep\\((%s\\{tv_sec=%jd, tv_nsec=%jd\\}), "
-              "%p|restart_syscall\\(<\\.\\.\\."
+       printf("(nanosleep\\((%s\\{tv_sec=%lld, tv_nsec=%llu\\})"
+              "%p|restart_syscall\\(<\\.\\.\\."
               " resuming interrupted nanosleep \\.\\.\\.>)\\) = 0\n",
               ALTERNATIVE_NANOSLEEP_REQ,
-              (intmax_t) req.tv_sec, (intmax_t) req.tv_nsec, &rem);
+              (long long) req.tv_sec, zero_extend_signed_to_ull(req.tv_nsec),
+              &rem);
 
        puts("\\+\\+\\+ exited with 0 \\+\\+\\+");
        return 0;
index a64a128c5d0a16346acb20f420f47f64cf505f4f..74fbfead049d07f7d610612fbfc24b29a65f337a 100644 (file)
@@ -54,25 +54,27 @@ iterate(const char *const text, const void *set,
        for (;;) {
                assert(k_sigtimedwait(set, NULL, timeout, size) == -1);
                if (EINTR == errno) {
-                       tprintf("rt_sigtimedwait(%s, NULL"
-                               "{tv_sec=%jd, tv_nsec=%jd}, %u)"
+                       tprintf("rt_sigtimedwait(%s, NULL"
+                               ", {tv_sec=%lld, tv_nsec=%llu}, %u)"
                                " = -1 EAGAIN (%m)\n", text,
-                               (intmax_t) timeout->tv_sec,
-                               (intmax_t) timeout->tv_nsec,
+                               (long long) timeout->tv_sec,
+                               zero_extend_signed_to_ull(timeout->tv_nsec),
                                size);
                } else {
                        if (size < sizeof(long))
-                               tprintf("rt_sigtimedwait(%p, NULL"
-                                       "{tv_sec=%jd, tv_nsec=%jd}"
+                               tprintf("rt_sigtimedwait(%p, NULL"
+                                       ", {tv_sec=%lld, tv_nsec=%llu}"
                                        ", %u) = -1 EINVAL (%m)\n",
-                                       set, (intmax_t) timeout->tv_sec,
-                                       (intmax_t) timeout->tv_nsec, size);
+                                       set, (long long) timeout->tv_sec,
+                                       zero_extend_signed_to_ull(timeout->tv_nsec),
+                                       size);
                        else
-                               tprintf("rt_sigtimedwait(%s, NULL"
-                                       "{tv_sec=%jd, tv_nsec=%jd}"
+                               tprintf("rt_sigtimedwait(%s, NULL"
+                                       ", {tv_sec=%lld, tv_nsec=%llu}"
                                        ", %u) = -1 EINVAL (%m)\n",
-                                       text, (intmax_t) timeout->tv_sec,
-                                       (intmax_t) timeout->tv_nsec, size);
+                                       text, (long long) timeout->tv_sec,
+                                       zero_extend_signed_to_ull(timeout->tv_nsec),
+                                       size);
                }
                if (!size)
                        break;
@@ -100,16 +102,17 @@ main(void)
                assert(k_sigtimedwait(k_set, NULL, timeout, set_size) == -1);
                if (EAGAIN == errno)
                        break;
-               tprintf("rt_sigtimedwait(%p, NULL, {tv_sec=%jd, tv_nsec=%jd}, %u)"
-                       " = -1 EINVAL (%m)\n",
-                       k_set, (intmax_t) timeout->tv_sec,
-                       (intmax_t) timeout->tv_nsec, set_size);
+               tprintf("rt_sigtimedwait(%p, NULL, {tv_sec=%lld, tv_nsec=%llu}"
+                       ", %u) = -1 EINVAL (%m)\n",
+                       k_set, (long long) timeout->tv_sec,
+                       zero_extend_signed_to_ull(timeout->tv_nsec), set_size);
        }
        if (!set_size)
                perror_msg_and_fail("rt_sigtimedwait");
-       tprintf("rt_sigtimedwait([], NULL, {tv_sec=%jd, tv_nsec=%jd}, %u) = -1 EAGAIN (%m)\n",
-               (intmax_t) timeout->tv_sec, (intmax_t) timeout->tv_nsec,
-               set_size);
+       tprintf("rt_sigtimedwait([], NULL, {tv_sec=%lld, tv_nsec=%llu}, %u)"
+               " = -1 EAGAIN (%m)\n",
+               (long long) timeout->tv_sec,
+               zero_extend_signed_to_ull(timeout->tv_nsec), set_size);
 
        TAIL_ALLOC_OBJECT_CONST_PTR(sigset_t, libc_set);
        sigemptyset(libc_set);
@@ -118,19 +121,20 @@ main(void)
 
        assert(k_sigtimedwait(k_set, info, timeout, set_size) == -1);
        assert(EAGAIN == errno);
-       tprintf("rt_sigtimedwait([HUP], %p, {tv_sec=%jd, tv_nsec=%jd}, %u) = -1 EAGAIN (%m)\n",
-               info, (intmax_t) timeout->tv_sec,
-               (intmax_t) timeout->tv_nsec, set_size);
+       tprintf("rt_sigtimedwait([HUP], %p, {tv_sec=%lld, tv_nsec=%llu}, %u)"
+               " = -1 EAGAIN (%m)\n",
+               info, (long long) timeout->tv_sec,
+               zero_extend_signed_to_ull(timeout->tv_nsec), set_size);
 
        sigaddset(libc_set, SIGINT);
        memcpy(k_set, libc_set, set_size);
 
        assert(k_sigtimedwait(k_set, info, timeout, set_size) == -1);
        assert(EAGAIN == errno);
-       tprintf("rt_sigtimedwait([HUP INT], %p, {tv_sec=%jd, tv_nsec=%jd}, %u)"
+       tprintf("rt_sigtimedwait([HUP INT], %p, {tv_sec=%lld, tv_nsec=%llu}, %u)"
                " = -1 EAGAIN (%m)\n",
-               info, (intmax_t) timeout->tv_sec,
-               (intmax_t) timeout->tv_nsec, set_size);
+               info, (long long) timeout->tv_sec,
+               zero_extend_signed_to_ull(timeout->tv_nsec), set_size);
 
        sigaddset(libc_set, SIGQUIT);
        sigaddset(libc_set, SIGALRM);
@@ -139,17 +143,19 @@ main(void)
 
        assert(k_sigtimedwait(k_set, info, timeout, set_size) == -1);
        assert(EAGAIN == errno);
-       tprintf("rt_sigtimedwait(%s, %p, {tv_sec=%jd, tv_nsec=%jd}, %u) = -1 EAGAIN (%m)\n",
+       tprintf("rt_sigtimedwait(%s, %p, {tv_sec=%lld, tv_nsec=%llu}, %u)"
+               " = -1 EAGAIN (%m)\n",
                "[HUP INT QUIT ALRM TERM]",
-               info, (intmax_t) timeout->tv_sec,
-               (intmax_t) timeout->tv_nsec, set_size);
+               info, (long long) timeout->tv_sec,
+               zero_extend_signed_to_ull(timeout->tv_nsec), set_size);
 
        memset(k_set - set_size, -1, set_size);
        assert(k_sigtimedwait(k_set - set_size, info, timeout, set_size) == -1);
        assert(EAGAIN == errno);
-       tprintf("rt_sigtimedwait(~[], %p, {tv_sec=%jd, tv_nsec=%jd}, %u) = -1 EAGAIN (%m)\n",
-               info, (intmax_t) timeout->tv_sec,
-               (intmax_t) timeout->tv_nsec, set_size);
+       tprintf("rt_sigtimedwait(~[], %p, {tv_sec=%lld, tv_nsec=%llu}, %u)"
+               " = -1 EAGAIN (%m)\n",
+               info, (long long) timeout->tv_sec,
+               zero_extend_signed_to_ull(timeout->tv_nsec), set_size);
 
        if (sigprocmask(SIG_SETMASK, libc_set, NULL))
                perror_msg_and_fail("sigprocmask");
@@ -164,9 +170,11 @@ main(void)
        raise(SIGALRM);
        assert(k_sigtimedwait(k_set, info, timeout, set_size) == SIGALRM);
        tprintf("rt_sigtimedwait(%s, {si_signo=%s, si_code=SI_TKILL"
-               ", si_pid=%d, si_uid=%d}, {tv_sec=%jd, tv_nsec=%jd}, %u) = %d (%s)\n",
+               ", si_pid=%d, si_uid=%d}, {tv_sec=%lld, tv_nsec=%llu}, %u)"
+               " = %d (%s)\n",
                "[HUP INT QUIT ALRM TERM]", "SIGALRM", getpid(), getuid(),
-               (intmax_t) timeout->tv_sec, (intmax_t) timeout->tv_nsec,
+               (long long) timeout->tv_sec,
+               zero_extend_signed_to_ull(timeout->tv_nsec),
                set_size, SIGALRM, "SIGALRM");
 
        raise(SIGALRM);
index bda9dd87454f467799d943edbd11285d87d421e9..000a0be7672981cad8b48eff77517b792c7d0963 100644 (file)
@@ -25,8 +25,10 @@ main(void)
 
        rc = syscall(__NR_sched_rr_get_interval, 0, tp);
        if (rc == 0)
-               printf("sched_rr_get_interval(0, {tv_sec=%jd, tv_nsec=%jd}) = "
-                      "0\n", (intmax_t)tp->tv_sec, (intmax_t)tp->tv_nsec);
+               printf("sched_rr_get_interval(0, {tv_sec=%lld, tv_nsec=%llu})"
+                      " = 0\n",
+                      (long long) tp->tv_sec,
+                      zero_extend_signed_to_ull(tp->tv_nsec));
        else
                printf("sched_rr_get_interval(-1, %p) = %s\n", tp,
                        sprintrc(rc));
index c5b470c4b20d9df3031b7ef621bc4fd388dda638..30036f9ddf8de128fe1da0baa016350e7c110271 100644 (file)
@@ -92,14 +92,14 @@ main(void)
                id, sem_b + 1, ts + 1, sprintrc(rc));
 
        rc = semtimedop(bogus_semid, sem_b2, 2, ts);
-       printf("semtimedop(%d, [{%hu, %hd, %s%s%#hx}, %p], %u"
-               "{tv_sec=%jd, tv_nsec=%jd}) = %s\n",
+       printf("semtimedop(%d, [{%hu, %hd, %s%s%#hx}, %p], %u"
+               ", {tv_sec=%lld, tv_nsec=%llu}) = %s\n",
                bogus_semid, sem_b2->sem_num, sem_b2->sem_op,
                sem_b2->sem_flg & SEM_UNDO ? "SEM_UNDO|" : "",
                sem_b2->sem_flg & IPC_NOWAIT ? "IPC_NOWAIT|" : "",
                sem_b2->sem_flg & ~(SEM_UNDO | IPC_NOWAIT),
                sem_b2 + 1, 2,
-               (intmax_t) ts->tv_sec, (intmax_t) ts->tv_nsec,
+               (long long) ts->tv_sec, zero_extend_signed_to_ull(ts->tv_nsec),
                sprintrc(rc));
 
        sem_b->sem_op = 1;
@@ -110,9 +110,9 @@ main(void)
        sem_b->sem_op = -1;
        if (semtimedop(id, sem_b, 1, ts))
                perror_msg_and_skip("semtimedop, -1");
-       printf("semtimedop(%d, [{0, -1, SEM_UNDO}], 1"
-               "{tv_sec=%jd, tv_nsec=%jd}) = 0\n", id,
-               (intmax_t) ts->tv_sec, (intmax_t) ts->tv_nsec);
+       printf("semtimedop(%d, [{0, -1, SEM_UNDO}], 1"
+              ", {tv_sec=%lld, tv_nsec=%llu}) = 0\n", id,
+              (long long) ts->tv_sec, zero_extend_signed_to_ull(ts->tv_nsec));
 
        puts("+++ exited with 0 +++");
        return 0;
index 9eabbf0847854ae802e71b3f5e8c1997fc9d8c0c..22dc99e0512d25d14584f58a8cadcb35dbd4b0a3 100644 (file)
@@ -75,31 +75,31 @@ main(void)
        if (syscall(__NR_timer_settime, tid, 0, &new.its, &old.its))
                perror_msg_and_skip("timer_settime");
        printf("timer_settime(%d, 0"
-              ", {it_interval={tv_sec=%jd, tv_nsec=%jd}"
-              ", it_value={tv_sec=%jd, tv_nsec=%jd}}"
-              ", {it_interval={tv_sec=%jd, tv_nsec=%jd}"
-              ", it_value={tv_sec=%jd, tv_nsec=%jd}}"
+              ", {it_interval={tv_sec=%lld, tv_nsec=%llu}"
+              ", it_value={tv_sec=%lld, tv_nsec=%llu}}"
+              ", {it_interval={tv_sec=%lld, tv_nsec=%llu}"
+              ", it_value={tv_sec=%lld, tv_nsec=%llu}}"
               ") = 0\n",
               tid,
-              (intmax_t) new.its.it_interval.tv_sec,
-              (intmax_t) new.its.it_interval.tv_nsec,
-              (intmax_t) new.its.it_value.tv_sec,
-              (intmax_t) new.its.it_value.tv_nsec,
-              (intmax_t) old.its.it_interval.tv_sec,
-              (intmax_t) old.its.it_interval.tv_nsec,
-              (intmax_t) old.its.it_value.tv_sec,
-              (intmax_t) old.its.it_value.tv_nsec);
+              (long long) new.its.it_interval.tv_sec,
+              zero_extend_signed_to_ull(new.its.it_interval.tv_nsec),
+              (long long) new.its.it_value.tv_sec,
+              zero_extend_signed_to_ull(new.its.it_value.tv_nsec),
+              (long long) old.its.it_interval.tv_sec,
+              zero_extend_signed_to_ull(old.its.it_interval.tv_nsec),
+              (long long) old.its.it_value.tv_sec,
+              zero_extend_signed_to_ull(old.its.it_value.tv_nsec));
 
        if (syscall(__NR_timer_gettime, tid, &old.its))
                perror_msg_and_skip("timer_gettime");
        printf("timer_gettime(%d"
-              ", {it_interval={tv_sec=%jd, tv_nsec=%jd}"
-              ", it_value={tv_sec=%jd, tv_nsec=%jd}}) = 0\n",
+              ", {it_interval={tv_sec=%lld, tv_nsec=%llu}"
+              ", it_value={tv_sec=%lld, tv_nsec=%llu}}) = 0\n",
               tid,
-              (intmax_t) old.its.it_interval.tv_sec,
-              (intmax_t) old.its.it_interval.tv_nsec,
-              (intmax_t) old.its.it_value.tv_sec,
-              (intmax_t) old.its.it_value.tv_nsec);
+              (long long) old.its.it_interval.tv_sec,
+              zero_extend_signed_to_ull(old.its.it_interval.tv_nsec),
+              (long long) old.its.it_value.tv_sec,
+              zero_extend_signed_to_ull(old.its.it_value.tv_nsec));
 
        puts("+++ exited with 0 +++");
        return 0;
index ca7124ec344009a1b9153359d3a9b9f81521ca93..c8a22cc412f58bae1bcc61b6e0166893e9ee4017 100644 (file)
@@ -67,29 +67,29 @@ main(void)
        if (syscall(__NR_timerfd_settime, 0, 0, &new.its, &old.its))
                perror_msg_and_skip("timerfd_settime");
        printf("timerfd_settime(0, 0"
-              ", {it_interval={tv_sec=%jd, tv_nsec=%jd}"
-              ", it_value={tv_sec=%jd, tv_nsec=%jd}}"
-              ", {it_interval={tv_sec=%jd, tv_nsec=%jd}"
-              ", it_value={tv_sec=%jd, tv_nsec=%jd}}"
+              ", {it_interval={tv_sec=%lld, tv_nsec=%llu}"
+              ", it_value={tv_sec=%lld, tv_nsec=%llu}}"
+              ", {it_interval={tv_sec=%lld, tv_nsec=%llu}"
+              ", it_value={tv_sec=%lld, tv_nsec=%llu}}"
               ") = 0\n",
-              (intmax_t) new.its.it_interval.tv_sec,
-              (intmax_t) new.its.it_interval.tv_nsec,
-              (intmax_t) new.its.it_value.tv_sec,
-              (intmax_t) new.its.it_value.tv_nsec,
-              (intmax_t) old.its.it_interval.tv_sec,
-              (intmax_t) old.its.it_interval.tv_nsec,
-              (intmax_t) old.its.it_value.tv_sec,
-              (intmax_t) old.its.it_value.tv_nsec);
+              (long long) new.its.it_interval.tv_sec,
+              zero_extend_signed_to_ull(new.its.it_interval.tv_nsec),
+              (long long) new.its.it_value.tv_sec,
+              zero_extend_signed_to_ull(new.its.it_value.tv_nsec),
+              (long long) old.its.it_interval.tv_sec,
+              zero_extend_signed_to_ull(old.its.it_interval.tv_nsec),
+              (long long) old.its.it_value.tv_sec,
+              zero_extend_signed_to_ull(old.its.it_value.tv_nsec));
 
        if (syscall(__NR_timerfd_gettime, 0, &old.its))
                perror_msg_and_skip("timerfd_gettime");
        printf("timerfd_gettime(0"
-              ", {it_interval={tv_sec=%jd, tv_nsec=%jd}"
-              ", it_value={tv_sec=%jd, tv_nsec=%jd}}) = 0\n",
-              (intmax_t) old.its.it_interval.tv_sec,
-              (intmax_t) old.its.it_interval.tv_nsec,
-              (intmax_t) old.its.it_value.tv_sec,
-              (intmax_t) old.its.it_value.tv_nsec);
+              ", {it_interval={tv_sec=%lld, tv_nsec=%llu}"
+              ", it_value={tv_sec=%lld, tv_nsec=%llu}}) = 0\n",
+              (long long) old.its.it_interval.tv_sec,
+              zero_extend_signed_to_ull(old.its.it_interval.tv_nsec),
+              (long long) old.its.it_value.tv_sec,
+              zero_extend_signed_to_ull(old.its.it_value.tv_nsec));
 
        puts("+++ exited with 0 +++");
        return 0;
index e6154925fadb90b87cf5715b7a80d4d0f2079ee7..7bedc6f72052c13d1a9bc8341faf4a87147145d0 100644 (file)
@@ -41,8 +41,8 @@
 static void
 print_ts(const struct timespec *ts)
 {
-       printf("{tv_sec=%ju, tv_nsec=%ju}", (uintmax_t) ts->tv_sec,
-               (uintmax_t) ts->tv_nsec);
+       printf("{tv_sec=%lld, tv_nsec=%llu}", (long long) ts->tv_sec,
+               zero_extend_signed_to_ull(ts->tv_nsec));
 }
 
 static const char *errstr;
@@ -127,6 +127,18 @@ main(void)
        print_ts(&ts[1]);
        printf("], AT_SYMLINK_NOFOLLOW) = %s\n", errstr);
 
+       ts[0].tv_sec = -1;
+       ts[0].tv_nsec = 2000000000;
+       ts[1].tv_sec = (time_t) -0x100000001LL;
+       ts[1].tv_nsec = 2345678900U;
+
+       k_utimensat(kfdcwd, kfname, (uintptr_t) ts, 0x100);
+       printf("utimensat(AT_FDCWD, %s, [", qname);
+       print_ts(&ts[0]);
+       printf(", ");
+       print_ts(&ts[1]);
+       printf("], AT_SYMLINK_NOFOLLOW) = %s\n", errstr);
+
        ts[0].tv_nsec = UTIME_NOW;
        ts[1].tv_nsec = UTIME_OMIT;
        k_utimensat(kfdcwd, kfname, (uintptr_t) ts, 0x100);
index 5f88940087d6068ddc93cad2e5d1a2dcd0140188..a2b11e0052a15c1d29c326d823f7f0d361fdefdf 100644 (file)
@@ -40,8 +40,8 @@ sprint_rusage(const struct rusage *const ru)
 {
        static char buf[1024];
        snprintf(buf, sizeof(buf),
-                "{ru_utime={tv_sec=%lu, tv_usec=%lu}"
-                ", ru_stime={tv_sec=%lu, tv_usec=%lu}"
+                "{ru_utime={tv_sec=%lld, tv_usec=%llu}"
+                ", ru_stime={tv_sec=%lld, tv_usec=%llu}"
 #if VERBOSE
                 ", ru_maxrss=%lu"
                 ", ru_ixrss=%lu"
@@ -60,10 +60,10 @@ sprint_rusage(const struct rusage *const ru)
 #else
                 ", ...}"
 #endif
-                , (long) ru->ru_utime.tv_sec
-                , (long) ru->ru_utime.tv_usec
-                , (long) ru->ru_stime.tv_sec
-                , (long) ru->ru_stime.tv_usec
+                , (long long) ru->ru_utime.tv_sec
+                , zero_extend_signed_to_ull(ru->ru_utime.tv_usec)
+                , (long long) ru->ru_stime.tv_sec
+                , zero_extend_signed_to_ull(ru->ru_stime.tv_usec)
 #if VERBOSE
                 , (long) ru->ru_maxrss
                 , (long) ru->ru_ixrss
index 66825b298ce3595349856785fafd696053d9a877..8ac99ef36d0230a028863430088249641c8f8b12 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=%lld, tv_usec=%lld}"
-                ", ru_stime={tv_sec=%lld, tv_usec=%lld}"
+                "{ru_utime={tv_sec=%lld, tv_usec=%llu}"
+                ", ru_stime={tv_sec=%lld, tv_usec=%llu}"
 #if VERBOSE
                 ", ru_maxrss=%llu"
                 ", ru_ixrss=%llu"
@@ -63,9 +63,9 @@ sprint_rusage(const struct rusage *const ru)
                 ", ...}"
 #endif
                 , (long long) ru->ru_utime.tv_sec
-                , (long long) ru->ru_utime.tv_usec
+                , zero_extend_signed_to_ull(ru->ru_utime.tv_usec)
                 , (long long) ru->ru_stime.tv_sec
-                , (long long) ru->ru_stime.tv_usec
+                , zero_extend_signed_to_ull(ru->ru_stime.tv_usec)
 #if VERBOSE
                 , zero_extend_signed_to_ull(ru->ru_maxrss)
                 , zero_extend_signed_to_ull(ru->ru_ixrss)
index 1e1785605ac6bb930fe0303813c01b71b5b8a1c6..1ba5c1a0a4cc711744e952126a9bacbc85240a03 100644 (file)
@@ -54,52 +54,52 @@ main(void)
        if (setitimer(ITIMER_REAL, p_new, NULL))
                perror_msg_and_skip("setitimer");
        printf("setitimer(ITIMER_REAL"
-              ", {it_interval={tv_sec=%jd, tv_usec=%jd}, "
-              "it_value={tv_sec=%jd, tv_usec=%jd}}"
+              ", {it_interval={tv_sec=%lld, tv_usec=%llu}"
+              ", it_value={tv_sec=%lld, tv_usec=%llu}}"
               ", NULL) = 0\n",
-              (intmax_t) new.it_interval.tv_sec,
-              (intmax_t) new.it_interval.tv_usec,
-              (intmax_t) new.it_value.tv_sec,
-              (intmax_t) new.it_value.tv_usec);
+              (long long) new.it_interval.tv_sec,
+              zero_extend_signed_to_ull(new.it_interval.tv_usec),
+              (long long) new.it_value.tv_sec,
+              zero_extend_signed_to_ull(new.it_value.tv_usec));
 
        fill_memory(p_old, sizeof(*p_old));
        if (getitimer(ITIMER_REAL, p_old))
                perror_msg_and_skip("getitimer");
        printf("getitimer(ITIMER_REAL"
-              ", {it_interval={tv_sec=%jd, tv_usec=%jd}, "
-              "it_value={tv_sec=%jd, tv_usec=%jd}}) = 0\n",
-              (intmax_t) p_old->it_interval.tv_sec,
-              (intmax_t) p_old->it_interval.tv_usec,
-              (intmax_t) p_old->it_value.tv_sec,
-              (intmax_t) p_old->it_value.tv_usec);
+              ", {it_interval={tv_sec=%lld, tv_usec=%llu}"
+              ", it_value={tv_sec=%lld, tv_usec=%llu}}) = 0\n",
+              (long long) p_old->it_interval.tv_sec,
+              zero_extend_signed_to_ull(p_old->it_interval.tv_usec),
+              (long long) p_old->it_value.tv_sec,
+              zero_extend_signed_to_ull(p_old->it_value.tv_usec));
 
        fill_memory(p_old, sizeof(*p_old));
        setitimer(ITIMER_REAL, p_new, p_old);
        printf("setitimer(ITIMER_REAL"
-              ", {it_interval={tv_sec=%jd, tv_usec=%jd}, "
-              "it_value={tv_sec=%jd, tv_usec=%jd}}"
-              ", {it_interval={tv_sec=%jd, tv_usec=%jd}, "
-              "it_value={tv_sec=%jd, tv_usec=%jd}}) = 0\n",
-              (intmax_t) new.it_interval.tv_sec,
-              (intmax_t) new.it_interval.tv_usec,
-              (intmax_t) new.it_value.tv_sec,
-              (intmax_t) new.it_value.tv_usec,
-              (intmax_t) p_old->it_interval.tv_sec,
-              (intmax_t) p_old->it_interval.tv_usec,
-              (intmax_t) p_old->it_value.tv_sec,
-              (intmax_t) p_old->it_value.tv_usec);
+              ", {it_interval={tv_sec=%lld, tv_usec=%llu}"
+              ", it_value={tv_sec=%lld, tv_usec=%llu}}"
+              ", {it_interval={tv_sec=%lld, tv_usec=%llu}"
+              ", it_value={tv_sec=%lld, tv_usec=%llu}}) = 0\n",
+              (long long) new.it_interval.tv_sec,
+              zero_extend_signed_to_ull(new.it_interval.tv_usec),
+              (long long) new.it_value.tv_sec,
+              zero_extend_signed_to_ull(new.it_value.tv_usec),
+              (long long) p_old->it_interval.tv_sec,
+              zero_extend_signed_to_ull(p_old->it_interval.tv_usec),
+              (long long) p_old->it_value.tv_sec,
+              zero_extend_signed_to_ull(p_old->it_value.tv_usec));
 
        rc = getitimer(ITIMER_REAL, efault);
        printf("getitimer(ITIMER_REAL, %p) = %s\n", efault, sprintrc(rc));
 
        rc = setitimer(ITIMER_REAL, p_new, efault);
        printf("setitimer(ITIMER_REAL"
-              ", {it_interval={tv_sec=%jd, tv_usec=%jd}, "
-              "it_value={tv_sec=%jd, tv_usec=%jd}}, %p) = %s\n",
-              (intmax_t) new.it_interval.tv_sec,
-              (intmax_t) new.it_interval.tv_usec,
-              (intmax_t) new.it_value.tv_sec,
-              (intmax_t) new.it_value.tv_usec,
+              ", {it_interval={tv_sec=%lld, tv_usec=%llu}"
+              ", it_value={tv_sec=%lld, tv_usec=%llu}}, %p) = %s\n",
+              (long long) new.it_interval.tv_sec,
+              zero_extend_signed_to_ull(new.it_interval.tv_usec),
+              (long long) new.it_value.tv_sec,
+              zero_extend_signed_to_ull(new.it_value.tv_usec),
               efault, sprintrc(rc));
 
        rc = setitimer(ITIMER_REAL, efault, p_old);
@@ -109,40 +109,40 @@ main(void)
        fill_memory(p_old, sizeof(*p_old));
        rc = syscall(__NR_setitimer, long_timer, p_new, p_old);
        printf("setitimer(ITIMER_REAL"
-              ", {it_interval={tv_sec=%jd, tv_usec=%jd}, "
-              "it_value={tv_sec=%jd, tv_usec=%jd}}"
-              ", {it_interval={tv_sec=%jd, tv_usec=%jd}, "
-              "it_value={tv_sec=%jd, tv_usec=%jd}}) = %s\n",
-              (intmax_t) new.it_interval.tv_sec,
-              (intmax_t) new.it_interval.tv_usec,
-              (intmax_t) new.it_value.tv_sec,
-              (intmax_t) new.it_value.tv_usec,
-              (intmax_t) p_old->it_interval.tv_sec,
-              (intmax_t) p_old->it_interval.tv_usec,
-              (intmax_t) p_old->it_value.tv_sec,
-              (intmax_t) p_old->it_value.tv_usec,
+              ", {it_interval={tv_sec=%lld, tv_usec=%llu}"
+              ", it_value={tv_sec=%lld, tv_usec=%llu}}"
+              ", {it_interval={tv_sec=%lld, tv_usec=%llu}"
+              ", it_value={tv_sec=%lld, tv_usec=%llu}}) = %s\n",
+              (long long) new.it_interval.tv_sec,
+              zero_extend_signed_to_ull(new.it_interval.tv_usec),
+              (long long) new.it_value.tv_sec,
+              zero_extend_signed_to_ull(new.it_value.tv_usec),
+              (long long) p_old->it_interval.tv_sec,
+              zero_extend_signed_to_ull(p_old->it_interval.tv_usec),
+              (long long) p_old->it_value.tv_sec,
+              zero_extend_signed_to_ull(p_old->it_value.tv_usec),
               sprintrc(rc));
 
        fill_memory(p_old, sizeof(*p_old));
        rc = syscall(__NR_getitimer, long_timer, p_old);
        printf("getitimer(ITIMER_REAL"
-              ", {it_interval={tv_sec=%jd, tv_usec=%jd}, "
-              "it_value={tv_sec=%jd, tv_usec=%jd}}) = %s\n",
-              (intmax_t) p_old->it_interval.tv_sec,
-              (intmax_t) p_old->it_interval.tv_usec,
-              (intmax_t) p_old->it_value.tv_sec,
-              (intmax_t) p_old->it_value.tv_usec,
+              ", {it_interval={tv_sec=%lld, tv_usec=%llu}"
+              ", it_value={tv_sec=%lld, tv_usec=%llu}}) = %s\n",
+              (long long) p_old->it_interval.tv_sec,
+              zero_extend_signed_to_ull(p_old->it_interval.tv_usec),
+              (long long) p_old->it_value.tv_sec,
+              zero_extend_signed_to_ull(p_old->it_value.tv_usec),
               sprintrc(rc));
 
        rc = syscall(__NR_setitimer, bogus_timer, p_new, p_old);
        printf("setitimer(%#x /* ITIMER_??? */"
-              ", {it_interval={tv_sec=%jd, tv_usec=%jd}, "
-              "it_value={tv_sec=%jd, tv_usec=%jd}}, %p) = %s\n",
+              ", {it_interval={tv_sec=%lld, tv_usec=%llu}"
+              ", it_value={tv_sec=%lld, tv_usec=%llu}}, %p) = %s\n",
               (int) bogus_timer,
-              (intmax_t) new.it_interval.tv_sec,
-              (intmax_t) new.it_interval.tv_usec,
-              (intmax_t) new.it_value.tv_sec,
-              (intmax_t) new.it_value.tv_usec,
+              (long long) new.it_interval.tv_sec,
+              zero_extend_signed_to_ull(new.it_interval.tv_usec),
+              (long long) new.it_value.tv_sec,
+              zero_extend_signed_to_ull(new.it_value.tv_usec),
               p_old, sprintrc(rc));
 
        rc = syscall(__NR_getitimer, bogus_timer, p_old);
index d36c57b4bf1126350a2ceece8ba6a62307133820..2775afc5489c07a08cb247c53d90564b5c03f55b 100644 (file)
@@ -48,23 +48,26 @@ main(void)
 
        if (syscall(__NR_gettimeofday, &t.tv, NULL))
                perror_msg_and_skip("gettimeofday");
-       printf("gettimeofday({tv_sec=%jd, tv_usec=%jd}, NULL) = 0\n",
-              (intmax_t) t.tv.tv_sec, (intmax_t) t.tv.tv_usec);
+       printf("gettimeofday({tv_sec=%lld, tv_usec=%llu}, NULL) = 0\n",
+              (long long) t.tv.tv_sec,
+              zero_extend_signed_to_ull(t.tv.tv_usec));
 
        if (syscall(__NR_gettimeofday, &t.tv, &t.tz))
                perror_msg_and_skip("gettimeofday");
-       printf("gettimeofday({tv_sec=%jd, tv_usec=%jd}"
+       printf("gettimeofday({tv_sec=%lld, tv_usec=%llu}"
               ", {tz_minuteswest=%d, tz_dsttime=%d}) = 0\n",
-              (intmax_t) t.tv.tv_sec, (intmax_t) t.tv.tv_usec,
+              (long long) t.tv.tv_sec,
+              zero_extend_signed_to_ull(t.tv.tv_usec),
               t.tz.tz_minuteswest, t.tz.tz_dsttime);
 
        t.tv.tv_sec = -1;
        t.tv.tv_usec = 1000000000;
        assert(syscall(__NR_settimeofday, &t.tv, &t.tz) == -1);
-       printf("settimeofday({tv_sec=%jd, tv_usec=%jd}"
+       printf("settimeofday({tv_sec=%lld, tv_usec=%llu}"
               ", {tz_minuteswest=%d, tz_dsttime=%d})"
               " = -1 EINVAL (%m)\n",
-              (intmax_t) t.tv.tv_sec, (intmax_t) t.tv.tv_usec,
+              (long long) t.tv.tv_sec,
+              zero_extend_signed_to_ull(t.tv.tv_usec),
               t.tz.tz_minuteswest, t.tz.tz_dsttime);
 
        puts("+++ exited with 0 +++");
index 39e87ac79e3240dfd3cbb2e0460dddc727b9fe9b..615d39fcd4283998c6ad5eb365100e0170477c1b 100644 (file)
@@ -72,12 +72,14 @@ int main(void)
        FD_SET(fds[0], set);
        FD_SET(fds[1], set);
        assert(syscall(TEST_SYSCALL_NR, fds[1] + 1, NULL, set, NULL, &tm.tv) == 3);
-       printf("%s(%d, NULL, [1 2 %d %d], NULL, {tv_sec=%lld, tv_usec=%lld})"
-              " = 3 (out [1 2 %d], left {tv_sec=%lld, tv_usec=%lld})\n",
+       printf("%s(%d, NULL, [1 2 %d %d], NULL, {tv_sec=%lld, tv_usec=%llu})"
+              " = 3 (out [1 2 %d], left {tv_sec=%lld, tv_usec=%llu})\n",
               TEST_SYSCALL_STR, fds[1] + 1, fds[0], fds[1],
-              (long long) tm_in.tv.tv_sec, (long long) tm_in.tv.tv_usec,
+              (long long) tm_in.tv.tv_sec,
+              zero_extend_signed_to_ull(tm_in.tv.tv_usec),
               fds[1],
-              (long long) tm.tv.tv_sec, (long long) tm.tv.tv_usec);
+              (long long) tm.tv.tv_sec,
+              zero_extend_signed_to_ull(tm.tv.tv_usec));
 
        /*
         * Now the crash case that trinity found, negative nfds
index 251fb2e4e6cf38639e6f785bfae8a099c6d2454e..3b87b27e9f031962d84c31e5f9abd159a42ee8ae 100644 (file)
@@ -47,8 +47,9 @@
 static void
 print_tv(const TEST_STRUCT *const tv)
 {
-       printf("{tv_sec=%ju, tv_usec=%ju}",
-              (uintmax_t) tv->tv_sec, (uintmax_t) tv->tv_usec);
+       printf("{tv_sec=%lld, tv_usec=%llu}",
+              (long long) tv->tv_sec,
+              zero_extend_signed_to_ull(tv->tv_usec));
 }
 
 static const char *errstr;