私の質問は、Linux デバイス モデルについてです。ソース コードを調べてみたところ、デバイス モデルが多くの構造に対応していることがわかりました。そのうちのいくつかは次のとおりです。
- 構造体デバイス
- 構造体 device_driver
- 構造体 bus_type
- 電源管理に関連するものは他にもあります。
しかし、Linux カーネルに実装されている char ドライバー (または独自の char ドライバーを実装している場合) を調べたところ、Linux カーネルは「構造体デバイス」のみを実装しており、他のすべての構造は単に NULL です。私はこれをいくつかのデバッグとフレンドリーな近隣 API printk() で確認しました。
だから私の質問は、なぜcharドライバーがデバイスモデルに完全に従っていないのですか?
また、Linux デバイス モデルに完全に準拠しているドライバーはどれですか?