svn commit: r217369 - in head/sys: cam/scsi sys

Garrett Cooper gcooper at FreeBSD.org
Sat Jan 15 03:23:01 UTC 2011


On Fri, Jan 14, 2011 at 6:42 PM, Bruce Evans <brde at optusnet.com.au> wrote:
> On Fri, 14 Jan 2011 mdf at FreeBSD.org wrote:
>
>> On Thu, Jan 13, 2011 at 10:50 PM, Bruce Evans <brde at optusnet.com.au>
>> wrote:
>>>
>>> On Thu, 13 Jan 2011 mdf at freebsd.org wrote:
>>>
>>>> There appear to be 330 uses of SYSCTL and QUAD on the same line in
>>>> CURRENT.  This seems reasonable to change them to S64, U64 and X64 so
>>>> they correctly reflect the size they operate upon.
>>>>
>>>> What do y'all think?
>>>
>>> Now I suggest delaying this until they can be renamed to a type- generic
>>> SYSCTL_INT() (would probably need to be spelled differently, SYSCTL_I()
>>> say, even if SYSCTL_INT() was changed at the same time).
>>
>> I'm torn on this one.  The compiler knows the type (unless, for
>> SYSCTL_INT, NULL/0 is used, but that is also a compile-time check),
>> but to interpret it requires the use of __builtin_foo which is a gcc
>> extension and not part of standard C.
>>
>> Philosophically, while I like this kind of letting the compiler do the
>> work, if you want C++ you know where to find it.
>
> Oops.  I think sizeof() and issigned() can be used to determine the type
> well enough in functions and initialized data (do a fuller type check if
> the compiler supports it), but I don't know how to do this in static
> sysctl declarations (since sizeof() can't be used in cpp expressions).

    Why not just create some dumb testcases that can be run at build
time to determine that for you?
-Garrett


More information about the svn-src-all mailing list