High-level interrupt-management interfaces
The generic IRQ layer provides a set of function interfaces for device drivers to grab IRQ descriptors and bind interrupt handlers, release IRQs, enable or disable interrupt lines, and so on. We will explore all of the generic interfaces in this section.
Registering an interrupt handler
typedefirqreturn_t(*irq_handler_t)(int,void*); /** * request_irq - allocate an interrupt line * @irq: Interrupt line to allocate * @handler: Function to be called when the IRQ occurs. * @irqflags: Interrupt type flags * @devname: An ascii name for the claiming device * @dev_id: A cookie passed back to the handler function */ int request_irq(unsigned int irq, irq_handler_t handler, unsigned long flags, const char *name, void *dev);
request_irq()
instantiates an irqaction
object with values passed as parameters and binds it to the irq_desc
specified as the first (irq
) parameter. This call allocates interrupt resources and enables the interrupt...