chiark / gitweb /
[PATCH] add IGNORE rule type
[elogind.git] / klibc / klibc / alarm.c
1 /*
2  * alarm.c
3  */
4
5 #include <sys/time.h>
6 #include <sys/syscall.h>
7
8 #ifdef __NR_alarm
9
10 _syscall1(unsigned int,alarm,unsigned int,seconds);
11
12 #else
13
14 /* Emulate alarm() via setitimer() */
15
16 unsigned int alarm(unsigned int seconds)
17 {
18   struct itimerval iv;
19
20   iv.it_interval.tv_sec = iv.it_interval.tv_usec = 0;
21   iv.it_value.tv_sec = seconds;
22   iv.it_value.tv_usec = 0;
23
24   setitimer(ITIMER_REAL, &iv, &iv);
25
26   return iv.it_value.tv_sec + (iv.it_value.tv_usec ? 1 : 0);
27 }
28
29 #endif