什么是 IRQ?

IRQ 是来自设备的 interrupts 请求。目前,它们可以通过引脚或数据包传入。 多个设备可以连接到同一引脚,从而共享一个 IRQ。例如,在传统的 PCI 总线上:所有设备通常共享 4 个通道/引脚。 请注意,每个设备都可以在每个通道上请求中断。

IRQ 号是内核标识符,用于描述硬件中断源。 通常,它是全局 irq_desc 数组或 sparse_irqs 树的索引。 但除了 linux/interrupt.h 实现的内容之外,细节是特定于体系结构的。

IRQ 号是对机器上可能的中断源的枚举。 通常,枚举的是系统中所有中断控制器上的输入引脚数量。 在 ISA 的情况下,枚举的是两个 i8259 中断控制器上每个控制器的 8 个输入引脚。

体系结构可以为 IRQ 号分配额外的含义,并且在涉及硬件的任何手动配置的情况下,鼓励这样做。 ISA IRQ 是分配这种额外含义的经典示例。