]> git.lizzy.rs Git - endian.h.git/blobdiff - endian.h
Use include_next for system endian.h header
[endian.h.git] / endian.h
index fe2d6fcfa352b7e7d9356d9214fb54037ca4beb6..37881a1ac2bdad40121f59b5bec9a012b472fc6c 100644 (file)
--- a/endian.h
+++ b/endian.h
@@ -22,7 +22,7 @@
 
 #if defined(__linux__) || defined(__CYGWIN__)
 
-#      include <endian.h>
+#      include_next <endian.h>
 
 #elif defined(__APPLE__)
 
 #      define __LITTLE_ENDIAN LITTLE_ENDIAN
 #      define __PDP_ENDIAN    PDP_ENDIAN
 
-#elif defined(__OpenBSD__)
+#elif defined(__OpenBSD__) || defined(__FreeBSD__)
 
 #      include <sys/endian.h>
 
-#elif defined(__NetBSD__) || defined(__FreeBSD__) || defined(__DragonFly__)
+#elif defined(__NetBSD__) || defined(__DragonFly__)
 
 #      include <sys/endian.h>
 
 
 #      if BYTE_ORDER == LITTLE_ENDIAN
 
-#              define htobe16(x) htons(x)
+#              define htobe16(x) __builtin_bswap16(x)
 #              define htole16(x) (x)
-#              define be16toh(x) ntohs(x)
+#              define be16toh(x) __builtin_bswap16(x)
 #              define le16toh(x) (x)
 
-#              define htobe32(x) htonl(x)
+#              define htobe32(x) __builtin_bswap32(x)
 #              define htole32(x) (x)
-#              define be32toh(x) ntohl(x)
+#              define be32toh(x) __builtin_bswap32(x)
 #              define le32toh(x) (x)
 
-#              define htobe64(x) htonll(x)
+#              define htobe64(x) __builtin_bswap64(x)
 #              define htole64(x) (x)
-#              define be64toh(x) ntohll(x)
+#              define be64toh(x) __builtin_bswap64(x)
 #              define le64toh(x) (x)
 
 #      elif BYTE_ORDER == BIG_ENDIAN