From 01acff6e0919ff373ffd9cf94b202d27c6be19a1 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Wed, 13 Mar 2013 12:13:11 +0100 Subject: include: add timer.h Signed-off-by: Karel Zak --- include/timer.h | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 include/timer.h (limited to 'include/timer.h') diff --git a/include/timer.h b/include/timer.h new file mode 100644 index 000000000..b820453d4 --- /dev/null +++ b/include/timer.h @@ -0,0 +1,31 @@ +#ifndef UTIL_LINUX_TIMER_H +#define UTIL_LINUX_TIMER_H + +#include +#include + +static inline void setup_timer( + struct itimerval *timer, + struct itimerval *old_timer, + struct sigaction *old_sa, + void (*timeout_handler)(int)) +{ + struct sigaction sa; + + memset(&sa, 0, sizeof sa); + sa.sa_handler = timeout_handler; + sa.sa_flags = SA_RESETHAND; + sigaction(SIGALRM, &sa, old_sa); + + setitimer(ITIMER_REAL, timer, old_timer); +} + +static inline void cancel_timer( + struct itimerval *old_timer, + struct sigaction *old_sa) +{ + setitimer(ITIMER_REAL, old_timer, NULL); + sigaction(SIGALRM, old_sa, NULL); +} + +#endif -- cgit v1.2.3-55-g7522