12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- From c6d6237819037168a6923ac080e348e54615422c Mon Sep 17 00:00:00 2001
- From: Vladimir Zapolskiy <vzapolskiy@gmail.com>
- Date: Tue, 1 Jun 2010 23:22:57 +0400
- Subject: [PATCH] endian.h: add BSD convertions between big/little-endian byte order
- This patch adds support for convertion of values between host and
- big-/little-endian byte order.
- Signed-off-by: Vladimir Zapolskiy <vzapolskiy@gmail.com>
- Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
- ---
- include/endian.h | 38 ++++++++++++++++++++++++++++++++++++++
- 1 files changed, 38 insertions(+), 0 deletions(-)
- diff --git a/include/endian.h b/include/endian.h
- index 2f7bce1..0ba7384 100644
- --- a/include/endian.h
- +++ b/include/endian.h
- @@ -55,4 +55,42 @@
- # define __LONG_LONG_PAIR(HI, LO) HI, LO
- #endif
-
- +
- +#ifdef __USE_BSD
- +/* Conversion interfaces. */
- +# include <byteswap.h>
- +
- +# if __BYTE_ORDER == __LITTLE_ENDIAN
- +# define htobe16(x) __bswap_16 (x)
- +# define htole16(x) (x)
- +# define be16toh(x) __bswap_16 (x)
- +# define le16toh(x) (x)
- +
- +# define htobe32(x) __bswap_32 (x)
- +# define htole32(x) (x)
- +# define be32toh(x) __bswap_32 (x)
- +# define le32toh(x) (x)
- +
- +# define htobe64(x) __bswap_64 (x)
- +# define htole64(x) (x)
- +# define be64toh(x) __bswap_64 (x)
- +# define le64toh(x) (x)
- +# else
- +# define htobe16(x) (x)
- +# define htole16(x) __bswap_16 (x)
- +# define be16toh(x) (x)
- +# define le16toh(x) __bswap_16 (x)
- +
- +# define htobe32(x) (x)
- +# define htole32(x) __bswap_32 (x)
- +# define be32toh(x) (x)
- +# define le32toh(x) __bswap_32 (x)
- +
- +# define htobe64(x) (x)
- +# define htole64(x) __bswap_64 (x)
- +# define be64toh(x) (x)
- +# define le64toh(x) __bswap_64 (x)
- +# endif
- +#endif
- +
- #endif /* endian.h */
- --
- 1.7.3.4
|