cacab036a2ee4c58664c46a4ff117fe753415d92
[musl] / src / signal / setitimer.c
1 #include <sys/time.h>
2 #include "syscall.h"
3
4 int setitimer(int which, const struct itimerval *new, struct itimerval *old)
5 {
6         int ret;
7         long knew[4] = {
8                 new->it_interval.tv_sec, new->it_interval.tv_usec,
9                 new->it_value.tv_sec, new->it_value.tv_usec
10         }, kold[4];
11
12         if (!(ret = syscall3(__NR_setitimer, which, (long)&knew, old ? (long)&kold : 0)) && old)
13                 *old = (struct itimerval){ { kold[0], kold[1] }, { kold[2], kold[3] } };
14         return ret;
15 }