【问题标题】:Getting access to the input handler from the IRQ lane从 IRQ 通道访问输入处理程序
【发布时间】:2018-01-20 22:50:36
【问题描述】:

在研究内核中的输入事件系统时,我发现需要访问已经注册到一个 IRQ 通道的输入处理程序,只给定 irq 通道(只是整数)。是否有一种方法可以访问与 IRQ 关联的所有事件处理程序?我希望将来自给定输入设备(比如鼠标)的每个处理程序列表映射到设备可能产生的每个可能事件。

不确定是否重要,但我正在使用 AOSP for ARM 设备。

【问题讨论】:

  • 为什么首先需要它? JFYI:必要的映射隐藏在 IRQ 框架中,通常没有 API 可以得到你想要的。
  • 我不是在寻找 API,我在寻找解决方案。

标签: events linux-kernel linux-device-driver interrupt irq


【解决方案1】:

有一个 irq_to_desc 函数可以获取与 irq 关联的 irq_desc(在 linux/irqdesc.h 中)。获取 irq_desc.irq_data。

handle_irq 成员是一个高级流处理程序,它迭代 irq_desc.action 成员并调用它们的 action->handler (irq, action->dev_id)。 irq_desc.action->handler 是中断处理程序的一个实例,位操作是一个中断处理程序数组。驱动程序处理程序在那里。 dev_id是一个void* cookie,指向input_dev结构,可以识别输入设备。

【讨论】:

    猜你喜欢
    • 2021-12-18
    • 2021-11-13
    • 2012-11-26
    • 1970-01-01
    • 1970-01-01
    • 2012-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多