我正在编写一些自定义应用程序,并允许在linux内核中更改中断处理程序代码。
我有一个等待中断发生的用户线程。 如果发生中断,那么我想要做的第一件事就是执行该用户线程。
有没有办法让它发挥作用。
谢谢
创建一个角色设备(这就是内核所做的,处理设备)。 让用户线程从该设备读取。 它将挂起,因为没有要读取的字符。
发生中断时,从模块向该设备输出一个字符(或一些有意义的消息)。 线程将唤醒,阅读消息并继续。
给处理程序线程一些不错的优先级,以便它尽早醒来。
或者,您可以让线程等待select
或sleep
并向其发送信号(内核函数kill_proc_info
)并且线程将被唤醒。 确保线程处理信号。
制作一个sysfs条目就足够了,而不是制作一个字符驱动程序。 您可以对该sysfs条目执行任何阻塞调用,例如read / select / poll,并从中断处理程序向其提供。
为你解决的有趣问题是
等等
以上就是c/c++开发分享在linux中断的上下文中运行用户线程相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/541857.html