tprintf("NULL");
else if (!verbose(tcp))
tprintf("%#lx", addr);
- else
- {
- int rc;
+ else {
+ int rc;
if (bitness == BITNESS_32
#if defined(LINUX) && SUPPORTED_PERSONALITIES > 1
else
tprint_timeval32(tcp, &tv);
}
- } else
- {
+ } else {
struct timeval tv;
if ((rc = umove(tcp, addr, &tv)) >= 0) {
tprint_timeval(tcp, &tv);
}
}
-
if (rc < 0)
tprintf("{...}");
}
strcpy(buf, "NULL");
else if (!verbose(tcp))
sprintf(buf, "%#lx", addr);
- else
- {
- int rc;
+ else {
+ int rc;
if (bitness == BITNESS_32
#if defined(LINUX) && SUPPORTED_PERSONALITIES > 1
if ((rc = umove(tcp, addr, &tv)) >= 0)
sprintf(buf, "{%u, %u}",
tv.tv_sec, tv.tv_usec);
- } else
- {
+ } else {
struct timeval tv;
if ((rc = umove(tcp, addr, &tv)) >= 0)
(unsigned long) tv.tv_sec,
(unsigned long) tv.tv_usec);
}
-
if (rc < 0)
strcpy(buf, "{...}");
}
}
-void print_timespec (struct tcb *tcp, long addr)
+void print_timespec(struct tcb *tcp, long addr)
{
if (addr == 0)
tprintf("NULL");
else if (!verbose(tcp))
tprintf("%#lx", addr);
else {
- int rc;
+ int rc;
#if defined(LINUX) && SUPPORTED_PERSONALITIES > 1
- if (personality_wordsize[current_personality] == 4)
- {
+ if (personality_wordsize[current_personality] == 4) {
struct timeval32 tv;
if ((rc = umove(tcp, addr, &tv)) >= 0)
tprintf("{%u, %u}",
tv.tv_sec, tv.tv_usec);
} else
- {
#endif
+ {
struct timespec ts;
if ((rc = umove(tcp, addr, &ts)) >= 0)
tprintf("{%lu, %lu}",
(unsigned long) ts.tv_sec,
(unsigned long) ts.tv_nsec);
-#if defined(LINUX) && SUPPORTED_PERSONALITIES > 1
}
-#endif
-
if (rc < 0)
tprintf("{...}");
}
}
-void sprint_timespec (char *buf, struct tcb *tcp, long addr)
+void sprint_timespec(char *buf, struct tcb *tcp, long addr)
{
if (addr == 0)
strcpy(buf, "NULL");
else if (!verbose(tcp))
sprintf(buf, "%#lx", addr);
else {
- int rc;
+ int rc;
#if defined(LINUX) && SUPPORTED_PERSONALITIES > 1
- if (personality_wordsize[current_personality] == 4)
- {
+ if (personality_wordsize[current_personality] == 4) {
struct timeval32 tv;
if ((rc = umove(tcp, addr, &tv)) >= 0)
sprintf(buf, "{%u, %u}",
tv.tv_sec, tv.tv_usec);
} else
- {
#endif
+ {
struct timespec ts;
if ((rc = umove(tcp, addr, &ts)) >= 0)
sprintf(buf, "{%lu, %lu}",
(unsigned long) ts.tv_sec,
(unsigned long) ts.tv_nsec);
-#if defined(LINUX) && SUPPORTED_PERSONALITIES > 1
}
-#endif
-
if (rc < 0)
strcpy(buf, "{...}");
}
}
int
-sys_time(tcp)
-struct tcb *tcp;
+sys_time(struct tcb *tcp)
{
if (exiting(tcp)) {
#ifndef SVR4
}
int
-sys_stime(tcp)
-struct tcb *tcp;
+sys_stime(struct tcb *tcp)
{
if (exiting(tcp)) {
printnum(tcp, tcp->u_arg[0], "%ld");
}
int
-sys_gettimeofday(tcp)
-struct tcb *tcp;
+sys_gettimeofday(struct tcb *tcp)
{
if (exiting(tcp)) {
if (syserror(tcp)) {
#ifdef ALPHA
int
-sys_osf_gettimeofday(tcp)
-struct tcb *tcp;
+sys_osf_gettimeofday(struct tcb *tcp)
{
- if (exiting(tcp)) {
- if (syserror(tcp)) {
- tprintf("%#lx, %#lx",
- tcp->u_arg[0], tcp->u_arg[1]);
- return 0;
- }
- printtv_bitness(tcp, tcp->u_arg[0], BITNESS_32, 0);
+ if (exiting(tcp)) {
+ if (syserror(tcp)) {
+ tprintf("%#lx, %#lx", tcp->u_arg[0], tcp->u_arg[1]);
+ return 0;
+ }
+ printtv_bitness(tcp, tcp->u_arg[0], BITNESS_32, 0);
#ifndef SVR4
- tprintf(", ");
- printtv_bitness(tcp, tcp->u_arg[1], BITNESS_32, 0);
+ tprintf(", ");
+ printtv_bitness(tcp, tcp->u_arg[1], BITNESS_32, 0);
#endif /* !SVR4 */
- }
- return 0;
+ }
+ return 0;
}
#endif
int
-sys_settimeofday(tcp)
-struct tcb *tcp;
+sys_settimeofday(struct tcb *tcp)
{
if (entering(tcp)) {
printtv(tcp, tcp->u_arg[0]);
#ifdef ALPHA
int
-sys_osf_settimeofday(tcp)
-struct tcb *tcp;
+sys_osf_settimeofday(struct tcb *tcp)
{
- if (entering(tcp)) {
- printtv_bitness(tcp, tcp->u_arg[0], BITNESS_32, 0);
+ if (entering(tcp)) {
+ printtv_bitness(tcp, tcp->u_arg[0], BITNESS_32, 0);
#ifndef SVR4
- tprintf(", ");
- printtv_bitness(tcp, tcp->u_arg[1], BITNESS_32, 0);
+ tprintf(", ");
+ printtv_bitness(tcp, tcp->u_arg[1], BITNESS_32, 0);
#endif /* !SVR4 */
- }
- return 0;
+ }
+ return 0;
}
#endif
int
-sys_adjtime(tcp)
-struct tcb *tcp;
+sys_adjtime(struct tcb *tcp)
{
if (entering(tcp)) {
printtv(tcp, tcp->u_arg[0]);
return 0;
}
+int
+sys_nanosleep(struct tcb *tcp)
+{
+ if (entering(tcp)) {
+ print_timespec(tcp, tcp->u_arg[0]);
+ tprintf(", ");
+ } else {
+ if (!tcp->u_arg[1] || is_restart_error(tcp))
+ print_timespec(tcp, tcp->u_arg[1]);
+ else
+ tprintf("%#lx", tcp->u_arg[1]);
+ }
+ return 0;
+}
+
static const struct xlat which[] = {
{ ITIMER_REAL, "ITIMER_REAL" },
{ ITIMER_VIRTUAL,"ITIMER_VIRTUAL"},
tprintf("NULL");
else if (!verbose(tcp))
tprintf("%#lx", addr);
- else
- {
- int rc;
+ else {
+ int rc;
if (bitness == BITNESS_32
#if defined(LINUX) && SUPPORTED_PERSONALITIES > 1
#endif
)
{
- struct
- {
+ struct {
struct timeval32 it_interval, it_value;
} itv;
tprint_timeval32(tcp, &itv.it_value);
tprintf("}");
}
- } else
- {
+ } else {
struct itimerval itv;
if ((rc = umove(tcp, addr, &itv)) >= 0) {
tprintf("}");
}
}
-
if (rc < 0)
tprintf("{...}");
}
printitv_bitness((tcp), (addr), BITNESS_CURRENT)
int
-sys_getitimer(tcp)
-struct tcb *tcp;
+sys_getitimer(struct tcb *tcp)
{
if (entering(tcp)) {
printxval(which, tcp->u_arg[0], "ITIMER_???");
#ifdef ALPHA
int
-sys_osf_getitimer(tcp)
-struct tcb *tcp;
-{
- if (entering(tcp)) {
- printxval(which, tcp->u_arg[0], "ITIMER_???");
- tprintf(", ");
- } else {
- if (syserror(tcp))
- tprintf("%#lx", tcp->u_arg[1]);
- else
- printitv_bitness(tcp, tcp->u_arg[1], BITNESS_32);
- }
- return 0;
+sys_osf_getitimer(struct tcb *tcp)
+{
+ if (entering(tcp)) {
+ printxval(which, tcp->u_arg[0], "ITIMER_???");
+ tprintf(", ");
+ } else {
+ if (syserror(tcp))
+ tprintf("%#lx", tcp->u_arg[1]);
+ else
+ printitv_bitness(tcp, tcp->u_arg[1], BITNESS_32);
+ }
+ return 0;
}
#endif
int
-sys_setitimer(tcp)
-struct tcb *tcp;
+sys_setitimer(struct tcb *tcp)
{
if (entering(tcp)) {
printxval(which, tcp->u_arg[0], "ITIMER_???");
#ifdef ALPHA
int
-sys_osf_setitimer(tcp)
-struct tcb *tcp;
-{
- if (entering(tcp)) {
- printxval(which, tcp->u_arg[0], "ITIMER_???");
- tprintf(", ");
- printitv_bitness(tcp, tcp->u_arg[1], BITNESS_32);
- tprintf(", ");
- } else {
- if (syserror(tcp))
- tprintf("%#lx", tcp->u_arg[2]);
- else
- printitv_bitness(tcp, tcp->u_arg[2], BITNESS_32);
- }
- return 0;
+sys_osf_setitimer(struct tcb *tcp)
+{
+ if (entering(tcp)) {
+ printxval(which, tcp->u_arg[0], "ITIMER_???");
+ tprintf(", ");
+ printitv_bitness(tcp, tcp->u_arg[1], BITNESS_32);
+ tprintf(", ");
+ } else {
+ if (syserror(tcp))
+ tprintf("%#lx", tcp->u_arg[2]);
+ else
+ printitv_bitness(tcp, tcp->u_arg[2], BITNESS_32);
+ }
+ return 0;
}
#endif
static int
tprint_timex32(struct tcb *tcp, long addr)
{
- struct
- {
+ struct {
unsigned int modes;
int offset;
int freq;
tprintf("%#lx", tcp->u_arg[0]);
else if (tprint_timex(tcp, tcp->u_arg[0]) < 0)
tprintf("{...}");
+ if (syserror(tcp))
+ return 0;
tcp->auxstr = xlookup(adjtimex_state, tcp->u_rval);
if (tcp->auxstr)
return RVAL_STR;
#ifdef CLOCK_MONOTONIC
{ CLOCK_MONOTONIC, "CLOCK_MONOTONIC" },
#endif
- { 0, NULL }
+#ifdef CLOCK_PROCESS_CPUTIME_ID
+ { CLOCK_PROCESS_CPUTIME_ID, "CLOCK_PROCESS_CPUTIME_ID" },
+#endif
+#ifdef CLOCK_THREAD_CPUTIME_ID
+ { CLOCK_THREAD_CPUTIME_ID, "CLOCK_THREAD_CPUTIME_ID" },
+#endif
+#ifdef CLOCK_MONOTONIC_RAW
+ { CLOCK_MONOTONIC_RAW, "CLOCK_MONOTONIC_RAW" },
+#endif
+#ifdef CLOCK_REALTIME_COARSE
+ { CLOCK_REALTIME_COARSE, "CLOCK_REALTIME_COARSE" },
+#endif
+#ifdef CLOCK_MONOTONIC_COARSE
+ { CLOCK_MONOTONIC_COARSE, "CLOCK_MONOTONIC_COARSE" },
+#endif
+ { 0, NULL }
};
int
-sys_clock_settime(tcp)
-struct tcb *tcp;
+sys_clock_settime(struct tcb *tcp)
{
if (entering(tcp)) {
printxval(clocknames, tcp->u_arg[0], "CLOCK_???");
}
int
-sys_clock_gettime(tcp)
-struct tcb *tcp;
+sys_clock_gettime(struct tcb *tcp)
{
if (entering(tcp)) {
printxval(clocknames, tcp->u_arg[0], "CLOCK_???");
}
int
-sys_clock_nanosleep(tcp)
-struct tcb *tcp;
+sys_clock_nanosleep(struct tcb *tcp)
{
if (entering(tcp)) {
printxval(clocknames, tcp->u_arg[0], "CLOCK_???");
static void
printsigevent32(struct tcb *tcp, long arg)
{
- struct
- {
+ struct {
int sigev_value;
int sigev_signo;
int sigev_notify;
- union
- {
+ union {
int tid;
- struct
- {
+ struct {
int function, attribute;
} thread;
} un;
if (umove(tcp, arg, &sev) < 0)
tprintf("{...}");
- else
- {
+ else {
tprintf("{%#x, ", sev.sigev_value);
if (sev.sigev_notify == SIGEV_SIGNAL)
tprintf("%s, ", signame(sev.sigev_signo));
}
int
-sys_timer_create(tcp)
-struct tcb *tcp;
+sys_timer_create(struct tcb *tcp)
{
if (entering(tcp)) {
printxval(clocknames, tcp->u_arg[0], "CLOCK_???");
}
int
-sys_timer_settime(tcp)
-struct tcb *tcp;
+sys_timer_settime(struct tcb *tcp)
{
if (entering(tcp)) {
tprintf("%#lx, ", tcp->u_arg[0]);
}
int
-sys_timer_gettime(tcp)
-struct tcb *tcp;
+sys_timer_gettime(struct tcb *tcp)
{
if (entering(tcp)) {
tprintf("%#lx, ", tcp->u_arg[0]);
}
static void
-print_rtc(tcp, rt)
-struct tcb *tcp;
-const struct rtc_time *rt;
+print_rtc(struct tcb *tcp, const struct rtc_time *rt)
{
tprintf("{tm_sec=%d, tm_min=%d, tm_hour=%d, "
"tm_mday=%d, tm_mon=%d, tm_year=%d, ",
}
int
-rtc_ioctl(tcp, code, arg)
-struct tcb *tcp;
-long code;
-long arg;
+rtc_ioctl(struct tcb *tcp, long code, long arg)
{
switch (code) {
case RTC_ALM_SET:
};
int
-sys_timerfd(tcp)
-struct tcb *tcp;
+sys_timerfd(struct tcb *tcp)
{
if (entering(tcp)) {
/* It does not matter that the kernel uses itimerspec. */
}
return 0;
}
+
+int
+sys_timerfd_create(struct tcb *tcp)
+{
+ if (entering(tcp)) {
+ printxval(clocknames, tcp->u_arg[0], "CLOCK_???");
+ tprintf(", ");
+ printflags(timerfdflags, tcp->u_arg[1], "TFD_???");
+ }
+ return 0;
+}
+
+int
+sys_timerfd_settime(struct tcb *tcp)
+{
+ if (entering(tcp)) {
+ printfd(tcp, tcp->u_arg[0]);
+ tprintf(", ");
+ printflags(timerfdflags, tcp->u_arg[1], "TFD_???");
+ tprintf(", ");
+ printitv(tcp, tcp->u_arg[2]);
+ tprintf(", ");
+ printitv(tcp, tcp->u_arg[3]);
+ }
+ return 0;
+}
+
+int
+sys_timerfd_gettime(struct tcb *tcp)
+{
+ if (entering(tcp)) {
+ printfd(tcp, tcp->u_arg[0]);
+ tprintf(", ");
+ printitv(tcp, tcp->u_arg[1]);
+ }
+ return 0;
+}
+
#endif /* LINUX */