DEVICE(9)

名称
device - デバイスの抽象表現

書式
typedef struct device *device_t;

解説
デバイスオブジェクトは拡張カード、カードが挿されるバス、拡張カードに接続される ディスクドライブなどのシステムにアタッチされたハードウェアの一部を表現します。 システムは 1 つのデバイス root_bus を定義し、 他の全てのデバイスは自動コンフィギュレーションの間に動的に生成されます。 通常、システム (ISA, PCI など) の中のトップレベルのバスを表現するデバイスは、 root_bus に直接アタッチされ、他のデバイスはそれらの適切なバスの子として追加されます。

システムの中のデバイスは木構造を形成します。 root_bus を除く全てのデバイスは親 ( device_get_parent(9) を参照) を持っています。 加えて、全てのデバイスはそれにアタッチされる子 ( device_add_child(9), device_add_child_ordered(9), device_find_child(9), device_get_children(9), device_delete_child(9) を参照) を持つことが可能です。

プローブに成功してシステムにアタッチされているデバイスは ドライバ ( device_get_driver(9) と driver(9) を参照) およびデバイスクラス ( device_get_devclass(9) と devclass(9) を参照) も持ちます。 デバイスの様々な他の属性は、ユニット番号 ( device_get_unit(9) を参照)、 (通常ドライバによって供給される) 冗長な記述 ( device_set_desc(9) と device_get_desc(9) を参照)、 バス固有の変数の組 ( device_get_ivars(9) を参照)、 および driver 固有の変数の組 ( device_get_softc(9) を参照) を含みます。

デバイスは以下の幾つかの状態の内の 1 つをとることが可能です。

DS_NOTPRESENT
    デバイスは存在確認のプローブがされていないか、失敗しました。

DS_ALIVE
    デバイスのプローブには成功しましたが、まだアタッチされていません。

DS_ATTACHED
    デバイスのアタッチが成功しました。

DS_BUSY
    デバイスは現在オープンされています。

デバイスの現在の状態は、 device_get_state(9) の呼び出しにより決定することが可能です。

関連項目
devclass(9), driver(9)

作者
このマニュアルページは Doug Rabson が書きました。