The current state of a device is accessed by calling
device_get_state ();
which returns
DS_NOTPRESENTDS_ALIVEDS_ATTACHED
or
DS_BUSY
(described in
device(9)).
To test see if a device was successfully probed, call
device_is_alive ();
which simply returns if the state is greater or equal to
DS_ALIVE
To test see if a device was successfully attached, call
device_is_attached ();
which simply returns if the state is greater or equal to
DS_ATTACHED
Each device has a busy count which is incremented when
device_busy ();
is called and decremented when
device_unbusy ();
is called.
Both routines return an error if the device state is less than
DS_ATTACHED
When
device_busy ();
is called on a device in the
DS_ATTACHED
state, the device changes to the
DS_BUSY
state.
When
device_unbusy ();
is called and after decrementing, the busy count for the device is
zero, the device changes to the
DS_ATTACHED
state.