.\" -*- 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.9,v 1.15 2003/10/23 01:54:06 hmp Exp % .\" .\" $FreeBSD$ .Dd June 16, 1998 .Dt DEVICE 9 .Os .Sh 名称 .Nm device .Nd デバイスの抽象表現 .Sh 書式 .Vt typedef struct device *device_t ; .Sh 解説 デバイスオブジェクトは拡張カード、カードが挿されるバス、拡張カードに接続される ディスクドライブなどのシステムにアタッチされたハードウェアの一部を表現します。 システムは 1 つのデバイス .Va root_bus を定義し、 他の全てのデバイスは自動コンフィギュレーションの間に動的に生成されます。 通常、システム (ISA, PCI など) の中のトップレベルのバスを表現するデバイスは、 .Va root_bus に直接アタッチされ、他のデバイスはそれらの適切なバスの子として追加されます。 .Pp システムの中のデバイスは木構造を形成します。 .Va root_bus を除く全てのデバイスは親 ( .Xr device_get_parent 9 を参照) を持っています。 加えて、全てのデバイスはそれにアタッチされる子 ( .Xr device_add_child 9 , .Xr device_add_child_ordered 9 , .Xr device_find_child 9 , .Xr device_get_children 9 , .Xr device_delete_child 9 を参照) を持つことが可能です。 .Pp プローブに成功してシステムにアタッチされているデバイスは ドライバ ( .Xr device_get_driver 9 と .Xr driver 9 を参照) およびデバイスクラス ( .Xr device_get_devclass 9 と .Xr devclass 9 を参照) も持ちます。 デバイスの様々な他の属性は、ユニット番号 ( .Xr device_get_unit 9 を参照)、 (通常ドライバによって供給される) 冗長な記述 ( .Xr device_set_desc 9 と .Xr device_get_desc 9 を参照)、 バス固有の変数の組 ( .Xr device_get_ivars 9 を参照)、 および driver 固有の変数の組 ( .Xr device_get_softc 9 を参照) を含みます。 .Pp デバイスは以下の幾つかの状態の内の 1 つをとることが可能です。 .Bl -tag -width DS_NOTPRESENT .It Dv DS_NOTPRESENT デバイスは存在確認のプローブがされていないか、失敗しました。 .It Dv DS_ALIVE デバイスのプローブには成功しましたが、まだアタッチされていません。 .It Dv DS_ATTACHED デバイスのアタッチが成功しました。 .It Dv DS_BUSY デバイスは現在オープンされています。 .El .Pp デバイスの現在の状態は、 .Xr device_get_state 9 の呼び出しにより決定することが可能です。 .Sh 関連項目 .Xr devclass 9 , .Xr driver 9 .Sh 作者 このマニュアルページは .An Doug Rabson が書きました。