include: add timer.h
Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
parent
880c4045e5
commit
01acff6e09
|
@ -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 \
|
||||
|
|
|
@ -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
|
Loading…
Reference in New Issue