从我读到的两者都用于注册中断处理程序。我在内核代码中看到了很多request_irq
调用,但没有一个__interrupt
调用。是否有__interrupt
某种方法可以从用户空间注册处理程序?
问问题
5473 次
2 回答
8
request_irq
本质上是对 的包装调用request_threaded_irq
,它分配 IRQ 资源并启用 IRQ。这是从第#1239 行的注释块中转述kernel/irq/manage.c
的。
request_irq
基本上,如果您需要为某种设备设置中断处理,您想使用它。确保您正在使用的任何子系统都还没有为request_irq
. 即,如果您正在处理设备驱动程序,请考虑使用devm_*
调用系列来自动管理细节,例如释放未使用的变量等。请参阅devm_request_threaded_irq
第29 行以kernel/irq/devres.c
获得更好的解释。它的等效调用(以及您最有可能使用的调用)是devm_request_irq
.
于 2011-06-05T22:31:52.240 回答
0
据我所知,__interrupt() 用于在用户空间中将函数声明为 ISR。我不知道我从哪里得到这个,但我一找到那个地方就会回来找你的。
于 2011-06-04T19:59:47.253 回答