1

无论如何,来自内核模块的中断是否可以通知在用户空间中运行的 Qt 嵌入式程序?不使用 ioctl 的“wait_event_interruptible()”?

我希望我的程序能够正常运行,而不必“等待”或进行轮询以检查中断是否发生。一旦中断发生,程序就会做出反应

这个问题类似于我的内核如何通知用户空间程序发生中断但他正在使用“wait_event_interruptible()”

谢谢

4

1 回答 1

1

您也可以尝试使用 netlink (libnl)。在驱动程序中,您只需要单播消息的 pid 号。从应用程序中,您可以使用套接字的 recvmsg() 等待偶数发生。

  • [app]----{向驱动程序发送消息}---> [驱动程序](驱动程序现在知道 pid 并保存它)
  • [app]------{blocking recvmsg}---------> 等待事件被引发
  • [app]<--------{带有有效负载的消息}--- [驱动程序](将事件信息作为单播发送到 pid)

希望这可以帮助,

问候

于 2012-12-08T18:31:33.460 回答