return RVAL_DECODED;
}
-SYS_FUNC(rt_sigtimedwait)
+static int
+do_rt_sigtimedwait(struct tcb *const tcp, const print_obj_by_addr_fn print_ts,
+ const sprint_obj_by_addr_fn sprint_ts)
{
/* NB: kernel requires arg[3] == NSIG_BYTES */
if (entering(tcp)) {
*/
printaddr(tcp->u_arg[1]);
tprints(", ");
- print_timespec(tcp, tcp->u_arg[2]);
+ print_ts(tcp, tcp->u_arg[2]);
tprintf(", %" PRI_klu, tcp->u_arg[3]);
} else {
- char *sts = xstrdup(sprint_timespec(tcp, tcp->u_arg[2]));
+ char *sts = xstrdup(sprint_ts(tcp, tcp->u_arg[2]));
set_tcb_priv_data(tcp, sts, free);
}
} else {
return 0;
}
+SYS_FUNC(rt_sigtimedwait)
+{
+ return do_rt_sigtimedwait(tcp, print_timespec, sprint_timespec);
+}
+
SYS_FUNC(restart_syscall)
{
tprintf("<... resuming interrupted %s ...>",