aboutsummaryrefslogtreecommitdiff
path: root/common/uapi/timers.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/uapi/timers.c')
-rw-r--r--common/uapi/timers.c31
1 files changed, 17 insertions, 14 deletions
diff --git a/common/uapi/timers.c b/common/uapi/timers.c
index b7c0ddd..929b630 100644
--- a/common/uapi/timers.c
+++ b/common/uapi/timers.c
@@ -35,18 +35,17 @@ static ticks_t scaled_ticks(sys_arg_t ticks, sys_arg_t mult)
/**
* Timebase syscall handler.
*
+ * @param t Current tcb.
* @return \ref OK and timebase in second argument if 64bit, otherwise high 32
* bits of timebase in second argument and low 32 bits in third argument.
*/
SYSCALL_DEFINE0(timebase)(struct tcb *t)
{
- UNUSED(t);
-
ticks_t tm = secs_to_ticks(1);
#if defined(_LP64)
- return SYS_RET2(OK, tm);
+ return_args(t, SYS_RET2(OK, tm));
#else
- return SYS_RET3(OK, tm >> 32, tm);
+ return_args(t, SYS_RET3(OK, tm >> 32, tm));
#endif
}
@@ -57,18 +56,17 @@ SYSCALL_DEFINE0(timebase)(struct tcb *t)
* should be preferred over this syscall on such platforms. Still, for
* completeness sake.
*
+ * @param t Current tcb.
* @return \ref OK and the current ticks when on 64bit systems, otherwise high
* 32 bits of ticks in second argument and low 32 bits in third.
*/
SYSCALL_DEFINE0(ticks)(struct tcb *t)
{
- UNUSED(t);
-
ticks_t tm = current_ticks();
#if defined(_LP64)
- return SYS_RET2(OK, tm);
+ return_args(t, SYS_RET2(OK, tm));
#else
- return SYS_RET3(OK, tm >> 32, tm);
+ return_args(t, SYS_RET3(OK, tm >> 32, tm));
#endif
}
@@ -79,18 +77,22 @@ SYSCALL_DEFINE0(ticks)(struct tcb *t)
* enough to contain essentially any timepoint we want. A couple thousand years
* when the clock runs at 5GHz, if I'm not completely mistaken.
*
+ * @param t Current tcb.
* @param ticks Number of ticks from now.
* @param mult Multiply \c ticks by this value.
* @return \ref OK and \c cid of created timer.
*/
SYSCALL_DEFINE2(req_rel_timer)(struct tcb *t, sys_arg_t ticks, sys_arg_t mult)
{
- return SYS_RET2(OK, new_rel_timer(t->tid, scaled_ticks(ticks, mult)));
+ return_args(t,
+ SYS_RET2(OK,
+ new_rel_timer(t->tid, scaled_ticks(ticks, mult))));
}
/**
* Absolute timer request syscall handler.
*
+ * @param t Current tcb.
* @param ticks Absolute timepoint relative to some start point defined at boot.
* @param mult Multiply \c ticks by this value.
* @return \ref OK and \c cid of created timer.
@@ -98,24 +100,25 @@ SYSCALL_DEFINE2(req_rel_timer)(struct tcb *t, sys_arg_t ticks, sys_arg_t mult)
*/
SYSCALL_DEFINE2(req_abs_timer)(struct tcb *t, sys_arg_t ticks, sys_arg_t mult)
{
- return SYS_RET2(OK, new_abs_timer(t->tid, scaled_ticks(ticks, mult)));
+ return_args(t,
+ SYS_RET2(OK,
+ new_abs_timer(t->tid, scaled_ticks(ticks, mult))));
}
/**
* Free timer request syscall handler.
*
+ * @param t Current tcb.
* @param cid \c cid of timer to free.
* @return \ref ERR_NF and \c 0if no timer could be found with \c cid, \ref OK
* and 0 otherwise.
*/
SYSCALL_DEFINE1(free_timer)(struct tcb *t, sys_arg_t cid)
{
- UNUSED(t);
-
struct timer *timer = find_timer(cid);
if (!timer)
- return SYS_RET1(ERR_NF);
+ return_args(t, SYS_RET1(ERR_NF));
remove_timer(timer);
- return SYS_RET1(OK);
+ return_args(t, SYS_RET1(OK));
}