From owner-cvs-src@FreeBSD.ORG Tue Apr 22 03:38:14 2008 Return-Path: Delivered-To: cvs-src@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9B5A1106564A; Tue, 22 Apr 2008 03:38:14 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from harmony.bsdimp.com (bsdimp.com [199.45.160.85]) by mx1.freebsd.org (Postfix) with ESMTP id 53D518FC1A; Tue, 22 Apr 2008 03:38:14 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from localhost (localhost [127.0.0.1]) by harmony.bsdimp.com (8.14.2/8.14.1) with ESMTP id m3M3btBG038706; Mon, 21 Apr 2008 21:37:55 -0600 (MDT) (envelope-from imp@bsdimp.com) Date: Mon, 21 Apr 2008 21:38:58 -0600 (MDT) Message-Id: <20080421.213858.932034124.imp@bsdimp.com> To: jmg@funkthat.com From: "M. Warner Losh" In-Reply-To: <20080421233847.GM82555@funkthat.com> References: <20080421213724.GL82555@funkthat.com> <480D0E44.9070201@samsco.org> <20080421233847.GM82555@funkthat.com> X-Mailer: Mew version 5.2 on Emacs 21.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: cvs-src@FreeBSD.org, scottl@samsco.org, bz@FreeBSD.org, cvs-all@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: cvs commit: src/sys/dev/ata ata-all.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Apr 2008 03:38:14 -0000 In message: <20080421233847.GM82555@funkthat.com> John-Mark Gurney writes: : Scott Long wrote this message on Mon, Apr 21, 2008 at 15:59 -0600: : > John-Mark Gurney wrote: : > >Bjoern A. Zeeb wrote this message on Sun, Apr 20, 2008 at 17:45 +0000: : > >>bz 2008-04-20 17:45:32 UTC : > >> : > >> FreeBSD src repository : > >> : > >> Modified files: : > >> sys/dev/ata ata-all.c : > >> Log: : > >> devclass_get_maxunit() returns n+1 with n starting at 0. : > >> So if we have channel 0..3 devclass_get_maxunit is 4. : > >> : > >> It's never been a problem as devclass_get_device() has : > >> catched a possibly bad input. : > > : > >Any one object to changing: : > >.Nm devclass_get_maxunit : > >.Nd find the maximum unit number in the class : > > : > >to: : > >.Nm devclass_get_maxunit : > >.Nd find the next free unit number in the class : > : > That's not what it actually returns though. It returned the highest : > allocated unit number plus 1. The unit numbering can be sparse, with : > the next available unit number being less than the highest allocated : > unit number. : : Yeh, that was partly about changing the description... Can you think of : a better name besides devclass_get_maxunitplusone? : : > Most callers use this value as the limit in a for loop, hence why it's : > convenient for it to return the +1. : : Yeh, but it definately does not return maxunit.. :) unitarraysize? : : Hmmm... find isn't a useful verb, since it doesn't do any finding... : it returns a stored value... How about: : .Nd return the max number of units in the class : : And then flush out the description about using it for an array? Though : it doesn't solve the naming issue... Well, there already is: >> This is one greater than the highest currently allocated unit. in the man page. Consider the following diff: Index: devclass_get_maxunit.9 =================================================================== RCS file: /home/ncvs/src/share/man/man9/devclass_get_maxunit.9,v retrieving revision 1.8 diff -u -r1.8 devclass_get_maxunit.9 --- devclass_get_maxunit.9 28 Jun 2005 20:15:18 -0000 1.8 +++ devclass_get_maxunit.9 22 Apr 2008 03:37:47 -0000 @@ -33,16 +33,22 @@ .Os .Sh NAME .Nm devclass_get_maxunit -.Nd find the maximum unit number in the class +.Nd finds a number larger than any allocated unit .Sh SYNOPSIS .In sys/param.h .In sys/bus.h .Ft int .Fn devclass_get_maxunit "devclass_t dc" .Sh DESCRIPTION -Returns the next unit number to be allocated to device instances in the +Returns a number greater than the highest allocated unit for this .Dv devclass . This is one greater than the highest currently allocated unit. +Loops may use this number as an upper bound for getting the +.Dv device +associated with the nth unit of +.Dv devclass . +A new unit allocated for this device will not necessarily be the +returned value of this function. .Sh SEE ALSO .Xr devclass 9 , .Xr device 9 @@ -51,3 +57,4 @@ .An Doug Rabson . .Sh BUGS The name is confusing since it is one greater than the maximum unit. + I don't think we should rename it, however. I don't believe the gain will be worth the MFC hassles it will cause. Warner