cvs commit: src/sys/dev/ata ata-all.c
Scott Long
scottl at samsco.org
Tue Apr 22 13:22:47 UTC 2008
M. Warner Losh wrote:
> In message: <20080421233847.GM82555 at funkthat.com>
> John-Mark Gurney <jmg at 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
Agreed. Renaming the function would be a gross overreaction to a very
minor problem is that is easily solved with better documentation.
Scott
More information about the cvs-src
mailing list