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.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
index 472f11765f60..ce2c07d99fc3 100644
--- a/include/linux/interrupt.h
+++ b/include/linux/interrupt.h
@@ -61,6 +61,17 @@
61 61
62typedef irqreturn_t (*irq_handler_t)(int, void *); 62typedef irqreturn_t (*irq_handler_t)(int, void *);
63 63
64/**
65 * struct irqaction - per interrupt action descriptor
66 * @handler: interrupt handler function
67 * @flags: flags (see IRQF_* above)
68 * @mask: no comment as it is useless and about to be removed
69 * @name: name of the device
70 * @dev_id: cookie to identify the device
71 * @next: pointer to the next irqaction for shared interrupts
72 * @irq: interrupt number
73 * @dir: pointer to the proc/irq/NN/name entry
74 */
64struct irqaction { 75struct irqaction {
65 irq_handler_t handler; 76 irq_handler_t handler;
66 unsigned long flags; 77 unsigned long flags;
@@ -106,6 +117,15 @@ extern void disable_irq_nosync(unsigned int irq);
106extern void disable_irq(unsigned int irq); 117extern void disable_irq(unsigned int irq);
107extern void enable_irq(unsigned int irq); 118extern void enable_irq(unsigned int irq);
108 119
120/* The following three functions are for the core kernel use only. */
121extern void suspend_device_irqs(void);
122extern void resume_device_irqs(void);
123#ifdef CONFIG_PM_SLEEP
124extern int check_wakeup_irqs(void);
125#else
126static inline int check_wakeup_irqs(void) { return 0; }
127#endif
128
109#if defined(CONFIG_SMP) && defined(CONFIG_GENERIC_HARDIRQS) 129#if defined(CONFIG_SMP) && defined(CONFIG_GENERIC_HARDIRQS)
110 130
111extern cpumask_var_t irq_default_affinity; 131extern cpumask_var_t irq_default_affinity;
@@ -258,6 +278,11 @@ enum
258 NR_SOFTIRQS 278 NR_SOFTIRQS
259}; 279};
260 280
281/* map softirq index to softirq name. update 'softirq_to_name' in
282 * kernel/softirq.c when adding a new softirq.
283 */
284extern char *softirq_to_name[NR_SOFTIRQS];
285
261/* softirq mask and active fields moved to irq_cpustat_t in 286/* softirq mask and active fields moved to irq_cpustat_t in
262 * asm/hardirq.h to get better cache usage. KAO 287 * asm/hardirq.h to get better cache usage. KAO
263 */ 288 */
@@ -462,6 +487,12 @@ static inline void init_irq_proc(void)
462} 487}
463#endif 488#endif
464 489
490#if defined(CONFIG_GENERIC_HARDIRQS) && defined(CONFIG_DEBUG_SHIRQ)
491extern void debug_poll_all_shared_irqs(void);
492#else
493static inline void debug_poll_all_shared_irqs(void) { }
494#endif
495
465int show_interrupts(struct seq_file *p, void *v); 496int show_interrupts(struct seq_file *p, void *v);
466 497
467struct irq_desc; 498struct irq_desc;