From: Karel Zak Date: Wed, 13 Mar 2013 11:13:11 +0000 (+0100) Subject: include: add timer.h X-Git-Tag: v2.23-rc1~66 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=01acff6e0919ff373ffd9cf94b202d27c6be19a1;p=thirdparty%2Futil-linux.git include: add timer.h Signed-off-by: Karel Zak --- diff --git a/include/Makemodule.am b/include/Makemodule.am index 0c1656d2d0..7ba4593e4c 100644 --- a/include/Makemodule.am +++ b/include/Makemodule.am @@ -39,6 +39,7 @@ dist_noinst_HEADERS += \ include/strutils.h \ include/swapheader.h \ include/sysfs.h \ + include/timer.h \ include/tt.h \ include/ttyutils.h \ include/wholedisk.h \ diff --git a/include/timer.h b/include/timer.h new file mode 100644 index 0000000000..b820453d40 --- /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