私の質問は、mmap された領域をモジュールに戻して、そのメモリを操作できるようにする方法です。
私が探しているのはこれです:
- 私のユーザー空間アプリケーションは数百のスレッドを使用して実行されます (そのため、カーネルがどのユーザー空間スレッドにどのバッファーを与えたかを追跡するのは困難です)。
- ユーザー スレッドはモジュールの mmap 関数を呼び出し、それを取得した後、バッファーにデータを入力します。
- 次に、ioctl() をモジュールに使用してこのバッファをモジュールに渡して、モジュールが何らかの処理を行ってバッファを変更できるようにする必要があります。
- ユーザー空間スレッドが新しいデータを読み取ります
「ステップ3」をどのように実装できるかわかりません。このユーザーバッファをモジュールに渡して、カーネル空間にあるアドレスを知る方法はありますか?
(malloc や copy_from_user は使えません)