Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 24 May 2001 11:06:57 +0100 (BST)
From:      Doug Rabson <dfr@nlsystems.com>
To:        Brian Somers <brian@Awfulhak.org>
Cc:        Mike Smith <msmith@FreeBSD.ORG>, <freebsd-arch@FreeBSD.ORG>
Subject:   Re: RFC: unit_list routines 
Message-ID:  <Pine.BSF.4.33.0105241105060.58788-100000@herring.nlsystems.com>
In-Reply-To: <200105232020.f4NKK2F10389@hak.lan.Awfulhak.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 23 May 2001, Brian Somers wrote:

> > > > > >I didn't do it that way because the ``usual'' way units are allocated
> > > > > >is sequentially.  Using bits when there are large numbers of units
> > > > > >gets awkward.  I figured what was required was something small and
> > > > > >simple that would cover the requirements of most/all drivers that
> > > > > >need to track their units so that it's easy to find an unused one,
> > > > > >and it's easy to allocate/deallocate things.
> > > > >
> > > > > How does newbus allocate/manage unit numbers ?
> > > >
> > > > I don't think it does.  The only way to find out what's in use
> > > > (AFAIK) is by looking at every specinfo in dev_hash....
> > >
> > > Er, what exactly are you smoking?
> > >
> > > Newbus manages unit numbers using the devclass:
> > >
> > > struct devclass {
> > >     TAILQ_ENTRY(devclass) link;
> > >     driver_list_t       drivers; /* bus devclasses store drivers for bus */
> > >     char                *name;
> > >     device_t            *devices; /* array of devices indexed by unit */
> > >     int                 maxunit; /* size of devices array */
> > > };
> >
> > Yes, Garrett pointed this out.  I misunderstood the question because
> > newbus doesn't manage unit numbers.  It ``manages'' the maximum unit
> > number allocated and nothing else.
> >
> > My answer was describing the only way I know of to figure out which
> > units for a given device are allocated/opened.
>
> Hmm, hang on.  I'll stop smoking....  If that device_t array knows
> which devices are open it could solve my problems...

This object will not help you unless we rewrite the pseudo devices to use
newbus. You don't have a device_t instance for your tunX instance. I can
think of good reasons for wanting to represent pseudo devices with newbus
but it doesn't work that way right now.

-- 
Doug Rabson				Mail:  dfr@nlsystems.com
					Phone: +44 20 8348 6160



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.33.0105241105060.58788-100000>