diff options
author | wollman <wollman@FreeBSD.org> | 1994-10-23 21:28:03 +0000 |
---|---|---|
committer | wollman <wollman@FreeBSD.org> | 1994-10-23 21:28:03 +0000 |
commit | 7b8e09399aded7c12a148b104ccf05419e73ba88 (patch) | |
tree | c2370b235711beb410091996b92230bc38cd2a7e /sys/kern/kern_devconf.c | |
parent | 5727d2fc7e7202ade434ecfa3f1e91a6f714d47e (diff) | |
download | FreeBSD-src-7b8e09399aded7c12a148b104ccf05419e73ba88.zip FreeBSD-src-7b8e09399aded7c12a148b104ccf05419e73ba88.tar.gz |
Finished device configuration database work for all ISA devices (except `ze')
and all SCSI devices (except that it's not done quite the way I want). New
information added includes:
- A text description of the device
- A ``state''---unknown, unconfigured, idle, or busy
- A generic parent device (with support in the m.i. code)
- An interrupt mask type field (which will hopefully go away) so that
. ``doconfig'' can be written
This requires a new version of the `lsdev' program as well (next commit).
Diffstat (limited to 'sys/kern/kern_devconf.c')
-rw-r--r-- | sys/kern/kern_devconf.c | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/sys/kern/kern_devconf.c b/sys/kern/kern_devconf.c index 39f728c..1e2c159 100644 --- a/sys/kern/kern_devconf.c +++ b/sys/kern/kern_devconf.c @@ -22,7 +22,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: kern_devconf.c,v 1.1 1994/10/16 03:52:13 wollman Exp $ + * $Id: kern_devconf.c,v 1.3 1994/10/19 01:59:11 wollman Exp $ */ /* @@ -103,11 +103,27 @@ static void make_devconf(struct kern_devconf *kdc, struct devconf *dc) { strncpy(dc->dc_name, kdc->kdc_name, sizeof dc->dc_name); - dc->dc_name[sizeof dc->dc_name - 1] = '\0'; + dc->dc_name[(sizeof dc->dc_name) - 1] = '\0'; dc->dc_unit = kdc->kdc_unit; - dc->dc_md = kdc->kdc_md; dc->dc_number = kdc->kdc_number; + + if(kdc->kdc_parent) { + strncpy(dc->dc_pname, kdc->kdc_parent->kdc_name, sizeof dc->dc_pname); + dc->dc_pname[(sizeof dc->dc_pname) - 1] = '\0'; + dc->dc_punit = kdc->kdc_parent->kdc_unit; + dc->dc_pnumber = kdc->kdc_parent->kdc_number; + } else { + bzero(dc->dc_pname, sizeof dc->dc_pname); + dc->dc_punit = -1; + dc->dc_pnumber = -1; + } + + MACHDEP_COPYDEV(dc, kdc); + dc->dc_state = kdc->kdc_state; dc->dc_datalen = kdc->kdc_datalen; + + strncpy(dc->dc_descr, kdc->kdc_description, sizeof dc->dc_descr); + dc->dc_descr[(sizeof dc->dc_descr) - 1] = '\0'; } int |