Skip to content

Commit 5938526

Browse files
committed
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.
1 parent f94d8d6 commit 5938526

File tree

6 files changed

+22
-21
lines changed

6 files changed

+22
-21
lines changed

defs.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -655,7 +655,6 @@ extern void printtv_bitness(struct tcb *, long, enum bitness_t, int);
655655
#define printtv_special(tcp, addr) \
656656
printtv_bitness((tcp), (addr), BITNESS_CURRENT, 1)
657657
extern char *sprinttv(char *, struct tcb *, long, enum bitness_t, int special);
658-
extern void print_timespec(struct tcb *, long);
659658
extern void sprint_timespec(char *, struct tcb *, long);
660659
extern void printfd(struct tcb *, int);
661660
extern bool print_sockaddr_by_inode(const unsigned long, const char *);

futex.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,11 @@ SYS_FUNC(futex)
3434
case FUTEX_WAIT:
3535
case FUTEX_LOCK_PI:
3636
tprints(", ");
37-
printtv(tcp, timeout);
37+
print_timespec(tcp, timeout);
3838
break;
3939
case FUTEX_WAIT_BITSET:
4040
tprints(", ");
41-
printtv(tcp, timeout);
41+
print_timespec(tcp, timeout);
4242
tprintf(", %x", val3);
4343
break;
4444
case FUTEX_WAKE_BITSET:
@@ -69,7 +69,7 @@ SYS_FUNC(futex)
6969
break;
7070
case FUTEX_WAIT_REQUEUE_PI:
7171
tprints(", ");
72-
printtv(tcp, timeout);
72+
print_timespec(tcp, timeout);
7373
tprints(", ");
7474
printaddr(uaddr2);
7575
break;

ipc_sem.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -99,14 +99,14 @@ SYS_FUNC(semtimedop)
9999
tprint_sembuf_array(tcp, tcp->u_arg[3], tcp->u_arg[1]);
100100
tprints(", ");
101101
#if defined(S390) || defined(S390X)
102-
printtv(tcp, tcp->u_arg[2]);
102+
print_timespec(tcp, tcp->u_arg[2]);
103103
#else
104-
printtv(tcp, tcp->u_arg[4]);
104+
print_timespec(tcp, tcp->u_arg[4]);
105105
#endif
106106
} else {
107107
tprint_sembuf_array(tcp, tcp->u_arg[1], tcp->u_arg[2]);
108108
tprints(", ");
109-
printtv(tcp, tcp->u_arg[3]);
109+
print_timespec(tcp, tcp->u_arg[3]);
110110
}
111111
return RVAL_DECODED;
112112
}

mq.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ SYS_FUNC(mq_timedsend)
4848
tprintf("%ld, ", tcp->u_arg[0]);
4949
printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
5050
tprintf(", %lu, %ld, ", tcp->u_arg[2], tcp->u_arg[3]);
51-
printtv(tcp, tcp->u_arg[4]);
51+
print_timespec(tcp, tcp->u_arg[4]);
5252
return RVAL_DECODED;
5353
}
5454

@@ -65,7 +65,7 @@ SYS_FUNC(mq_timedreceive)
6565
* whether the syscall has failed or not.
6666
*/
6767
temporarily_clear_syserror(tcp);
68-
printtv(tcp, tcp->u_arg[4]);
68+
print_timespec(tcp, tcp->u_arg[4]);
6969
restore_cleared_syserror(tcp);
7070
}
7171
return 0;

print_time.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,16 @@ print_timeval_t(const timeval_t *t)
4646
tprintf(time_fmt, (intmax_t) t->tv_sec, (intmax_t) t->tv_usec);
4747
}
4848

49+
MPERS_PRINTER_DECL(void, print_timespec)(struct tcb *tcp, const long addr)
50+
{
51+
timespec_t t;
52+
53+
if (umove_or_printaddr(tcp, addr, &t))
54+
return;
55+
56+
print_timespec_t(&t);
57+
}
58+
4959
MPERS_PRINTER_DECL(void, print_timespec_utime_pair)(struct tcb *tcp, const long addr)
5060
{
5161
timespec_t t[2];

time.c

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -102,14 +102,6 @@ sprinttv(char *buf, struct tcb *tcp, long addr, enum bitness_t bitness, int spec
102102
return buf + sprintf(buf, "%#lx", addr);
103103
}
104104

105-
void
106-
print_timespec(struct tcb *tcp, long addr)
107-
{
108-
char buf[TIMESPEC_TEXT_BUFSIZE];
109-
sprint_timespec(buf, tcp, addr);
110-
tprints(buf);
111-
}
112-
113105
void
114106
sprint_timespec(char *buf, struct tcb *tcp, long addr)
115107
{
@@ -314,7 +306,7 @@ SYS_FUNC(clock_settime)
314306
{
315307
printclockname(tcp->u_arg[0]);
316308
tprints(", ");
317-
printtv(tcp, tcp->u_arg[1]);
309+
print_timespec(tcp, tcp->u_arg[1]);
318310

319311
return RVAL_DECODED;
320312
}
@@ -325,7 +317,7 @@ SYS_FUNC(clock_gettime)
325317
printclockname(tcp->u_arg[0]);
326318
tprints(", ");
327319
} else {
328-
printtv(tcp, tcp->u_arg[1]);
320+
print_timespec(tcp, tcp->u_arg[1]);
329321
}
330322
return 0;
331323
}
@@ -337,7 +329,7 @@ SYS_FUNC(clock_nanosleep)
337329
tprints(", ");
338330
printflags(clockflags, tcp->u_arg[1], "TIMER_???");
339331
tprints(", ");
340-
printtv(tcp, tcp->u_arg[2]);
332+
print_timespec(tcp, tcp->u_arg[2]);
341333
tprints(", ");
342334
} else {
343335
/*
@@ -346,7 +338,7 @@ SYS_FUNC(clock_nanosleep)
346338
*/
347339
if (!tcp->u_arg[1] && is_erestart(tcp)) {
348340
temporarily_clear_syserror(tcp);
349-
printtv(tcp, tcp->u_arg[3]);
341+
print_timespec(tcp, tcp->u_arg[3]);
350342
restore_cleared_syserror(tcp);
351343
} else {
352344
printaddr(tcp->u_arg[3]);

0 commit comments

Comments
 (0)