include: add timer.h

Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
Karel Zak 2013-03-13 12:13:11 +01:00
parent 880c4045e5
commit 01acff6e09
2 changed files with 32 additions and 0 deletions

View File

@ -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 \

31
include/timer.h Normal file
View File

@ -0,0 +1,31 @@
#ifndef UTIL_LINUX_TIMER_H
#define UTIL_LINUX_TIMER_H
#include <signal.h>
#include <sys/time.h>
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