Interrupt Management Under Linux
Interrupt handling is a fundamental part of the Linux kernel. Most of the kernel's functionality, in particular the parts of interest to embedded developers, in some way involve interrupt handling.
This article describes the most important concepts related to the Linux kernel's interrupt handling mechanisms. These concepts include the relevant code and data structures. Sample code from Linux kernel version 2.6.12 is also provided.
struct irqdesc and do_IRQ
Each interrupt source available to the system has allocated to it a single struct irqdesc structure. This structure stores important information for the interrupt controller, handler and others: