d100276457
Submitted by: Akira Ikeuchi <a_ikeuchi@mic.mitsumi.co.jp> Reviewed by: Watanabe Kazuhiro <CQG00620@nifty.ne.jp>
114 lines
4.4 KiB
Groff
114 lines
4.4 KiB
Groff
.\" -*- nroff -*-
|
|
.\"
|
|
.\" Copyright (c) 1998 Doug Rabson
|
|
.\"
|
|
.\" All rights reserved.
|
|
.\"
|
|
.\" This program is free software.
|
|
.\"
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, are permitted provided that the following conditions
|
|
.\" are met:
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
|
|
.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
|
.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
|
.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
|
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
.\"
|
|
.\" %FreeBSD: src/share/man/man9/device_add_child.9,v 1.19 2004/07/03 18:29:23 ru Exp %
|
|
.\"
|
|
.\" $FreeBSD$
|
|
.Dd May 13, 2004
|
|
.Dt DEVICE_ADD_CHILD 9
|
|
.Os
|
|
.Sh 名称
|
|
.Nm device_add_child ,
|
|
.Nm device_add_child_ordered
|
|
.Nd 存在しているデバイスの子として新しいデバイスを追加
|
|
.Sh 書式
|
|
.In sys/param.h
|
|
.In sys/bus.h
|
|
.Ft device_t
|
|
.Fn device_add_child "device_t dev" "const char *name" "int unit"
|
|
.Ft device_t
|
|
.Fn device_add_child_ordered "device_t dev" "int order" "const char *name" "int unit"
|
|
.Sh 解説
|
|
.Fa dev
|
|
の新しい子デバイスを追加します。
|
|
.Fa name
|
|
および
|
|
.Fa unit
|
|
引数はデバイスの名前とユニット番号を指定します。
|
|
名前が不明の場合には、呼び出し側は
|
|
.Dv NULL
|
|
を渡すべきです。
|
|
ユニット番号が不明の場合には、呼び出し側は
|
|
.Dv -1
|
|
を渡すべきで、システムは次の使用可能なユニット番号を選択するでしょう。
|
|
.Pp
|
|
デバイスの名前は、どのドライバがそのデバイスに適切であるかを
|
|
決定するために使用されます。
|
|
名前が指定されている場合には、その名前のドライバのみがプローブされます。
|
|
名前が与えられなかった場合には、
|
|
認識しているバスの全てのドライバがプローブされます。
|
|
全てのイベントで、その名前に結び付いているドライバのロードとアンロードが
|
|
安全にできるように、そのデバイスの名前のみが格納されます。
|
|
.Pp
|
|
これは、デバイスインスタンスを独自に識別することができるバス (PCI 等) が、
|
|
個々のドライバが個々のデバイスインスタンスに適合しているか
|
|
チェック可能にします。
|
|
供給されたプローブヒントに依存して、
|
|
たった 1 つのドライバがデバイスをプローブ可能なバスでは、
|
|
ドライバの名前はデバイスの名前として指定されるべきです。
|
|
.Pp
|
|
通常、ユニット番号はシステムによって自動的に選択されますので、ユニット番号は
|
|
.Dv -1
|
|
が与えられるべきです。
|
|
指定のユニット番号が希望された時に (例えばハードウェアの一部分を
|
|
あらかじめ設定されたユニット番号に結びつけるため)、unit は渡されるべきです。
|
|
指定されたユニット番号が既に割り当てられていた場合には、新しいユニット番号が
|
|
割り当てられ、診断メッセージが表示されます。
|
|
.Pp
|
|
指定の順序でプローブされなければならないバス (例えば ISA バス用の幾つかの
|
|
デバイスは関連の無いドライバのプローブの試みの失敗に敏感で、それゆえ
|
|
最初にプローブされなければならない) にアタッチされたデバイスの場合には、
|
|
.Fn device_add_child_ordered
|
|
の
|
|
.Fa order
|
|
引数が半順序を指定するために使用されるべきです。
|
|
新しいデバイスは、
|
|
既存のより大きい順序を持つすべてのデバイスの前に追加されます。
|
|
.Fn device_add_child
|
|
が使用された場合には、順序が 0 であるとして新しい子が追加されます。
|
|
.Pp
|
|
.Xr DEVICE_IDENTIFY 9
|
|
ルーチンのコンテキストでデバイスを追加するときには、
|
|
そのデバイスが既にツリーに追加されていないことを保証するために
|
|
いくつかの注意が払われなければなりません。
|
|
なぜならば、そのデバイスの名前と
|
|
.Vt devclass_t
|
|
はプローブ時に (子の追加時ではなく) 関連付けられ、(モジュールの中で
|
|
後でアンロードされたと示されている) そのドライバの前のインスタンスが
|
|
既に追加されているかもしれないからです。
|
|
バスドライバの作者は同様に、
|
|
子デバイスの複製を避けるためにロードおよびアンロードされるときに、
|
|
子の追加時にも注意しなければなりません。
|
|
.Sh 戻り値
|
|
成功時には新しいデバイスが、そうでなければ NULL が返されます。
|
|
.Sh 関連項目
|
|
.Xr device 9
|
|
.Sh 作者
|
|
このマニュアルページは
|
|
.An Doug Rabson
|
|
が書きました。
|