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...
NAMEdevice_get_state device_busy device_unbusy device_is_alive device_is_attached - manipulate device state
SYNOPSISIn sys/param.h In sys/bus.h Ft device_state_t Fn device_get_state device_t dev Ft void Fn device_busy device_t dev Ft void Fn device_unbusy device_t dev Ft int Fn device_is_alive device_t dev Ft int Fn device_is_attached device_t dev
DESCRIPTIONThe current state of a device is accessed by calling Fn device_get_state which returns DS_NOTPRESENT DS_ALIVE DS_ATTACHED or DS_BUSY (described in device(9)). To test see if a device was successfully probed, call Fn 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 Fn 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 Fn device_busy is called and decremented when Fn device_unbusy is called. Both routines return an error if the device state is less than DS_ATTACHED
When Fn device_busy is called on a device in the DS_ATTACHED state, the device changes to the DS_BUSY state. When Fn device_unbusy is called and after decrementing, the busy count for the device is zero, the device changes to the DS_ATTACHED state.