aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/hrtimer.h
diff options
context:
space:
mode:
authorBjoern B. Brandenburg <bbb@cs.unc.edu>2009-04-22 23:01:44 -0400
committerBjoern B. Brandenburg <bbb@cs.unc.edu>2009-04-22 23:01:44 -0400
commitb5c4ababa76ce94cfa276f620b81d7d0f1d8ebf1 (patch)
treebc8c705a7b1b8e11c6789cecb5f6d9c3be09dad0 /include/linux/hrtimer.h
parentfc757f4223edfab215d6e49cee479a09ecc17962 (diff)
hrtimer: add support for starting timers on remote CPUs
This depends on the ability to send the special 'pull_timers' IPI even with IRQs disabled.
Diffstat (limited to 'include/linux/hrtimer.h')
-rw-r--r--include/linux/hrtimer.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h
index 7a9398e197..4f45c83151 100644
--- a/include/linux/hrtimer.h
+++ b/include/linux/hrtimer.h
@@ -200,6 +200,19 @@ struct hrtimer_cpu_base {
200 struct list_head cb_pending; 200 struct list_head cb_pending;
201 unsigned long nr_events; 201 unsigned long nr_events;
202#endif 202#endif
203 struct list_head to_pull;
204};
205
206#define HRTIMER_START_ON_INACTIVE 0
207#define HRTIMER_START_ON_QUEUED 1
208#define HRTIMER_START_ON_PROCESSED 2
209
210struct hrtimer_start_on_info {
211 struct list_head list;
212 struct hrtimer* timer;
213 ktime_t time;
214 enum hrtimer_mode mode;
215 atomic_t state;
203}; 216};
204 217
205#ifdef CONFIG_HIGH_RES_TIMERS 218#ifdef CONFIG_HIGH_RES_TIMERS
@@ -262,6 +275,9 @@ extern void hrtimer_init(struct hrtimer *timer, clockid_t which_clock,
262/* Basic timer operations: */ 275/* Basic timer operations: */
263extern int hrtimer_start(struct hrtimer *timer, ktime_t tim, 276extern int hrtimer_start(struct hrtimer *timer, ktime_t tim,
264 const enum hrtimer_mode mode); 277 const enum hrtimer_mode mode);
278extern int hrtimer_start_on(int cpu, struct hrtimer_start_on_info* info,
279 struct hrtimer *timer, ktime_t time,
280 const enum hrtimer_mode mode);
265extern int hrtimer_cancel(struct hrtimer *timer); 281extern int hrtimer_cancel(struct hrtimer *timer);
266extern int hrtimer_try_to_cancel(struct hrtimer *timer); 282extern int hrtimer_try_to_cancel(struct hrtimer *timer);
267 283