blob: 6b364b2e20740e8da59d99c40c5e73530f34d971 [file] [log] [blame]
John Stultzff3ead92011-01-11 09:42:13 -08001#ifndef _LINUX_ALARMTIMER_H
2#define _LINUX_ALARMTIMER_H
3
4#include <linux/time.h>
5#include <linux/hrtimer.h>
6#include <linux/timerqueue.h>
7#include <linux/rtc.h>
8
9enum alarmtimer_type {
10 ALARM_REALTIME,
11 ALARM_BOOTTIME,
12
13 ALARM_NUMTYPE,
14};
15
16struct alarm {
17 struct timerqueue_node node;
18 ktime_t period;
19 void (*function)(struct alarm *);
20 enum alarmtimer_type type;
21 char enabled;
22 void *data;
23};
24
25void alarm_init(struct alarm *alarm, enum alarmtimer_type type,
26 void (*function)(struct alarm *));
27void alarm_start(struct alarm *alarm, ktime_t start, ktime_t period);
28void alarm_cancel(struct alarm *alarm);
29
30#endif