产生中断的设备由内核中的处理程序管理。我需要发送带有标志的消息,以便用户应用程序接收已发生中断的通知,从而可以执行过程。例如,唤醒进程。 我该怎么做?
答案 0 :(得分:2)
恕我直言,POSIX风格的解决方案是编写一个接收内核中断的设备驱动程序。用户空间程序将打开一个设备文件和icoctl()或read(),阻塞直到至少一个事件到达。我建议,用户空间程序实际应该阅读更多:
这可以帮助您查看您的程序何时发生错误事件(例如,因为它在上一个周期中已被删除)。
答案 1 :(得分:2)
我更喜欢使用Netlink作为内核和用户空间之间的IPC。只需确保使用GFP_ATOMIC(在netlink_broadcast中)分配消息,以确保您不在irq中睡觉。查看Netlink教程{。{3}}。