tprints("]");
}
+MPERS_PRINTER_DECL(void, print_itimerval)(struct tcb *tcp, const long addr)
+{
+ timeval_t t[2];
+
+ if (umove_or_printaddr(tcp, addr, &t))
+ return;
+
+ tprints("{it_interval=");
+ print_timeval_t(&t[0]);
+ tprints(", it_value=");
+ print_timeval_t(&t[1]);
+ tprints("}");
+}
+
SYS_FUNC(time)
{
if (exiting(tcp)) {
return 0;
}
+
+#ifdef ALPHA
+
+typedef struct {
+ int tv_sec, tv_usec;
+} timeval32_t;
+
+static void
+print_timeval32_t(const timeval32_t *t)
+{
+ tprintf(time_fmt, (intmax_t) t->tv_sec, (intmax_t) t->tv_usec);
+}
+
+void
+print_itimerval32(struct tcb *tcp, const long addr)
+{
+ timeval32_t t[2];
+
+ if (umove_or_printaddr(tcp, addr, &t))
+ return;
+
+ tprints("{it_interval=");
+ print_timeval32_t(&t[0]);
+ tprints(", it_value=");
+ print_timeval32_t(&t[1]);
+ tprints("}");
+}
+
+#endif /* ALPHA */
u_int32_t tv_sec, tv_usec;
};
-static void
-tprint_timeval32(struct tcb *tcp, const struct timeval32 *tv)
-{
- tprintf("{%u, %u}", tv->tv_sec, tv->tv_usec);
-}
-
-static void
-tprint_timeval(struct tcb *tcp, const struct timeval *tv)
-{
- tprintf("{%ju, %ju}", (uintmax_t) tv->tv_sec, (uintmax_t) tv->tv_usec);
-}
-
void
printtv_bitness(struct tcb *tcp, long addr, enum bitness_t bitness, int special)
{
#include "xlat/itimer_which.h"
-static void
-printitv_bitness(struct tcb *tcp, long addr, enum bitness_t bitness)
-{
- 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("}");
- }
- }
-}
-
-#define printitv(tcp, addr) \
- printitv_bitness((tcp), (addr), BITNESS_CURRENT)
-
SYS_FUNC(getitimer)
{
if (entering(tcp)) {
printxval(itimer_which, tcp->u_arg[0], "ITIMER_???");
tprints(", ");
} else {
- printitv(tcp, tcp->u_arg[1]);
+ print_itimerval(tcp, tcp->u_arg[1]);
}
return 0;
}
printxval(itimer_which, tcp->u_arg[0], "ITIMER_???");
tprints(", ");
} else {
- printitv_bitness(tcp, tcp->u_arg[1], BITNESS_32);
+ print_itimerval32(tcp, tcp->u_arg[1]);
}
return 0;
}
if (entering(tcp)) {
printxval(itimer_which, tcp->u_arg[0], "ITIMER_???");
tprints(", ");
- printitv(tcp, tcp->u_arg[1]);
+ print_itimerval(tcp, tcp->u_arg[1]);
tprints(", ");
} else {
- printitv(tcp, tcp->u_arg[2]);
+ print_itimerval(tcp, tcp->u_arg[2]);
}
return 0;
}
if (entering(tcp)) {
printxval(itimer_which, tcp->u_arg[0], "ITIMER_???");
tprints(", ");
- printitv_bitness(tcp, tcp->u_arg[1], BITNESS_32);
+ print_itimerval32(tcp, tcp->u_arg[1]);
tprints(", ");
} else {
- printitv_bitness(tcp, tcp->u_arg[2], BITNESS_32);
+ print_itimerval32(tcp, tcp->u_arg[2]);
}
return 0;
}