M. Warner Losh wrote:
In message: <[EMAIL PROTECTED]>
            John-Mark Gurney <[EMAIL PROTECTED]> 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

Agreed. Renaming the function would be a gross overreaction to a very minor problem is that is easily solved with better documentation.

Scott

_______________________________________________
cvs-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to