diff options
author | Andrea Bastoni <bastoni@cs.unc.edu> | 2010-05-29 23:35:01 -0400 |
---|---|---|
committer | Andrea Bastoni <bastoni@cs.unc.edu> | 2010-05-29 23:35:01 -0400 |
commit | 6ffc1fee98c4b995eb3a0285f4f8fb467cb0306e (patch) | |
tree | 69a05892a41e7f7400fa598ee0bdf8027c8f0fd6 /include/linux/hrtimer.h | |
parent | e40152ee1e1c7a63f4777791863215e3faa37a86 (diff) | |
parent | 7c1ff4c544dd650cceff3cd69a04bcba60856678 (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.h | 25 |
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 | */ |
171 | struct hrtimer_cpu_base { | 172 | struct 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 | */ | ||
198 | struct 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 | ||
185 | static inline void hrtimer_set_expires(struct hrtimer *timer, ktime_t time) | 206 | static 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 | ||
372 | extern 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 | |||
351 | extern int hrtimer_cancel(struct hrtimer *timer); | 376 | extern int hrtimer_cancel(struct hrtimer *timer); |
352 | extern int hrtimer_try_to_cancel(struct hrtimer *timer); | 377 | extern int hrtimer_try_to_cancel(struct hrtimer *timer); |
353 | 378 | ||