Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 21 Apr 2008 21:38:58 -0600 (MDT)
From:      "M. Warner Losh" <imp@bsdimp.com>
To:        jmg@funkthat.com
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
Message-ID:  <20080421.213858.932034124.imp@bsdimp.com>
In-Reply-To: <20080421233847.GM82555@funkthat.com>
References:  <20080421213724.GL82555@funkthat.com> <480D0E44.9070201@samsco.org> <20080421233847.GM82555@funkthat.com>

next in thread | previous in thread | raw e-mail | index | archive | help
In message: <20080421233847.GM82555@funkthat.com>
            John-Mark Gurney <jmg@funkthat.com> 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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080421.213858.932034124.imp>