BUS_CHILD_PRESENT(9)

名称
bus_child_present - バスドライバへのデバイスが実際に存在しているかどうかの確認の問い合わせ

書式
<sys/param.h> <sys/bus.h>

<machine/bus.h> <sys/rman.h> <machine/resource.h> int bus_child_present(device_t dev)

解説
bus_child_present() 関数は、 dev の親デバイスドライバに対し、 dev で記述されるハードウェアが現時点でいまだに物理的にアクセス可能であるか どうかをチェックすることを要求します。 利用可能の概念はバス毎に異なりますが、 一般的には利用できないハードウェアとは、利用できるときには bus_space*() メソッドを介してアクセスできるものが、 bus_space*() メソッドを介してアクセスできないものを指します。

これは “このデバイスは子デバイスを持っていますか?” という質問を尋ねません。 この質問は device_get_children(9) によってより良く回答されることが可能です。

戻り値
0 の戻り値はシステム内にそのデバイスが存在しないことを示します。 0 ではない戻り値はシステム内にそのデバイスが存在すること、または そのデバイスの状態が決定できないことを示します。

使用例
これはあるサンプルコードです。 dc(4) デバイスが実際に存在する時に、stop を呼び出すだけです。

    device_t dev;
    dc_softc *sc;
    sc = device_get_softc(dev);
    if (bus_child_present(dev))
    	dc_stop(sc);

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

作者
このマニュアルページは Warner Losh <imp@FreeBSD.org> が書きました。