Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 14 Sep 2002 09:51:20 -0600 (MDT)
From:      "M. Warner Losh" <imp@bsdimp.com>
To:        grog@FreeBSD.org
Cc:        phk@FreeBSD.org, cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/geom geom.h geom_enc.c
Message-ID:  <20020914.095120.48398209.imp@bsdimp.com>
In-Reply-To: <20020914013012.GU25003@wantadilla.lemis.com>
References:  <200209131033.g8DAXA0q006395@freefall.freebsd.org> <20020914013012.GU25003@wantadilla.lemis.com>

next in thread | previous in thread | raw e-mail | index | archive | help
In message: <20020914013012.GU25003@wantadilla.lemis.com>
            "Greg 'groggy' Lehey" <grog@FreeBSD.org> writes:
: On Friday, 13 September 2002 at  3:33:10 -0700, Poul-Henning Kamp wrote:
: > phk         2002/09/13 03:33:10 PDT
: >
: >   Modified files:
: >     sys/geom             geom.h geom_enc.c
: >   Log:
: >   Add a couple more of the big/little-endian conversion routines and make
: >   them visible from userland, if need be.
: >
: >   I wish that the C language contained this as part of struct definintions,
: >   but failing that, I would settle for an agreed upon set of functions for
: >   packing/unpacking integers in various sizes from byte-streams which may
: >   have unfriendly alignment.
: 
: Is there any reason not to use the Linux function names (be32_to_cpu,
: cpu_to_le16, etc.)?

Because BSD already has these defined in sys/endian.h:
#define	htobe16(x)	bswap16((x))
#define	htobe32(x)	bswap32((x))
#define	htobe64(x)	bswap64((x))
#define	htole16(x)	((uint16_t)(x))
#define	htole32(x)	((uint32_t)(x))
#define	htole64(x)	((uint64_t)(x))

#define	be16toh(x)	bswap16((x))
#define	be32toh(x)	bswap32((x))
#define	be64toh(x)	bswap64((x))
#define	le16toh(x)	((uint16_t)(x))
#define	le32toh(x)	((uint32_t)(x))
#define	le64toh(x)	((uint64_t)(x))

But this is different than what phk wants, since they may not work in
the case of unfriendly alignment.

Warner

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




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