私はlinuxに登録された特定のデバイスへのポインタを取得する必要があります。簡単に言うと、このデバイスはmii_bus
オブジェクトを表します。問題は、このデバイスはバスに属していないようです(そのdev->bus
はNULL
です)ので、例えばbus_for_each_dev
の機能を使用することはできません。しかし、デバイスはOpen Firmwareレイヤーによって登録されており、/sys/bus/of_platform
に相対的なof_device
(興味のあるデバイスの親である)が表示されます。私のデバイスもclass
に登録されていますので、/sys/class/mdio_bus
で見つけられます。今の質問:linuxのstructデバイスへのポインタを取得するためのよりクリーンな方法はどれですか?
それは私たちが望むデバイスの親である
of_device
へのポインタを使ってポインタを取得することが可能ですか?名前を使用して既にインスタンス化されたクラスへのポインタを取得するにはどうすればよいですか?可能であれば、そのクラスのデバイスを反復することができます。
その他のアドバイスは非常に便利です!皆さん、ありがとうございました。
device_find_child()は、見つかった子デバイスの参照カウンタを増加させることに注意してください。したがって、子デバイスの使用が終了したら** put_device()を実行する必要があります。 – Federico