デバイスの現在の状態は、
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
状態に遷移します。