summaryrefslogtreecommitdiff
path: root/src/lib/byte_order.h
diff options
context:
space:
mode:
authordimitri staessens <[email protected]>2017-02-10 07:59:45 +0000
committerSander Vrijders <[email protected]>2017-02-10 07:59:45 +0000
commit4051a5afbfc92873af44d47ae6613d7bd17f7433 (patch)
tree09afe1ad6bded8815a058ef6476ea4481d9a032a /src/lib/byte_order.h
parent0557bc02b963bab6f690b410fe937a9f487a84ba (diff)
parentaa1643ae393d9460bea8e2922c9cc0a3e6caf63d (diff)
downloadouroboros-4051a5afbfc92873af44d47ae6613d7bd17f7433.tar.gz
ouroboros-4051a5afbfc92873af44d47ae6613d7bd17f7433.zip
Merged in dstaesse/ouroboros/be-bsd (pull request #368)
Be bsd
Diffstat (limited to 'src/lib/byte_order.h')
-rw-r--r--src/lib/byte_order.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/lib/byte_order.h b/src/lib/byte_order.h
index 9ee082af..364b06cc 100644
--- a/src/lib/byte_order.h
+++ b/src/lib/byte_order.h
@@ -49,7 +49,9 @@
#include <stdlib.h>
#ifdef __GLIBC__
-# include <endian.h>
+#include <endian.h>
+#elif defined(__FreeBSD__)
+#include <sys/endian.h>
#endif
/* if x86 compatible cpu */
@@ -131,7 +133,8 @@ static inline uint32_t bswap_32(uint32_t x) {
#if defined(__GNUC__) && (__GNUC__ >= 4) && \
(__GNUC__ > 4 || __GNUC_MINOR__ >= 3)
#define bswap_64(x) __builtin_bswap64(x)
-#elif !defined(__STRICT_ANSI__)
+#elif !defined (bswap64)
+#if !defined(__STRICT_ANSI__)
static inline uint64_t bswap_64(uint64_t x) {
union {
uint64_t ll;
@@ -145,6 +148,7 @@ static inline uint64_t bswap_64(uint64_t x) {
#else
#error "bswap_64 unsupported"
#endif
+#endif
#ifdef CPU_BIG_ENDIAN
#define be2me_32(x) (x)