Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 6 Jul 2014 16:20:38 +0000 (UTC)
From:      Nathan Whitehorn <nwhitehorn@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r268321 - head/sys/powerpc/include
Message-ID:  <201407061620.s66GKce3081375@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: nwhitehorn
Date: Sun Jul  6 16:20:37 2014
New Revision: 268321
URL: http://svnweb.freebsd.org/changeset/base/268321

Log:
  In case we ever support little-endian PowerPC (probably userland only),
  avoid hardcoding endianness here.

Modified:
  head/sys/powerpc/include/endian.h

Modified: head/sys/powerpc/include/endian.h
==============================================================================
--- head/sys/powerpc/include/endian.h	Sun Jul  6 16:19:55 2014	(r268320)
+++ head/sys/powerpc/include/endian.h	Sun Jul  6 16:20:37 2014	(r268321)
@@ -39,8 +39,13 @@
 /*
  * Define the order of 32-bit words in 64-bit words.
  */
+#ifdef __LITTLE_ENDIAN__
+#define	_QUAD_HIGHWORD 1
+#define	_QUAD_LOWWORD 0
+#else
 #define	_QUAD_HIGHWORD 0
 #define	_QUAD_LOWWORD 1
+#endif
 
 /*
  * GCC defines _BIG_ENDIAN and _LITTLE_ENDIAN equal to __BIG_ENDIAN__
@@ -131,9 +136,16 @@ __bswap64_var(__uint64_t _x)
 #define	__bswap64(x)	(__is_constant(x) ? __bswap64_const(x) : \
 	__bswap64_var(x))
 
+#ifdef __LITTLE_ENDIAN__
+#define	__htonl(x)	(__bswap32((__uint32_t)(x)))
+#define	__htons(x)	(__bswap16((__uint16_t)(x)))
+#define	__ntohl(x)	(__bswap32((__uint32_t)(x)))
+#define	__ntohs(x)	(__bswap16((__uint16_t)(x)))
+#else
 #define	__htonl(x)	((__uint32_t)(x))
 #define	__htons(x)	((__uint16_t)(x))
 #define	__ntohl(x)	((__uint32_t)(x))
 #define	__ntohs(x)	((__uint16_t)(x))
+#endif
 
 #endif /* !_MACHINE_ENDIAN_H_ */



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