aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/irq.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/irq.h')
-rw-r--r--include/linux/irq.h22
1 files changed, 10 insertions, 12 deletions
diff --git a/include/linux/irq.h b/include/linux/irq.h
index c64f3cc7e870..775f5a7da493 100644
--- a/include/linux/irq.h
+++ b/include/linux/irq.h
@@ -141,6 +141,7 @@ struct irq_chip {
141 * @pending_mask: pending rebalanced interrupts 141 * @pending_mask: pending rebalanced interrupts
142 * @dir: /proc/irq/ procfs entry 142 * @dir: /proc/irq/ procfs entry
143 * @affinity_entry: /proc/irq/smp_affinity procfs entry on SMP 143 * @affinity_entry: /proc/irq/smp_affinity procfs entry on SMP
144 * @name: flow handler name for /proc/interrupts output
144 * 145 *
145 * Pad this out to 32 bytes for cache and indexing reasons. 146 * Pad this out to 32 bytes for cache and indexing reasons.
146 */ 147 */
@@ -165,8 +166,9 @@ struct irq_desc {
165 cpumask_t pending_mask; 166 cpumask_t pending_mask;
166#endif 167#endif
167#ifdef CONFIG_PROC_FS 168#ifdef CONFIG_PROC_FS
168 struct proc_dir_entry *dir; 169 struct proc_dir_entry *dir;
169#endif 170#endif
171 const char *name;
170} ____cacheline_aligned; 172} ____cacheline_aligned;
171 173
172extern struct irq_desc irq_desc[NR_IRQS]; 174extern struct irq_desc irq_desc[NR_IRQS];
@@ -272,12 +274,6 @@ extern void fastcall handle_percpu_irq(unsigned int irq, struct irq_desc *desc);
272extern void fastcall handle_bad_irq(unsigned int irq, struct irq_desc *desc); 274extern void fastcall handle_bad_irq(unsigned int irq, struct irq_desc *desc);
273 275
274/* 276/*
275 * Get a descriptive string for the highlevel handler, for
276 * /proc/interrupts output:
277 */
278extern const char *handle_irq_name(irq_flow_handler_t handle);
279
280/*
281 * Monolithic do_IRQ implementation. 277 * Monolithic do_IRQ implementation.
282 * (is an explicit fastcall, because i386 4KSTACKS calls it from assembly) 278 * (is an explicit fastcall, because i386 4KSTACKS calls it from assembly)
283 */ 279 */
@@ -326,10 +322,12 @@ extern struct irq_chip no_irq_chip;
326extern struct irq_chip dummy_irq_chip; 322extern struct irq_chip dummy_irq_chip;
327 323
328extern void 324extern void
329set_irq_chip_and_handler(unsigned int irq, struct irq_chip *chip, 325set_irq_chip_and_handler_name(unsigned int irq, struct irq_chip *chip,
330 irq_flow_handler_t handle); 326 irq_flow_handler_t handle, const char *name);
327
331extern void 328extern void
332__set_irq_handler(unsigned int irq, irq_flow_handler_t handle, int is_chained); 329__set_irq_handler(unsigned int irq, irq_flow_handler_t handle, int is_chained,
330 const char *name);
333 331
334/* 332/*
335 * Set a highlevel flow handler for a given IRQ: 333 * Set a highlevel flow handler for a given IRQ:
@@ -337,7 +335,7 @@ __set_irq_handler(unsigned int irq, irq_flow_handler_t handle, int is_chained);
337static inline void 335static inline void
338set_irq_handler(unsigned int irq, irq_flow_handler_t handle) 336set_irq_handler(unsigned int irq, irq_flow_handler_t handle)
339{ 337{
340 __set_irq_handler(irq, handle, 0); 338 __set_irq_handler(irq, handle, 0, NULL);
341} 339}
342 340
343/* 341/*
@@ -349,7 +347,7 @@ static inline void
349set_irq_chained_handler(unsigned int irq, 347set_irq_chained_handler(unsigned int irq,
350 irq_flow_handler_t handle) 348 irq_flow_handler_t handle)
351{ 349{
352 __set_irq_handler(irq, handle, 1); 350 __set_irq_handler(irq, handle, 1, NULL);
353} 351}
354 352
355/* Handle dynamic irq creation and destruction */ 353/* Handle dynamic irq creation and destruction */