由于计算机系统日益复杂,外设中断数量不断增加,系统可能同时需要多个中断控制器进行级联,中断源需要统一管理,面对这样的状况,Linux对各种中断控制器进行抽象,对如何进行硬件中断号到IRQ number映射关系上进行进一步抽象出通用与设备无关的架构,通用中断处理代码中就有了irq domain的出现。
实质上中断域的就是管理中断源的硬件中断号与逻辑中断号的映射关系
对于每个中断控制器都可以连接若干个外设的中断请求,中断控制器会对连接其上的中断源进行编号,这个编号(1,2,3,...N)仅在中断控制器仅限制在本范围内。如果多个中断控制器级联,系统中的中断源编号存在多个(1,2,3,...N)。Linux引入中断域的概念,将硬件中断号控制在域内映射,解决中断控制器级联造成的重复硬件中断号映射到逻辑号中断号的问题。
中断域的两大功能:
创建映射(硬件中断号->逻辑中断号)
查找映射(硬件中断号->逻辑中断号)
同时中断域还需要维护中断控