Lines Matching refs:irq

47 void irq_install_handler(int irq, interrupt_handler_t *handler, void *arg)  in irq_install_handler()  argument
51 if (irq < 0 || irq >= SYS_NUM_IRQS) { in irq_install_handler()
52 printf("irq_install_handler: bad irq number %d\n", irq); in irq_install_handler()
56 if (irq_handlers[irq].handler != NULL) in irq_install_handler()
59 (ulong) irq_handlers[irq].handler); in irq_install_handler()
63 irq_handlers[irq].handler = handler; in irq_install_handler()
64 irq_handlers[irq].arg = arg; in irq_install_handler()
65 irq_handlers[irq].count = 0; in irq_install_handler()
68 unmask_irq(irq); in irq_install_handler()
76 void irq_free_handler(int irq) in irq_free_handler() argument
80 if (irq < 0 || irq >= SYS_NUM_IRQS) { in irq_free_handler()
81 printf("irq_free_handler: bad irq number %d\n", irq); in irq_free_handler()
88 mask_irq(irq); in irq_free_handler()
90 irq_handlers[irq].handler = NULL; in irq_free_handler()
91 irq_handlers[irq].arg = NULL; in irq_free_handler()
101 int irq = hw_irq - 0x20; in do_irq() local
103 if (irq < 0 || irq >= SYS_NUM_IRQS) { in do_irq()
104 printf("do_irq: bad irq number %d\n", irq); in do_irq()
108 if (irq_handlers[irq].handler) { in do_irq()
110 mask_irq(irq); in do_irq()
112 irq_handlers[irq].handler(irq_handlers[irq].arg); in do_irq()
113 irq_handlers[irq].count++; in do_irq()
116 unmask_irq(irq); in do_irq()
117 specific_eoi(irq); in do_irq()
120 if ((irq & 7) != 7) { in do_irq()
122 spurious_irq = irq; in do_irq()
132 int irq; in do_irqinfo() local
140 for (irq = 0; irq < SYS_NUM_IRQS; irq++) { in do_irqinfo()
141 if (irq_handlers[irq].handler != NULL) { in do_irqinfo()
143 irq, in do_irqinfo()
144 (ulong)irq_handlers[irq].handler, in do_irqinfo()
145 (ulong)irq_handlers[irq].arg, in do_irqinfo()
146 irq_handlers[irq].count); in do_irqinfo()