我正在编写一些自定义应用程序并允许更改 linux 内核中的中断处理程序代码。
我有一个正在等待中断发生的用户线程。如果发生该中断,那么我要做的第一件事就是执行该用户线程。
有没有办法让它工作。
谢谢
我正在编写一些自定义应用程序并允许更改 linux 内核中的中断处理程序代码。
我有一个正在等待中断发生的用户线程。如果发生该中断,那么我要做的第一件事就是执行该用户线程。
有没有办法让它工作。
谢谢
创建一个字符设备(这就是内核所做的,处理设备)。让用户线程从该设备读取。它将挂起,因为没有要读取的字符。
当中断发生时,从您的模块向该设备输出一个字符(或一些有意义的消息)。线程将唤醒,阅读消息并继续。
给处理程序线程一些不错的优先级,以便它早点醒来。
或者,您可能只是让线程等待select
或sleep
向其发送信号(内核函数kill_proc_info
),然后线程将唤醒。确保线程处理信号。
与其在制作字符驱动程序方面做得过大,不如制作一个 sysfs 条目就足够了。您可以执行任何阻塞调用,例如读取/选择/轮询该 sysfs 条目并从您的中断处理程序提供给它。
为您解决的有趣问题是
等等