1 #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 9 enum alarmtimer_type { 10 ALARM_REALTIME, 11 ALARM_BOOTTIME, 12 13 ALARM_NUMTYPE, 14 }; 15 16 struct 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 25 void alarm_init(struct alarm *alarm, enum alarmtimer_type type, 26 void (*function)(struct alarm *)); 27 void alarm_start(struct alarm *alarm, ktime_t start, ktime_t period); 28 void alarm_cancel(struct alarm *alarm); 29 30 #endif 31