linux Kernel中断处理流程
本文转帖于: http://blog.csdn.net/swt914/article/details/6574458 Kernel 中断处理图 1. Linux 定义了名字为irq_desc 的中断例程描述符表:(include/linux/irq.h) struct irqdesc irq_desc[NR_IRQS]; NR_IRQS 表示中断源的数目。 2. irq_desc []是一个指向irq_desc_t 结构的数组, irq_desc_t 结构是各个设备中断服务例程的描述符。Irq_desc_t 结构体中的成员action 指向该中断号对应的irqaction 结构体链表。Irqaction 结构体定义如下: /* include/linux/interrupt.h */ struct irqaction { irq_handler_t handler; /* 指向中断服务程序 */ unsigned long flags; /* 中断标志 */ unsigned long mask; /* 中断掩码 */ const char * name; /* I/O设备名 void *dev_id; /* 设备标识 */ struct irqaction * next; /* 指向下一个描述符 */ int irq; /* IRQ线 */ struct proc_dir