diff options
Diffstat (limited to 'include/linux/interrupt.h')
-rw-r--r-- | include/linux/interrupt.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h index 54b3623434ec..f58a0cf8929a 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h | |||
@@ -8,9 +8,12 @@ | |||
8 | #include <linux/preempt.h> | 8 | #include <linux/preempt.h> |
9 | #include <linux/cpumask.h> | 9 | #include <linux/cpumask.h> |
10 | #include <linux/irqreturn.h> | 10 | #include <linux/irqreturn.h> |
11 | #include <linux/irqnr.h> | ||
11 | #include <linux/hardirq.h> | 12 | #include <linux/hardirq.h> |
12 | #include <linux/sched.h> | 13 | #include <linux/sched.h> |
13 | #include <linux/irqflags.h> | 14 | #include <linux/irqflags.h> |
15 | #include <linux/smp.h> | ||
16 | #include <linux/percpu.h> | ||
14 | #include <asm/atomic.h> | 17 | #include <asm/atomic.h> |
15 | #include <asm/ptrace.h> | 18 | #include <asm/ptrace.h> |
16 | #include <asm/system.h> | 19 | #include <asm/system.h> |
@@ -273,6 +276,25 @@ extern void softirq_init(void); | |||
273 | extern void raise_softirq_irqoff(unsigned int nr); | 276 | extern void raise_softirq_irqoff(unsigned int nr); |
274 | extern void raise_softirq(unsigned int nr); | 277 | extern void raise_softirq(unsigned int nr); |
275 | 278 | ||
279 | /* This is the worklist that queues up per-cpu softirq work. | ||
280 | * | ||
281 | * send_remote_sendirq() adds work to these lists, and | ||
282 | * the softirq handler itself dequeues from them. The queues | ||
283 | * are protected by disabling local cpu interrupts and they must | ||
284 | * only be accessed by the local cpu that they are for. | ||
285 | */ | ||
286 | DECLARE_PER_CPU(struct list_head [NR_SOFTIRQS], softirq_work_list); | ||
287 | |||
288 | /* Try to send a softirq to a remote cpu. If this cannot be done, the | ||
289 | * work will be queued to the local cpu. | ||
290 | */ | ||
291 | extern void send_remote_softirq(struct call_single_data *cp, int cpu, int softirq); | ||
292 | |||
293 | /* Like send_remote_softirq(), but the caller must disable local cpu interrupts | ||
294 | * and compute the current cpu, passed in as 'this_cpu'. | ||
295 | */ | ||
296 | extern void __send_remote_softirq(struct call_single_data *cp, int cpu, | ||
297 | int this_cpu, int softirq); | ||
276 | 298 | ||
277 | /* Tasklets --- multithreaded analogue of BHs. | 299 | /* Tasklets --- multithreaded analogue of BHs. |
278 | 300 | ||