aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/interrupt.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/interrupt.h')
-rw-r--r--include/linux/interrupt.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
index 35e7df1e9f30..7ca72b74eec7 100644
--- a/include/linux/interrupt.h
+++ b/include/linux/interrupt.h
@@ -10,7 +10,6 @@
10#include <linux/irqreturn.h> 10#include <linux/irqreturn.h>
11#include <linux/irqnr.h> 11#include <linux/irqnr.h>
12#include <linux/hardirq.h> 12#include <linux/hardirq.h>
13#include <linux/sched.h>
14#include <linux/irqflags.h> 13#include <linux/irqflags.h>
15#include <linux/smp.h> 14#include <linux/smp.h>
16#include <linux/percpu.h> 15#include <linux/percpu.h>
@@ -50,6 +49,9 @@
50 * IRQF_IRQPOLL - Interrupt is used for polling (only the interrupt that is 49 * IRQF_IRQPOLL - Interrupt is used for polling (only the interrupt that is
51 * registered first in an shared interrupt is considered for 50 * registered first in an shared interrupt is considered for
52 * performance reasons) 51 * performance reasons)
52 * IRQF_ONESHOT - Interrupt is not reenabled after the hardirq handler finished.
53 * Used by threaded interrupts which need to keep the
54 * irq line disabled until the threaded handler has been run.
53 */ 55 */
54#define IRQF_DISABLED 0x00000020 56#define IRQF_DISABLED 0x00000020
55#define IRQF_SAMPLE_RANDOM 0x00000040 57#define IRQF_SAMPLE_RANDOM 0x00000040
@@ -59,6 +61,7 @@
59#define IRQF_PERCPU 0x00000400 61#define IRQF_PERCPU 0x00000400
60#define IRQF_NOBALANCING 0x00000800 62#define IRQF_NOBALANCING 0x00000800
61#define IRQF_IRQPOLL 0x00001000 63#define IRQF_IRQPOLL 0x00001000
64#define IRQF_ONESHOT 0x00002000
62 65
63/* 66/*
64 * Bits used by threaded handlers: 67 * Bits used by threaded handlers:
@@ -80,7 +83,6 @@ typedef irqreturn_t (*irq_handler_t)(int, void *);
80 * struct irqaction - per interrupt action descriptor 83 * struct irqaction - per interrupt action descriptor
81 * @handler: interrupt handler function 84 * @handler: interrupt handler function
82 * @flags: flags (see IRQF_* above) 85 * @flags: flags (see IRQF_* above)
83 * @mask: no comment as it is useless and about to be removed
84 * @name: name of the device 86 * @name: name of the device
85 * @dev_id: cookie to identify the device 87 * @dev_id: cookie to identify the device
86 * @next: pointer to the next irqaction for shared interrupts 88 * @next: pointer to the next irqaction for shared interrupts
@@ -93,7 +95,6 @@ typedef irqreturn_t (*irq_handler_t)(int, void *);
93struct irqaction { 95struct irqaction {
94 irq_handler_t handler; 96 irq_handler_t handler;
95 unsigned long flags; 97 unsigned long flags;
96 cpumask_t mask;
97 const char *name; 98 const char *name;
98 void *dev_id; 99 void *dev_id;
99 struct irqaction *next; 100 struct irqaction *next;
@@ -344,6 +345,7 @@ enum
344 NET_TX_SOFTIRQ, 345 NET_TX_SOFTIRQ,
345 NET_RX_SOFTIRQ, 346 NET_RX_SOFTIRQ,
346 BLOCK_SOFTIRQ, 347 BLOCK_SOFTIRQ,
348 BLOCK_IOPOLL_SOFTIRQ,
347 TASKLET_SOFTIRQ, 349 TASKLET_SOFTIRQ,
348 SCHED_SOFTIRQ, 350 SCHED_SOFTIRQ,
349 HRTIMER_SOFTIRQ, 351 HRTIMER_SOFTIRQ,
@@ -607,6 +609,7 @@ extern void debug_poll_all_shared_irqs(void);
607static inline void debug_poll_all_shared_irqs(void) { } 609static inline void debug_poll_all_shared_irqs(void) { }
608#endif 610#endif
609 611
612struct seq_file;
610int show_interrupts(struct seq_file *p, void *v); 613int show_interrupts(struct seq_file *p, void *v);
611 614
612struct irq_desc; 615struct irq_desc;