summaryrefslogtreecommitdiffstats
path: root/usr.sbin
diff options
context:
space:
mode:
authorgibbs <gibbs@FreeBSD.org>1996-01-31 18:06:52 +0000
committergibbs <gibbs@FreeBSD.org>1996-01-31 18:06:52 +0000
commit2c21792fe158125a1c7f61c1ac916b49f85055d0 (patch)
tree19659a97fe486abc3af62ae36c2daceb5c1220ee /usr.sbin
parent7117d2e0cf16a0c2fd3222367e3a6591cd388493 (diff)
downloadFreeBSD-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.c23
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);
}
OpenPOWER on IntegriCloud