aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/hrtimer.h
diff options
context:
space:
mode:
authorAndrea Bastoni <bastoni@cs.unc.edu>2010-05-29 23:35:01 -0400
committerAndrea Bastoni <bastoni@cs.unc.edu>2010-05-29 23:35:01 -0400
commit6ffc1fee98c4b995eb3a0285f4f8fb467cb0306e (patch)
tree69a05892a41e7f7400fa598ee0bdf8027c8f0fd6 /include/linux/hrtimer.h
parente40152ee1e1c7a63f4777791863215e3faa37a86 (diff)
parent7c1ff4c544dd650cceff3cd69a04bcba60856678 (diff)
Merge branch 'master' into wip-merge-2.6.34
Simple merge between master and 2.6.34 with conflicts resolved. This commit does not compile, the following main problems are still unresolved: - spinlock -> raw_spinlock API changes - kfifo API changes - sched_class API changes Conflicts: Makefile arch/x86/include/asm/hw_irq.h arch/x86/include/asm/unistd_32.h arch/x86/kernel/syscall_table_32.S include/linux/hrtimer.h kernel/sched.c kernel/sched_fair.c
Diffstat (limited to 'include/linux/hrtimer.h')
-rw-r--r--include/linux/hrtimer.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h
index 5d86fb2309d2..b34823755ee4 100644
--- a/include/linux/hrtimer.h
+++ b/include/linux/hrtimer.h
@@ -167,6 +167,7 @@ struct hrtimer_clock_base {
167 * @nr_retries: Total number of hrtimer interrupt retries 167 * @nr_retries: Total number of hrtimer interrupt retries
168 * @nr_hangs: Total number of hrtimer interrupt hangs 168 * @nr_hangs: Total number of hrtimer interrupt hangs
169 * @max_hang_time: Maximum time spent in hrtimer_interrupt 169 * @max_hang_time: Maximum time spent in hrtimer_interrupt
170 * @to_pull: LITMUS^RT list of timers to be pulled on this cpu
170 */ 171 */
171struct hrtimer_cpu_base { 172struct hrtimer_cpu_base {
172 raw_spinlock_t lock; 173 raw_spinlock_t lock;
@@ -180,6 +181,26 @@ struct hrtimer_cpu_base {
180 unsigned long nr_hangs; 181 unsigned long nr_hangs;
181 ktime_t max_hang_time; 182 ktime_t max_hang_time;
182#endif 183#endif
184 struct list_head to_pull;
185};
186
187#define HRTIMER_START_ON_INACTIVE 0
188#define HRTIMER_START_ON_QUEUED 1
189
190/*
191 * struct hrtimer_start_on_info - save timer info on remote cpu
192 * @list: list of hrtimer_start_on_info on remote cpu (to_pull)
193 * @timer: timer to be triggered on remote cpu
194 * @time: time event
195 * @mode: timer mode
196 * @state: activity flag
197 */
198struct hrtimer_start_on_info {
199 struct list_head list;
200 struct hrtimer *timer;
201 ktime_t time;
202 enum hrtimer_mode mode;
203 atomic_t state;
183}; 204};
184 205
185static inline void hrtimer_set_expires(struct hrtimer *timer, ktime_t time) 206static inline void hrtimer_set_expires(struct hrtimer *timer, ktime_t time)
@@ -348,6 +369,10 @@ __hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim,
348 unsigned long delta_ns, 369 unsigned long delta_ns,
349 const enum hrtimer_mode mode, int wakeup); 370 const enum hrtimer_mode mode, int wakeup);
350 371
372extern int hrtimer_start_on(int cpu, struct hrtimer_start_on_info *info,
373 struct hrtimer *timer, ktime_t time,
374 const enum hrtimer_mode mode);
375
351extern int hrtimer_cancel(struct hrtimer *timer); 376extern int hrtimer_cancel(struct hrtimer *timer);
352extern int hrtimer_try_to_cancel(struct hrtimer *timer); 377extern int hrtimer_try_to_cancel(struct hrtimer *timer);
353 378