Home | History | Annotate | Download | only in iomd

Lines Matching refs:handler

37  * IRQ/FIQ initialisation, claim, release and handler routines
126 * int irq_claim(int irq, irqhandler_t *handler)
128 * Enable an IRQ and install a handler for it.
132 irq_claim(int irq, irqhandler_t *handler)
139 if (handler == NULL)
140 panic("NULL interrupt handler");
141 if (handler->ih_func == NULL)
142 panic("Interrupt handler does not have a function");
150 irq = handler->ih_num;
157 if (handler->ih_level < 0 || handler->ih_level >= NIPL)
162 /* Attach handler at top of chain */
163 handler->ih_next = irqhandlers[irq];
164 irqhandlers[irq] = handler;
167 * Reset the flags for this handler.
168 * As the handler is now in the chain mark it as active.
170 handler->ih_flags = 0 | IRQ_FLAG_ACTIVE;
177 handler->ih_num = irq;
182 if (handler->ih_name) {
183 strlcpy(iptr, handler->ih_name, 14);
196 if (handler->ih_level >= 0 && handler->ih_level < NIPL) {
244 * int irq_release(int irq, irqhandler_t *handler)
246 * Disable an IRQ and remove a handler for it.
250 irq_release(int irq, irqhandler_t *handler)
261 irq = handler->ih_num;
267 /* Locate the handler */
271 while (irqhand && handler != irqhand) {
276 /* Remove the handler if located */
282 /* Now the handler has been removed from the chain mark is as inactive */
285 /* Make sure the head of the handler list is active */
304 if (handler->ih_level >= 0 && handler->ih_level < NIPL) {
426 * This routine should be used with caution. A handler should already
445 * Handler for stray interrupts. This gets called if a handler cannot be