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()
67 unmask_irq(irq); in irq_install_handler()
75 void irq_free_handler(int irq) in irq_free_handler() argument
79 if (irq < 0 || irq >= SYS_NUM_IRQS) { in irq_free_handler()
80 printf("irq_free_handler: bad irq number %d\n", irq); in irq_free_handler()
86 mask_irq(irq); in irq_free_handler()
88 irq_handlers[irq].handler = NULL; in irq_free_handler()
89 irq_handlers[irq].arg = NULL; in irq_free_handler()
99 int irq = hw_irq - 0x20; in do_irq() local
101 if (irq < 0 || irq >= SYS_NUM_IRQS) { in do_irq()
102 printf("do_irq: bad irq number %d\n", irq); in do_irq()
106 if (irq_handlers[irq].handler) { in do_irq()
107 mask_irq(irq); in do_irq()
109 irq_handlers[irq].handler(irq_handlers[irq].arg); in do_irq()
110 irq_handlers[irq].count++; in do_irq()
112 unmask_irq(irq); in do_irq()
113 specific_eoi(irq); in do_irq()
116 if ((irq & 7) != 7) { in do_irq()
118 spurious_irq = irq; in do_irq()
128 int irq; in do_irqinfo() local
136 for (irq = 0; irq < SYS_NUM_IRQS; irq++) { in do_irqinfo()
137 if (irq_handlers[irq].handler != NULL) { in do_irqinfo()
139 irq, in do_irqinfo()
140 (ulong)irq_handlers[irq].handler, in do_irqinfo()
141 (ulong)irq_handlers[irq].arg, in do_irqinfo()
142 irq_handlers[irq].count); in do_irqinfo()