Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 6 Mar 2004 21:22:33 -0800
From:      Luigi Rizzo <rizzo@icir.org>
To:        Johan Karlsson <johan@freebsd.org>
Cc:        ipfw@freebsd.org
Subject:   Re: where do %j/uintmax_t stand in terms of standards? [WAS: Re: WARNS cleanup for ipfw
Message-ID:  <20040306212233.A56351@xorpc.icir.org>
In-Reply-To: <20040306173219.GB64109@numeri.campus.luth.se>; from johan@freebsd.org on Sat, Mar 06, 2004 at 06:32:19PM %2B0100
References:  <20040306111922.GA64109@numeri.campus.luth.se> <20040306082625.B34490@xorpc.icir.org> <20040306173219.GB64109@numeri.campus.luth.se>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Mar 06, 2004 at 06:32:19PM +0100, Johan Karlsson wrote:
> [lets move this from ipfw@ to standars@ to get an answer]
> 
> 
> On Sat, Mar 06, 2004 at 08:26 (-0800) +0000, Luigi Rizzo wrote:
> > On Sat, Mar 06, 2004 at 12:19:22PM +0100, Johan Karlsson wrote:
> > > Hi
> > > 
> > > the attached patch makes ipfw WARNS=2 clean by using the
> > > %j/(uintmax_t) combo where so needed. If there are no
> > > objections I intend to commit this patch.
> 
> First of all, %j/uintmax_t is used since uint64_t does not match
> long long on all our platforms. Hence to print this without warning
> we need to do this.

ok, given that our counters _are_ 64 bits on all platforms, and
that it would be nice to use the same code on 4.x and 5.x (at least,
I'd hate to see a large number of differences for something trivial
as a printf specifier), i suggest to leave the print format as "%llu",
which is supported on all versions and platforms, and change
align_uint64() as following:

-static __inline uint64_t
+static unsigned long long
 align_uint64(uint64_t *pll) {
	uint64_t ret;

+	/* make sure the value is correctly aligned, as pll might be not */
	bcopy (pll, &ret, sizeof(ret));
-	return ret;
+	return (unsigned long long)ret;
 };

(we do not care about __inline since this is always called 
within a *printf() which is way more expensive).
This should close the issue, and is a lot more readable and
portable than the proposed patch or my previous suggestion.

	cheers
	luigi


Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040306212233.A56351>