From owner-freebsd-arch Wed May 23 13:17:26 2001 Delivered-To: freebsd-arch@freebsd.org Received: from Awfulhak.org (awfulhak.demon.co.uk [194.222.196.252]) by hub.freebsd.org (Postfix) with ESMTP id D061137B423; Wed, 23 May 2001 13:17:21 -0700 (PDT) (envelope-from brian@Awfulhak.org) Received: from hak.lan.Awfulhak.org (root@hak.lan.Awfulhak.org [172.16.0.12]) by Awfulhak.org (8.11.3/8.11.3) with ESMTP id f4NKHKY12437; Wed, 23 May 2001 21:17:20 +0100 (BST) (envelope-from brian@lan.Awfulhak.org) Received: from hak.lan.Awfulhak.org (brian@localhost [127.0.0.1]) by hak.lan.Awfulhak.org (8.11.3/8.11.3) with ESMTP id f4NKHIF10323; Wed, 23 May 2001 21:17:18 +0100 (BST) (envelope-from brian@hak.lan.Awfulhak.org) Message-Id: <200105232017.f4NKHIF10323@hak.lan.Awfulhak.org> X-Mailer: exmh version 2.3.1 01/18/2001 with nmh-1.0.4 To: Mike Smith Cc: Brian Somers , freebsd-arch@FreeBSD.ORG, brian@Awfulhak.org Subject: Re: RFC: unit_list routines In-Reply-To: Message from Mike Smith of "Wed, 23 May 2001 13:17:51 PDT." <200105232017.f4NKHp400923@mass.dis.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Wed, 23 May 2001 21:17:18 +0100 From: Brian Somers Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG > > > >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. > -- > ... every activity meets with opposition, everyone who acts has his > rivals and unfortunately opponents also. But not because people want > to be opponents, rather because the tasks and relationships force > people to take different points of view. [Dr. Fritz Todt] > V I C T O R Y N O T V E N G E A N C E -- Brian Don't _EVER_ lose your sense of humour ! To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message