extern int gettime_monotonic(struct timeval *tv);
extern int setup_timer(timer_t * t_id, struct itimerval *timeout,
- void (*timeout_handler)(void));
+ void (*timeout_handler)(int, siginfo_t *, void *));
extern void cancel_timer(timer_t * t_id);
#endif /* UTIL_LINUX_BOOTTIME_H */
}
int setup_timer(timer_t * t_id, struct itimerval *timeout,
- void (*timeout_handler)(void))
+ void (*timeout_handler)(int, siginfo_t *, void *))
{
struct sigaction sig_a;
static struct sigevent sig_e = {
if (sigemptyset(&sig_a.sa_mask))
return 1;
+
sig_a.sa_flags = SA_SIGINFO;
- sig_a.sa_handler = timeout_handler;
+ sig_a.sa_sigaction = timeout_handler;
+
if (sigaction(SIGALRM, &sig_a, 0))
return 1;
if (timer_create(CLOCK_MONOTONIC, &sig_e, t_id))