Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 20 Apr 2016 10:58:48 -0500
From:      Pedro Giffuni <pfg@FreeBSD.org>
To:        Bruce Evans <brde@optusnet.com.au>, Conrad Meyer <cem@freebsd.org>
Cc:        araujo@freebsd.org, John Baldwin <jhb@freebsd.org>, "src-committers@freebsd.org" <src-committers@freebsd.org>, "svn-src-all@freebsd.org" <svn-src-all@freebsd.org>, "svn-src-head@freebsd.org" <svn-src-head@freebsd.org>
Subject:   Re: svn commit: r298247 - head/sbin/fdisk_pc98
Message-ID:  <c11cad52-38ab-e40f-7408-b61cad5b9554@FreeBSD.org>
In-Reply-To: <20160421004457.L1073@besplex.bde.org>
References:  <201604190446.u3J4kD9G050780@repo.freebsd.org> <4114217.PtcV9LDMal@ralph.baldwin.cx> <CAOfEmZhofgYySTtMKAXo-Qkm8BRaOP8kzEfchdtPTH3T-0W-qQ@mail.gmail.com> <20160420115844.Y967@besplex.bde.org> <c53f4273-d84a-0321-5ba0-d8f99ac6366a@FreeBSD.org> <CAG6CVpUnbsgJUbZQzrtWN9mTX3_XBEpQ2ObmcjfF9WjpC9dZCA@mail.gmail.com> <20160421004457.L1073@besplex.bde.org>

next in thread | previous in thread | raw e-mail | index | archive | help


On 04/20/16 10:15, Bruce Evans wrote:
> On Wed, 20 Apr 2016, Conrad Meyer wrote:
>
>> On Wed, Apr 20, 2016 at 7:33 AM, Pedro Giffuni <pfg@freebsd.org> wrote:
>>> One of the things I dislike is that most of the macros are in
>>> lowercase. Lowercase would make sense if these were inline functions
>>> but inline functions have disadvantages for these use cases.
>>> OTOH, if they were uppercase, they would not be very easy on the eyes,
>>> which is the current advantage.
>
> Lower case is correct if nitems is a safe macro.  I think it is safe,
> because its parameter must be an array and an expression with side
> effects can't be an array.
>

Ahh .. so I guess it's not that bad then :-/.

>> You bring up a good point.  Obviously nitems() can't be an inline
>> function, but roundup2() and friends could.  Is there any reason not
>> to change them over to inline functions?
>
> 1. Namespace pollution.  Adding nitems() to sys/param.h already broke
>    anything using that name.
>

Yes, and there's nothing to do now.

> 2. roundup2() and friends can't be inline functions without unportable
>    complications to make them type-generic.  No one ever did this for
>    the more important imin() family of inline functions.  4.4BSD removed
>    the MAX() and MIN() macros in the kernel to enforce use of the imin()
>    family, but this gave type errors and was routed around by restoring
>    the macros, first in scattered places and then back in sys/param.h.
>

I see, the imin() stuff is in sys/libkern.h. Looks like a nice use case
for coccinelle.

Pedro.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?c11cad52-38ab-e40f-7408-b61cad5b9554>