この例に示すように、proc を使用すると、read & write システム コールを簡単に使用できます。 ユーザー空間を介して /proc エントリに書き込む
しかし、私は debugfs を使用してドライバーからユーザー空間に情報を渡すことに取り組んでいます。これら 2 つのサンプル コードを見つけることができます。ここで、アプリケーションは mmap() システム コールを使用して debugfs ファイルを読み書きできます。
- http://people.ee.ethz.ch/~arkeller/linux/code/mmap_simple_kernel.c
- http://people.ee.ethz.ch/~arkeller/linux/code/mmap_user.c
しかし、私の場合、Debugfs ファイルを使用してデバイス ドライバーと通信するための要件を考えてみます。
user-space application <-------> debugfs file <-------> Device driver
--->> デバイス ドライバ コード --->> 内で同じコード mmap_simple_kernel.c を使用して、ドライバから直接 debugfs にデータを転送できますか? しかし、この場合、ドライバ内に 2 つの file_operations 構造が存在することになり、問題が発生するのでしょうか? それは正しいアプローチですか?
または、アプリケーションが --- mmap_user.c --- 同じプロセスのプロセスに従っているのと同じように、デバイス ドライバー プログラムをフォローしています。そして、mmap_simple_kernel.c を debugfs エントリ用の別のモジュールとして保持しますか?