1.\" -*- nroff -*- 2.\" 3.\" Copyright (c) 1998 Doug Rabson 4.\" 5.\" All rights reserved. 6.\" 7.\" This program is free software. 8.\" 9.\" Redistribution and use in source and binary forms, with or without 10.\" modification, are permitted provided that the following conditions 11.\" are met: 12.\" 1. Redistributions of source code must retain the above copyright 13.\" notice, this list of conditions and the following disclaimer. 14.\" 2. Redistributions in binary form must reproduce the above copyright 15.\" notice, this list of conditions and the following disclaimer in the 16.\" documentation and/or other materials provided with the distribution. 17.\" 18.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR 19.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 20.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 21.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, 22.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 23.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28.\" 29.\" $FreeBSD$ 30.\" 31.Dd June 16, 1998 32.Dt DEVICE_GET_STATE 9 33.Os 34.Sh NAME 35.Nm device_get_state , 36.Nm device_busy , 37.Nm device_unbusy , 38.Nm device_is_alive , 39.Nm device_is_attached 40.Nd manipulate device state 41.Sh SYNOPSIS 42.In sys/param.h 43.In sys/bus.h 44.Ft device_state_t 45.Fn device_get_state "device_t dev" 46.Ft void 47.Fn device_busy "device_t dev" 48.Ft void 49.Fn device_unbusy "device_t dev" 50.Ft int 51.Fn device_is_alive "device_t dev" 52.Ft int 53.Fn device_is_attached "device_t dev" 54.Sh DESCRIPTION 55The current state of a device is accessed by calling 56.Fn device_get_state 57which returns 58.Dv DS_NOTPRESENT , 59.Dv DS_ALIVE , 60.Dv DS_ATTACHED 61or 62.Dv DS_BUSY 63(described in 64.Xr device 9 ) . 65To test see if a device was successfully probed, call 66.Fn device_is_alive 67which simply returns if the state is greater or equal to 68.Dv DS_ALIVE . 69To test see if a device was successfully attached, call 70.Fn device_is_attached 71which simply returns if the state is greater or equal to 72.Dv DS_ATTACHED . 73.Pp 74Each device has a busy count which is incremented when 75.Fn device_busy 76is called and decremented when 77.Fn device_unbusy 78is called. 79Both routines return an error if the device state is less than 80.Dv DS_ATTACHED . 81.Pp 82When 83.Fn device_busy 84is called on a device in the 85.Dv DS_ATTACHED 86state, the device changes to the 87.Dv DS_BUSY 88state. 89When 90.Fn device_unbusy 91is called and after decrementing, the busy count for the device is 92zero, the device changes to the 93.Dv DS_ATTACHED 94state. 95.Sh SEE ALSO 96.Xr device 9 97.Sh AUTHORS 98This manual page was written by 99.An Doug Rabson . 100