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_ */
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to