Linuxに移植したいWindowsデバイスドライバーがあります。
ユーザースペースアプリケーションは、多くの場合、ドライバーイベントを待機する必要があります。Windowsで使用するメカニズムは次のとおりです。
- アプリケーションはWaitHandleを作成します
- アプリケーションは、ioctlを介してこのWaitHandleをドライバーに渡します
- ドライバーは、ObReferenceObjectByHandleを使用してこのハンドルにアクセスし、KeSetEventで設定できます。
私がこれで好きなもの:
- WaitHandleはどこからでも取得できます(AutoResetまたはManualReset、.Net WaitHandleなど)
- プロセスはioctlをスリープ状態にする必要はありませんが、通常のWaitForSingleObjectを呼び出すことができます。
Linuxドライバーで同じアーキテクチャを維持したい。
Linuxで同じ動作をする方法を知っている人はいますか?