DEVICE_GET_STATE(9)

名称
device_get_state, device_busy, device_unbusy, device_is_alive, device_is_attached - デバイス状態の操作

書式
<sys/param.h> <sys/bus.h> device_state_t device_get_state(device_t dev) void device_busy(device_t dev) void device_unbusy(device_t dev) int device_is_alive(device_t dev) int device_is_attached(device_t dev)

解説
デバイスの現在の状態は、 DS_NOTPRESENT, DS_ALIVE, DS_ATTACHED, DS_BUSY ( device(9) で説明されています) を返す device_get_state() の呼び出しによってアクセスされます。 デバイスがうまくプローブされたことを確認するには、単純に状態が DS_ALIVE 以上であるかどうかを返す device_is_alive() を呼び出します。 デバイスがうまくアタッチされたことを確認するには、単純に状態が DS_ATTACHED 以上であるかどうかを返す device_is_attached() を呼び出します。

個々のデバイスは、 device_busy() が呼び出された時にインクリメントされ、 device_unbusy() が呼び出された時にデクリメントされるビジーカウントを持っています。 どちらのルーチンもデバイスの状態が DS_ATTACHED より小さい場合にはエラーを返します。

デバイスが DS_ATTACHED 状態で device_busy() が呼び出された時には、デバイスは DS_BUSY 状態に遷移します。 device_unbusy() が呼び出されでデクリメントされた後にデバイスのビジーカウントが 0 ならば、 デバイスは DS_ATTACHED 状態に遷移します。

関連項目
device(9)

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