Table of Contents
There are three main levels of abstraction in the interrupt code:
Highlevel driver API
Highlevel IRQ flow handlers
Chiplevel hardware encapsulation
Each interrupt is described by an interrupt descriptor structure irq_desc. The interrupt is referenced by an 'unsigned int' numeric value which selects the corresponding interrupt decription structure in the descriptor structures array. The descriptor structure contains status information and pointers to the interrupt flow method and the interrupt chip structure which are assigned to this interrupt.
Whenever an interrupt triggers, the lowlevel arch code calls into the generic interrupt code by calling desc->handle_irq(). This highlevel IRQ handling function only uses desc->chip primitives which describe the control flow operation necessary for the interrupt type. These operations are calling the chip primitives referenced by the assigned chip descriptor structure.