switch (tcp->u_error) {
default:
/* Not interrupted (slept entire interval) */
- if (tcp->u_arg[1]) {
- tprintf("%#lx", tcp->u_arg[1]);
- break;
- }
- /* Fall through: print_timespec(NULL) prints "NULL" */
+ printaddr(tcp->u_arg[1]);
+ break;
case ERESTARTSYS:
case ERESTARTNOINTR:
case ERESTARTNOHAND:
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 (bitness == BITNESS_32 || current_time_t_is_compat) {
+ struct {
+ struct timeval32 it_interval, it_value;
+ } itv;
+
+ if (!umove_or_printaddr(tcp, addr, &itv)) {
+ tprints("{it_interval=");
+ tprint_timeval32(tcp, &itv.it_interval);
+ tprints(", it_value=");
+ tprint_timeval32(tcp, &itv.it_value);
+ tprints("}");
+ }
+ } else {
+ struct itimerval itv;
+
+ if (!umove_or_printaddr(tcp, addr, &itv)) {
+ tprints("{it_interval=");
+ tprint_timeval(tcp, &itv.it_interval);
+ tprints(", it_value=");
+ tprint_timeval(tcp, &itv.it_value);
+ tprints("}");
}
- if (rc < 0)
- tprints("{...}");
}
}
printxval(itimer_which, tcp->u_arg[0], "ITIMER_???");
tprints(", ");
} else {
- if (syserror(tcp))
- tprintf("%#lx", tcp->u_arg[1]);
- else
- printitv(tcp, tcp->u_arg[1]);
+ printitv(tcp, tcp->u_arg[1]);
}
return 0;
}
printxval(itimer_which, tcp->u_arg[0], "ITIMER_???");
tprints(", ");
} else {
- if (syserror(tcp))
- tprintf("%#lx", tcp->u_arg[1]);
- else
- printitv_bitness(tcp, tcp->u_arg[1], BITNESS_32);
+ printitv_bitness(tcp, tcp->u_arg[1], BITNESS_32);
}
return 0;
}
printitv(tcp, tcp->u_arg[1]);
tprints(", ");
} else {
- if (syserror(tcp))
- tprintf("%#lx", tcp->u_arg[2]);
- else
- printitv(tcp, tcp->u_arg[2]);
+ printitv(tcp, tcp->u_arg[2]);
}
return 0;
}
printitv_bitness(tcp, tcp->u_arg[1], BITNESS_32);
tprints(", ");
} else {
- if (syserror(tcp))
- tprintf("%#lx", tcp->u_arg[2]);
- else
- printitv_bitness(tcp, tcp->u_arg[2], BITNESS_32);
+ printitv_bitness(tcp, tcp->u_arg[2], BITNESS_32);
}
return 0;
}
int stbcnt;
} tx;
- if (umove(tcp, addr, &tx) < 0)
+ if (umove_or_printaddr(tcp, addr, &tx))
return -1;
tprints("{modes=");
if (current_time_t_is_compat)
return tprint_timex32(tcp, addr);
#endif
- if (umove(tcp, addr, &tx) < 0)
+ if (umove_or_printaddr(tcp, addr, &tx))
return -1;
#if LINUX_VERSION_CODE < 66332
static int
do_adjtimex(struct tcb *tcp, long addr)
{
- if (addr == 0)
- tprints("NULL");
- else if (syserror(tcp) || !verbose(tcp))
- tprintf("%#lx", addr);
- else if (tprint_timex(tcp, addr) < 0)
- tprints("{...}");
- if (syserror(tcp))
+ if (tprint_timex(tcp, addr))
return 0;
tcp->auxstr = xlookup(adjtimex_state, tcp->u_rval);
if (tcp->auxstr)
} un;
} sev;
- if (umove(tcp, arg, &sev) < 0)
- tprints("{...}");
- else {
+ if (!umove_or_printaddr(tcp, arg, &sev)) {
tprintf("{%#x, ", sev.sigev_value);
if (sev.sigev_notify == SIGEV_SIGNAL)
tprintf("%s, ", signame(sev.sigev_signo));
return;
}
#endif
- if (umove(tcp, arg, &sev) < 0)
- tprints("{...}");
- else {
+ if (!umove_or_printaddr(tcp, arg, &sev)) {
tprintf("{%p, ", sev.sigev_value.sival_ptr);
if (sev.sigev_notify == SIGEV_SIGNAL)
tprintf("%s, ", signame(sev.sigev_signo));
printsigevent(tcp, tcp->u_arg[1]);
tprints(", ");
} else {
- int timer_id;
-
- if (syserror(tcp) || umove(tcp, tcp->u_arg[2], &timer_id) < 0)
- tprintf("%#lx", tcp->u_arg[2]);
- else
- tprintf("{%d}", timer_id);
+ printnum_int(tcp, tcp->u_arg[2], "%d");
}
return 0;
}
SYS_FUNC(timer_settime)
{
if (entering(tcp)) {
- tprintf("%#lx, ", tcp->u_arg[0]);
+ tprintf("%d, ", (int) tcp->u_arg[0]);
printflags(clockflags, tcp->u_arg[1], "TIMER_???");
tprints(", ");
printitv(tcp, tcp->u_arg[2]);
tprints(", ");
} else {
- if (syserror(tcp))
- tprintf("%#lx", tcp->u_arg[3]);
- else
- printitv(tcp, tcp->u_arg[3]);
+ printitv(tcp, tcp->u_arg[3]);
}
return 0;
}
SYS_FUNC(timer_gettime)
{
if (entering(tcp)) {
- tprintf("%#lx, ", tcp->u_arg[0]);
+ tprintf("%d, ", (int) tcp->u_arg[0]);
} else {
- if (syserror(tcp))
- tprintf("%#lx", tcp->u_arg[1]);
- else
- printitv(tcp, tcp->u_arg[1]);
+ printitv(tcp, tcp->u_arg[1]);
}
return 0;
}