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>