Date: 29 Jan 1996 20:24:42 +0100 From: tom@smart.ruhr.de (Thomas Neumann) To: Chien-Ta Lee <jdli@Adonis.Dorm10.NCTU.edu.tw> Cc: freebsd-current@freebsd.org Subject: Re: lsdev broken Message-ID: <8720oikdmt.fsf@smart.ruhr.de> In-Reply-To: Chien-Ta Lee's message of Mon, 29 Jan 1996 23:24:21 %2B0800 (CST) References: <199601291524.XAA16030@Adonis.Dorm10.NCTU.edu.tw>
next in thread | previous in thread | raw e-mail | index | archive | help
Yep, that one stopped my "make world" a few minutes ago, too.
I was so anoyed that I just *had* to fix it :-) See the patch
below, which modifies lsdev to print a comma separated list
of I/O ranges (if there's more than one entry. With a single
I/O range the output should be compatible with prevoius versions
of lsdev). Someone with an EISA system should try this, as
I don't have an EISA machine and thus the code is untested by me.
-t
*** usr.sbin/lsdev/i386.c.old Wed Dec 13 17:07:19 1995
--- usr.sbin/lsdev/i386.c Mon Jan 29 20:15:21 1996
***************
*** 159,171 ****
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);
if(e_dev->ioconf.irq)
printf(" irq %d", ffs(e_dev->ioconf.irq) - 1);
--- 159,182 ----
static void
+ print_eisa_ioaddrs(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 # ",
dc->dc_name,
dc->dc_unit,
! e_dev->ioconf.slot);
! print_eisa_ioaddrs(&e_dev->ioconf.ioaddrs);
!
if(e_dev->ioconf.irq)
printf(" irq %d", ffs(e_dev->ioconf.irq) - 1);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8720oikdmt.fsf>
