* defs.h (printtv, printtv_special): Remove.
[ALPHA] (print_timeval32, print_timeval32_pair): New prototypes.
* print_time.c (print_timeval): New mpers printer.
[ALPHA] (print_timeval32, print_timeval32_pair): New functions.
* time.c (sys_gettimeofday, sys_settimeofday): Use print_timeval
instead of printtv.
[ALPHA] (sys_osf_gettimeofday, sys_osf_settimeofday):
Use print_timeval32 instead of printtv_bitness.
* utimes.c [ALPHA] (sys_osf_utimes): Use print_timeval32_pair
instead of printtv_bitness.
#define TIMESPEC_TEXT_BUFSIZE (sizeof(long)*3 * 2 + sizeof("{%u, %u}"))
#define TIMEVAL_TEXT_BUFSIZE TIMESPEC_TEXT_BUFSIZE
extern void printtv_bitness(struct tcb *, long, enum bitness_t, int);
-#define printtv(tcp, addr) \
- printtv_bitness((tcp), (addr), BITNESS_CURRENT, 0)
-#define printtv_special(tcp, addr) \
- printtv_bitness((tcp), (addr), BITNESS_CURRENT, 1)
extern char *sprinttv(char *, struct tcb *, long, enum bitness_t, int special);
extern void sprint_timespec(char *, struct tcb *, long);
extern void printfd(struct tcb *, int);
extern void print_sock_optmgmt(struct tcb *, long, int);
#ifdef ALPHA
extern void printrusage32(struct tcb *, long);
+extern void print_timeval32(struct tcb *tcp, long);
+extern void print_timeval32_pair(struct tcb *tcp, long);
extern void print_itimerval32(struct tcb *tcp, long);
#endif
extern void printuid(const char *, const unsigned int);
tprints("}");
}
+MPERS_PRINTER_DECL(void, print_timeval)(struct tcb *tcp, const long addr)
+{
+ timeval_t t;
+
+ if (umove_or_printaddr(tcp, addr, &t))
+ return;
+
+ print_timeval_t(&t);
+}
+
MPERS_PRINTER_DECL(void, print_timeval_pair)(struct tcb *tcp, const long addr)
{
timeval_t t[2];
tprintf(time_fmt, (intmax_t) t->tv_sec, (intmax_t) t->tv_usec);
}
+void
+print_timeval32(struct tcb *tcp, const long addr)
+{
+ timeval32_t t;
+
+ if (umove_or_printaddr(tcp, addr, &t))
+ return;
+
+ print_timeval32_t(&t);
+}
+
+void
+print_timeval32_pair(struct tcb *tcp, const long addr)
+{
+ timeval32_t t[2];
+
+ if (umove_or_printaddr(tcp, addr, &t))
+ return;
+
+ tprints("[");
+ print_timeval32_t(&t[0]);
+ tprints(", ");
+ print_timeval32_t(&t[1]);
+ tprints("]");
+}
+
void
print_itimerval32(struct tcb *tcp, const long addr)
{
SYS_FUNC(gettimeofday)
{
if (exiting(tcp)) {
- printtv(tcp, tcp->u_arg[0]);
+ print_timeval(tcp, tcp->u_arg[0]);
tprints(", ");
- printtv(tcp, tcp->u_arg[1]);
+ print_timeval(tcp, tcp->u_arg[1]);
}
return 0;
}
SYS_FUNC(osf_gettimeofday)
{
if (exiting(tcp)) {
- printtv_bitness(tcp, tcp->u_arg[0], BITNESS_32, 0);
+ print_timeval32(tcp, tcp->u_arg[0]);
tprints(", ");
- printtv_bitness(tcp, tcp->u_arg[1], BITNESS_32, 0);
+ print_timeval32(tcp, tcp->u_arg[1]);
}
return 0;
}
SYS_FUNC(settimeofday)
{
- printtv(tcp, tcp->u_arg[0]);
+ print_timeval(tcp, tcp->u_arg[0]);
tprints(", ");
- printtv(tcp, tcp->u_arg[1]);
+ print_timeval(tcp, tcp->u_arg[1]);
return RVAL_DECODED;
}
#ifdef ALPHA
SYS_FUNC(osf_settimeofday)
{
- printtv_bitness(tcp, tcp->u_arg[0], BITNESS_32, 0);
+ print_timeval32(tcp, tcp->u_arg[0]);
tprints(", ");
- printtv_bitness(tcp, tcp->u_arg[1], BITNESS_32, 0);
+ print_timeval32(tcp, tcp->u_arg[1]);
return RVAL_DECODED;
}
{
printpath(tcp, tcp->u_arg[0]);
tprints(", ");
- printtv_bitness(tcp, tcp->u_arg[1], BITNESS_32, 0);
+ print_timeval32_pair(tcp, tcp->u_arg[1]);
return RVAL_DECODED;
}