Blame view
include/linux/alarmtimer.h
1.64 KB
ff3ead96d
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#ifndef _LINUX_ALARMTIMER_H #define _LINUX_ALARMTIMER_H #include <linux/time.h> #include <linux/hrtimer.h> #include <linux/timerqueue.h> #include <linux/rtc.h> enum alarmtimer_type { ALARM_REALTIME, ALARM_BOOTTIME, ALARM_NUMTYPE, }; |
4b41308d2
|
15 16 17 18 |
enum alarmtimer_restart { ALARMTIMER_NORESTART, ALARMTIMER_RESTART, }; |
a28cde81a
|
19 20 21 |
#define ALARMTIMER_STATE_INACTIVE 0x00 #define ALARMTIMER_STATE_ENQUEUED 0x01 |
a28cde81a
|
22 |
|
180bf812c
|
23 24 25 26 27 28 29 30 31 32 |
/** * struct alarm - Alarm timer structure * @node: timerqueue node for adding to the event list this value * also includes the expiration time. * @period: Period for recuring alarms * @function: Function pointer to be executed when the timer fires. * @type: Alarm type (BOOTTIME/REALTIME) * @enabled: Flag that represents if the alarm is set to fire or not * @data: Internal data value. */ |
ff3ead96d
|
33 34 |
struct alarm { struct timerqueue_node node; |
dae373be9
|
35 |
struct hrtimer timer; |
4b41308d2
|
36 |
enum alarmtimer_restart (*function)(struct alarm *, ktime_t now); |
ff3ead96d
|
37 |
enum alarmtimer_type type; |
a28cde81a
|
38 |
int state; |
ff3ead96d
|
39 40 41 42 |
void *data; }; void alarm_init(struct alarm *alarm, enum alarmtimer_type type, |
4b41308d2
|
43 |
enum alarmtimer_restart (*function)(struct alarm *, ktime_t)); |
dae373be9
|
44 |
int alarm_start(struct alarm *alarm, ktime_t start); |
6cffe00f7
|
45 46 |
int alarm_start_relative(struct alarm *alarm, ktime_t start); void alarm_restart(struct alarm *alarm); |
9082c465a
|
47 48 |
int alarm_try_to_cancel(struct alarm *alarm); int alarm_cancel(struct alarm *alarm); |
ff3ead96d
|
49 |
|
dce75a8c7
|
50 |
u64 alarm_forward(struct alarm *alarm, ktime_t now, ktime_t interval); |
6cffe00f7
|
51 52 |
u64 alarm_forward_now(struct alarm *alarm, ktime_t interval); ktime_t alarm_expires_remaining(const struct alarm *alarm); |
dce75a8c7
|
53 |
|
57c498fa5
|
54 55 |
/* Provide way to access the rtc device being used by alarmtimers */ struct rtc_device *alarmtimer_get_rtcdev(void); |
ff3ead96d
|
56 |
#endif |