1 /* 2 * IRQ subsystem internal functions and variables: 3 */ 4 5 extern int noirqdebug; 6 7 /* Set default functions for irq_chip structures: */ 8 extern void irq_chip_set_defaults(struct irq_chip *chip); 9 10 /* Set default handler: */ 11 extern void compat_irq_chip_set_default_handler(struct irq_desc *desc); 12 13 #ifdef CONFIG_PROC_FS 14 extern void register_irq_proc(unsigned int irq); 15 extern void register_handler_proc(unsigned int irq, struct irqaction *action); 16 extern void unregister_handler_proc(unsigned int irq, struct irqaction *action); 17 #else 18 static inline void register_irq_proc(unsigned int irq) { } 19 static inline void register_handler_proc(unsigned int irq, 20 struct irqaction *action) { } 21 static inline void unregister_handler_proc(unsigned int irq, 22 struct irqaction *action) { } 23 #endif 24 25 /* 26 * Debugging printout: 27 */ 28 29 #include <linux/kallsyms.h> 30 31 #define P(f) if (desc->status & f) printk("%14s set\n", #f) 32 33 static inline void print_irq_desc(unsigned int irq, struct irq_desc *desc) 34 { 35 printk("irq %d, desc: %p, depth: %d, count: %d, unhandled: %d\n", 36 irq, desc, desc->depth, desc->irq_count, desc->irqs_unhandled); 37 printk("->handle_irq(): %p, ", desc->handle_irq); 38 print_symbol("%s\n", (unsigned long)desc->handle_irq); 39 printk("->chip(): %p, ", desc->chip); 40 print_symbol("%s\n", (unsigned long)desc->chip); 41 printk("->action(): %p\n", desc->action); 42 if (desc->action) { 43 printk("->action->handler(): %p, ", desc->action->handler); 44 print_symbol("%s\n", (unsigned long)desc->action->handler); 45 } 46 47 P(IRQ_INPROGRESS); 48 P(IRQ_DISABLED); 49 P(IRQ_PENDING); 50 P(IRQ_REPLAY); 51 P(IRQ_AUTODETECT); 52 P(IRQ_WAITING); 53 P(IRQ_LEVEL); 54 P(IRQ_MASKED); 55 #ifdef CONFIG_IRQ_PER_CPU 56 P(IRQ_PER_CPU); 57 #endif 58 P(IRQ_NOPROBE); 59 P(IRQ_NOREQUEST); 60 P(IRQ_NOAUTOEN); 61 } 62 63 #undef P 64 65