Blame view
include/linux/alarmtimer.h
1.94 KB
ff3ead96d timers: Introduce... |
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 alarmtimers: Chan... |
15 16 17 18 |
enum alarmtimer_restart { ALARMTIMER_NORESTART, ALARMTIMER_RESTART, }; |
a28cde81a alarmtimers: Add ... |
19 20 21 22 |
#define ALARMTIMER_STATE_INACTIVE 0x00 #define ALARMTIMER_STATE_ENQUEUED 0x01 #define ALARMTIMER_STATE_CALLBACK 0x02 |
180bf812c timers: Improve a... |
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 timers: Introduce... |
33 34 |
struct alarm { struct timerqueue_node node; |
4b41308d2 alarmtimers: Chan... |
35 |
enum alarmtimer_restart (*function)(struct alarm *, ktime_t now); |
ff3ead96d timers: Introduce... |
36 |
enum alarmtimer_type type; |
a28cde81a alarmtimers: Add ... |
37 |
int state; |
ff3ead96d timers: Introduce... |
38 39 40 41 |
void *data; }; void alarm_init(struct alarm *alarm, enum alarmtimer_type type, |
4b41308d2 alarmtimers: Chan... |
42 |
enum alarmtimer_restart (*function)(struct alarm *, ktime_t)); |
9e2647624 alarmtimers: Remo... |
43 |
void alarm_start(struct alarm *alarm, ktime_t start); |
9082c465a alarmtimers: Add ... |
44 45 |
int alarm_try_to_cancel(struct alarm *alarm); int alarm_cancel(struct alarm *alarm); |
ff3ead96d timers: Introduce... |
46 |
|
dce75a8c7 alarmtimers: Add ... |
47 |
u64 alarm_forward(struct alarm *alarm, ktime_t now, ktime_t interval); |
a28cde81a alarmtimers: Add ... |
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
/* * A alarmtimer is active, when it is enqueued into timerqueue or the * callback function is running. */ static inline int alarmtimer_active(const struct alarm *timer) { return timer->state != ALARMTIMER_STATE_INACTIVE; } /* * Helper function to check, whether the timer is on one of the queues */ static inline int alarmtimer_is_queued(struct alarm *timer) { return timer->state & ALARMTIMER_STATE_ENQUEUED; } /* * Helper function to check, whether the timer is running the callback * function */ static inline int alarmtimer_callback_running(struct alarm *timer) { return timer->state & ALARMTIMER_STATE_CALLBACK; } |
ff3ead96d timers: Introduce... |
73 |
#endif |