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>