1

カーネルモジュールからの割り込みが、ユーザー空間で実行されているQt組み込みプログラムに通知できる方法はありますか? ioctl の "wait_event_interruptible()" を使わずに?

「待機」したり、割り込みが発生したかどうかを確認するためにポーリングを行ったりすることなく、プログラムを通常どおり実行したいと考えています。割り込みが発生すると、プログラムは反応します

この質問は、カーネルがユーザー空間プログラムに割り込みが発生したことを通知する方法に似ていますが、彼は「wait_event_interruptible()」を使用しています

ありがとう

4

1 に答える 1

1

netlink (libnl) で試すこともできます。ドライバーで必要なのは、メッセージをユニキャストする pid 番号だけです。また、アプリケーションからソケットの recvmsg() を使用して、イベントが発生するのを待つことができます。

  • [アプリ]----{ドライバーにメッセージを送信}---> [ドライバー] (ドライバーは pid を認識して保存します)
  • [app]------{blocking recvmsg}---------> イベントが発生するのを待っています
  • [app]<--------{メッセージとペイロード}--- [driver] (イベント情報をユニキャストとして pid に送信します)

お役に立てれば、

よろしく

于 2012-12-08T18:31:33.460 に答える