libm: fix nexttoward failures, fixed by sorear
[uclibc-ng.git] / librt / timer_settime.c
blob425cd7ee94c5f75f680dc22afe14fb78ea06c80d
1 /*
2 * timer_settime.c - set the timer.
3 */
5 #include <errno.h>
6 #include <stdlib.h>
7 #include <time.h>
8 #include <sys/syscall.h>
10 #include "kernel-posix-timers.h"
12 #if defined(__NR_timer_settime) || defined(__NR_timer_settime64)
14 #if defined(__UCLIBC_USE_TIME64__) && defined(__NR_timer_settime64)
15 #include "internal/time64_helpers.h"
17 int timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue)
19 struct timer *kt = (struct timer *)timerid;
21 return INLINE_SYSCALL(timer_settime64, 4, kt->ktimerid, flags, TO_ITS64_P(value), ovalue);
23 #else
24 #define __NR___syscall_timer_settime __NR_timer_settime
26 static __inline__ _syscall4(int, __syscall_timer_settime, kernel_timer_t, ktimerid,
27 int, flags, const void *, value, void *, ovalue);
29 /* Set the expiration time for a timer */
30 int timer_settime(timer_t timerid, int flags, const struct itimerspec *value,
31 struct itimerspec *ovalue)
33 struct timer *kt = (struct timer *)timerid;
35 /* Set timeout */
36 return __syscall_timer_settime(kt->ktimerid, flags, value, ovalue);
39 #endif
40 #endif