summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_devconf.c
diff options
context:
space:
mode:
authorwollman <wollman@FreeBSD.org>1994-10-23 21:28:03 +0000
committerwollman <wollman@FreeBSD.org>1994-10-23 21:28:03 +0000
commit7b8e09399aded7c12a148b104ccf05419e73ba88 (patch)
treec2370b235711beb410091996b92230bc38cd2a7e /sys/kern/kern_devconf.c
parent5727d2fc7e7202ade434ecfa3f1e91a6f714d47e (diff)
downloadFreeBSD-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.c22
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
OpenPOWER on IntegriCloud