Convert parser of struct timespec to new mpers infrastructure
* defs.h (print_timespec): Remove. * print_time.c (print_timespec): New mpers printer. * futex.c (sys_futex): Use print_timespec instead of printtv. * ipc_sem.c (sys_semtimedop): Likewise. * mq.c (sys_mq_timedsend, sys_mq_timedreceive): Likewise. * time.c (clock_settime, clock_gettime, clock_nanosleep): Likewise. (print_timespec): Remove.
This commit is contained in:
parent
f94d8d6e55
commit
5938526c81
1
defs.h
1
defs.h
@ -655,7 +655,6 @@ extern void printtv_bitness(struct tcb *, long, enum bitness_t, int);
|
||||
#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 print_timespec(struct tcb *, long);
|
||||
extern void sprint_timespec(char *, struct tcb *, long);
|
||||
extern void printfd(struct tcb *, int);
|
||||
extern bool print_sockaddr_by_inode(const unsigned long, const char *);
|
||||
|
6
futex.c
6
futex.c
@ -34,11 +34,11 @@ SYS_FUNC(futex)
|
||||
case FUTEX_WAIT:
|
||||
case FUTEX_LOCK_PI:
|
||||
tprints(", ");
|
||||
printtv(tcp, timeout);
|
||||
print_timespec(tcp, timeout);
|
||||
break;
|
||||
case FUTEX_WAIT_BITSET:
|
||||
tprints(", ");
|
||||
printtv(tcp, timeout);
|
||||
print_timespec(tcp, timeout);
|
||||
tprintf(", %x", val3);
|
||||
break;
|
||||
case FUTEX_WAKE_BITSET:
|
||||
@ -69,7 +69,7 @@ SYS_FUNC(futex)
|
||||
break;
|
||||
case FUTEX_WAIT_REQUEUE_PI:
|
||||
tprints(", ");
|
||||
printtv(tcp, timeout);
|
||||
print_timespec(tcp, timeout);
|
||||
tprints(", ");
|
||||
printaddr(uaddr2);
|
||||
break;
|
||||
|
@ -99,14 +99,14 @@ SYS_FUNC(semtimedop)
|
||||
tprint_sembuf_array(tcp, tcp->u_arg[3], tcp->u_arg[1]);
|
||||
tprints(", ");
|
||||
#if defined(S390) || defined(S390X)
|
||||
printtv(tcp, tcp->u_arg[2]);
|
||||
print_timespec(tcp, tcp->u_arg[2]);
|
||||
#else
|
||||
printtv(tcp, tcp->u_arg[4]);
|
||||
print_timespec(tcp, tcp->u_arg[4]);
|
||||
#endif
|
||||
} else {
|
||||
tprint_sembuf_array(tcp, tcp->u_arg[1], tcp->u_arg[2]);
|
||||
tprints(", ");
|
||||
printtv(tcp, tcp->u_arg[3]);
|
||||
print_timespec(tcp, tcp->u_arg[3]);
|
||||
}
|
||||
return RVAL_DECODED;
|
||||
}
|
||||
|
4
mq.c
4
mq.c
@ -48,7 +48,7 @@ SYS_FUNC(mq_timedsend)
|
||||
tprintf("%ld, ", tcp->u_arg[0]);
|
||||
printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
|
||||
tprintf(", %lu, %ld, ", tcp->u_arg[2], tcp->u_arg[3]);
|
||||
printtv(tcp, tcp->u_arg[4]);
|
||||
print_timespec(tcp, tcp->u_arg[4]);
|
||||
return RVAL_DECODED;
|
||||
}
|
||||
|
||||
@ -65,7 +65,7 @@ SYS_FUNC(mq_timedreceive)
|
||||
* whether the syscall has failed or not.
|
||||
*/
|
||||
temporarily_clear_syserror(tcp);
|
||||
printtv(tcp, tcp->u_arg[4]);
|
||||
print_timespec(tcp, tcp->u_arg[4]);
|
||||
restore_cleared_syserror(tcp);
|
||||
}
|
||||
return 0;
|
||||
|
10
print_time.c
10
print_time.c
@ -46,6 +46,16 @@ print_timeval_t(const timeval_t *t)
|
||||
tprintf(time_fmt, (intmax_t) t->tv_sec, (intmax_t) t->tv_usec);
|
||||
}
|
||||
|
||||
MPERS_PRINTER_DECL(void, print_timespec)(struct tcb *tcp, const long addr)
|
||||
{
|
||||
timespec_t t;
|
||||
|
||||
if (umove_or_printaddr(tcp, addr, &t))
|
||||
return;
|
||||
|
||||
print_timespec_t(&t);
|
||||
}
|
||||
|
||||
MPERS_PRINTER_DECL(void, print_timespec_utime_pair)(struct tcb *tcp, const long addr)
|
||||
{
|
||||
timespec_t t[2];
|
||||
|
16
time.c
16
time.c
@ -102,14 +102,6 @@ sprinttv(char *buf, struct tcb *tcp, long addr, enum bitness_t bitness, int spec
|
||||
return buf + sprintf(buf, "%#lx", addr);
|
||||
}
|
||||
|
||||
void
|
||||
print_timespec(struct tcb *tcp, long addr)
|
||||
{
|
||||
char buf[TIMESPEC_TEXT_BUFSIZE];
|
||||
sprint_timespec(buf, tcp, addr);
|
||||
tprints(buf);
|
||||
}
|
||||
|
||||
void
|
||||
sprint_timespec(char *buf, struct tcb *tcp, long addr)
|
||||
{
|
||||
@ -314,7 +306,7 @@ SYS_FUNC(clock_settime)
|
||||
{
|
||||
printclockname(tcp->u_arg[0]);
|
||||
tprints(", ");
|
||||
printtv(tcp, tcp->u_arg[1]);
|
||||
print_timespec(tcp, tcp->u_arg[1]);
|
||||
|
||||
return RVAL_DECODED;
|
||||
}
|
||||
@ -325,7 +317,7 @@ SYS_FUNC(clock_gettime)
|
||||
printclockname(tcp->u_arg[0]);
|
||||
tprints(", ");
|
||||
} else {
|
||||
printtv(tcp, tcp->u_arg[1]);
|
||||
print_timespec(tcp, tcp->u_arg[1]);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -337,7 +329,7 @@ SYS_FUNC(clock_nanosleep)
|
||||
tprints(", ");
|
||||
printflags(clockflags, tcp->u_arg[1], "TIMER_???");
|
||||
tprints(", ");
|
||||
printtv(tcp, tcp->u_arg[2]);
|
||||
print_timespec(tcp, tcp->u_arg[2]);
|
||||
tprints(", ");
|
||||
} else {
|
||||
/*
|
||||
@ -346,7 +338,7 @@ SYS_FUNC(clock_nanosleep)
|
||||
*/
|
||||
if (!tcp->u_arg[1] && is_erestart(tcp)) {
|
||||
temporarily_clear_syserror(tcp);
|
||||
printtv(tcp, tcp->u_arg[3]);
|
||||
print_timespec(tcp, tcp->u_arg[3]);
|
||||
restore_cleared_syserror(tcp);
|
||||
} else {
|
||||
printaddr(tcp->u_arg[3]);
|
||||
|
Loading…
x
Reference in New Issue
Block a user