Linux 中断子系统(六):核心数据结构

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

Linux中断子系统有六个核心数据结构,分别是:

irq_desc
irq_data
irqactions
irq_chip
irq_domain
irq_domain_ops

关系如下:
在这里插入图片描述
强烈建议大家学习一个子系统之前,先研究这个子系统的核心数据结构,知道了他们的关系,你就知道这个子系统在做什么事情。

右侧的 irq_chip、irq_domain、irq_domain_ops 是在系统启动流程中初始化完毕的,是系统相关的,有多少个中断控制器,就有多少个 irq_domain 和 irq_chip 。

系统有多少个中断控制器,从设备树中可以查看,查看哪些节点有 interrupt-controller 属性即可。

左侧的 irq_desc、irq_data、irqaction 是和单个中断相关的三个数据结构,每个中断都会有这三个数据结构。

每一个软件中断号 IRQ number,都有一个中断描述符 irq_desc,记录了这个中断的所有信息。

1、irq_domain

一个芯片可以有多个中断控制器,他们会级联,比如 EINT、GIC 等,每个中断控制器都有一个 irq_domain。

irq_dom

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: linux