gpt4 book ai didi

linux - 如何在击键中断后初始化 tasklet?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:07:03 28 4
gpt4 key购买 nike

我想构建一个内核模块,它会在按下 f5 键时运行一个 tasklet。

我知道如何初始化一个 tasklet,但是如何在我的模块中获取事件?如何使用 request_irq 确定是否按下了 f5

最佳答案

-

你好,0x90,

我猜你知道,要处理中断,有两个部分。第一部分,上半部分,即中断处理程序,第二部分,下半部分,可能是 softirq、tasklet、工作队列。

所以,即使你想在一个 tasklet 中实现你想要的一切,你也必须确保上半部分,即中断处理程序,有机会先运行。

IIRC,tasklet只是softirqs的变体,它们在irq_exit()中处理,在do_IRQ()中调用。但是,此流程可能取决于特定的架构。

对于你的问题,我猜可能是在x86平台上。无论按下什么键,总会有一个键盘中断传递给 CPU。并且按下的键是否为 f5,将在您的 tasklet 中进行检查,您的中断处理程序可能只需要将代码传递给 tasklet。

因此,您应该通过调用 request_irq() 将在 tasklet 之前处理的中断处理程序附加到键盘中断。

更新:

正如 Probie 所说,您可能需要检查 Documentation/目录中的 notifier.txt 和 notifiers.txt。

谢谢。

关于linux - 如何在击键中断后初始化 tasklet?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11920841/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com