Date: Sat, 5 Apr 2003 10:34:36 +0300 From: Ruslan Ermilov <ru@FreeBSD.org> To: Bruce Evans <bde@zeta.org.au> Cc: Mike Barcroft <mike@FreeBSD.org> Subject: Re: cvs commit: src/sys/sys endian.h src/share/man/man9 byteorder.9 Message-ID: <20030405073436.GC52420@sunbay.com> In-Reply-To: <20030405164849.Y37179@gamplex.bde.org> References: <Pine.BSF.4.21.0304041150530.17052-100000@root.org> <20030405164849.Y37179@gamplex.bde.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--mSxgbZZZvrAyzONB Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sat, Apr 05, 2003 at 04:55:26PM +1000, Bruce Evans wrote: > On Fri, 4 Apr 2003, Nate Lawson wrote: >=20 > > On Fri, 4 Apr 2003, Ruslan Ermilov wrote: > > > +#define BSWAP16(x) (uint16_t) \ > > > + (((x) >> 8) | ((x) << 8)) > > > + > > > +#define BSWAP32(x) (uint32_t) \ > > > + (((x) >> 24) | (((x) >> 8) & 0xff00) | \ > > > + (((x) << 8) & 0xff0000) | ((x) << 24)) >=20 > > I don't mind the addition of the macros but I don't like the > > implementation. Too many unnecessary casts and overly complicated. >=20 > I fear it has not enough necessary casts :-). E.g., if x =3D (int16_t)0x= fffe, > then on 32-bit machines sign extension gives 0xffffffff for BSWAP16(x). > Of course, BSWAP16()'s arg should be precisely uint16_t, Yes, this is assumed. > but the function > interfaces don't require it to have the correct type except possibly on > non-2's complement machines where coercing the arg's type may cause > surprising changes to the arg's value. >=20 > Bruce --=20 Ruslan Ermilov Sysadmin and DBA, ru@sunbay.com Sunbay Software AG, ru@FreeBSD.org FreeBSD committer, +380.652.512.251 Simferopol, Ukraine http://www.FreeBSD.org The Power To Serve http://www.oracle.com Enabling The Information Age --mSxgbZZZvrAyzONB Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (FreeBSD) iD8DBQE+jocMUkv4P6juNwoRAmLDAJ9Wn1LqW0kYum80wCldYR575K+wugCcD5ie kUsECNItgm69ahsmwinsS9g= =znhp -----END PGP SIGNATURE----- --mSxgbZZZvrAyzONB--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030405073436.GC52420>