diff options
author | gibbs <gibbs@FreeBSD.org> | 1996-01-31 18:06:52 +0000 |
---|---|---|
committer | gibbs <gibbs@FreeBSD.org> | 1996-01-31 18:06:52 +0000 |
commit | 2c21792fe158125a1c7f61c1ac916b49f85055d0 (patch) | |
tree | 19659a97fe486abc3af62ae36c2daceb5c1220ee /usr.sbin | |
parent | 7117d2e0cf16a0c2fd3222367e3a6591cd388493 (diff) | |
download | FreeBSD-src-2c21792fe158125a1c7f61c1ac916b49f85055d0.zip FreeBSD-src-2c21792fe158125a1c7f61c1ac916b49f85055d0.tar.gz |
Decend the list of ioaddrs and maddrs for eisa devices and print them out
for lsdev -c.
Diffstat (limited to 'usr.sbin')
-rw-r--r-- | usr.sbin/lsdev/i386.c | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/usr.sbin/lsdev/i386.c b/usr.sbin/lsdev/i386.c index 5fa8040..8b88fbc 100644 --- a/usr.sbin/lsdev/i386.c +++ b/usr.sbin/lsdev/i386.c @@ -158,15 +158,26 @@ print_isa(struct devconf *dc) } static void +print_eisa_resvaddrs(struct resvlist *list) +{ + resvaddr_t *rp; + + for (rp = list->lh_first; rp; rp = rp->links.le_next) + printf(" %#lx-%#lx%s", rp->addr, rp->addr + rp->size - 1, + rp->links.le_next ? "," : ""); +} + +static void print_eisa(struct devconf *dc) { struct eisa_device *e_dev = (struct eisa_device *)dc->dc_data; - printf("%s%d\tat eisa0 slot %d # %#lx-%#lx", - dc->dc_name, - dc->dc_unit, - e_dev->ioconf.slot, - e_dev->ioconf.iobase, - e_dev->ioconf.iobase + e_dev->ioconf.iosize - 1); + + printf("%s%d\tat eisa0 slot %d #", + dc->dc_name, + dc->dc_unit, + e_dev->ioconf.slot); + print_eisa_resvaddrs(&e_dev->ioconf.ioaddrs); + print_eisa_resvaddrs(&e_dev->ioconf.maddrs); if(e_dev->ioconf.irq) printf(" irq %d", ffs(e_dev->ioconf.irq) - 1); } |