総合手引 | セクション 9 | English | オプション |
#include <sys/param.h>
#include <sys/bus.h>
デバイスの名前は、どのドライバがそのデバイスに適切であるかを 決定するために使用されます。 名前が指定されている場合には、その名前のドライバのみがプローブされます。 名前が与えられなかった場合には、 認識しているバスの全てのドライバがプローブされます。 全てのイベントで、その名前に結び付いているドライバのロードとアンロードが 安全にできるように、そのデバイスの名前のみが格納されます。
これは、デバイスインスタンスを独自に識別することができるバス (PCI 等) が、 個々のドライバが個々のデバイスインスタンスに適合しているか チェック可能にします。 供給されたプローブヒントに依存して、 たった 1 つのドライバがデバイスをプローブ可能なバスでは、 ドライバの名前はデバイスの名前として指定されるべきです。
通常、ユニット番号はシステムによって自動的に選択されますので、ユニット番号は -1 が与えられるべきです。 指定のユニット番号が希望された時に (例えばハードウェアの一部分を あらかじめ設定されたユニット番号に結びつけるため)、unit は渡されるべきです。 指定されたユニット番号が既に割り当てられていた場合には、新しいユニット番号が 割り当てられ、診断メッセージが表示されます。
指定の順序でプローブされなければならないバス (例えば ISA バス用の幾つかの デバイスは関連の無いドライバのプローブの試みの失敗に敏感で、それゆえ 最初にプローブされなければならない) にアタッチされたデバイスの場合には、 device_add_child_ordered() の order 引数が半順序を指定するために使用されるべきです。 新しいデバイスは、 既存のより大きい順序を持つすべてのデバイスの前に追加されます。 device_add_child() が使用された場合には、順序が 0 であるとして新しい子が追加されます。
DEVICE_IDENTIFY(9) ルーチンのコンテキストでデバイスを追加するときには、 そのデバイスが既にツリーに追加されていないことを保証するために いくつかの注意が払われなければなりません。 なぜならば、そのデバイスの名前と devclass_t はプローブ時に (子の追加時ではなく) 関連付けられ、(モジュールの中で 後でアンロードされたと示されている) そのドライバの前のインスタンスが 既に追加されているかもしれないからです。 バスドライバの作者は同様に、 子デバイスの複製を避けるためにロードおよびアンロードされるときに、 子の追加時にも注意しなければなりません。
DEVICE_ADD_CHILD (9) | May 13, 2004 |
総合手引 | セクション 9 | English | オプション |
このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.
“ | Hang in there, people suffering from natural disasters and deadly diseases - we're putting ribbons on our cars as fast as we can | ” |
— Artur Bagyants |