Index: src/common/mac/byteswap.h |
diff --git a/src/common/mac/byteswap.h b/src/common/mac/byteswap.h |
index a5d745b3cad5e27b79884e81609d49132d960a01..b7bbc0b95bbd8c3c4fb1615ca8fb0b76b9d37453 100644 |
--- a/src/common/mac/byteswap.h |
+++ b/src/common/mac/byteswap.h |
@@ -36,6 +36,7 @@ |
#ifndef COMMON_MAC_BYTESWAP_H_ |
#define COMMON_MAC_BYTESWAP_H_ |
+#ifdef __APPLE__ |
#include <libkern/OSByteOrder.h> |
static inline uint16_t ByteSwap(uint16_t v) { return OSSwapInt16(v); } |
@@ -45,4 +46,28 @@ static inline int16_t ByteSwap(int16_t v) { return OSSwapInt16(v); } |
static inline int32_t ByteSwap(int32_t v) { return OSSwapInt32(v); } |
static inline int64_t ByteSwap(int64_t v) { return OSSwapInt64(v); } |
+#elif defined(__linux__) |
+// For NXByteOrder |
+#include <architecture/byte_order.h> |
+#include <stdint.h> |
+#include <endian.h> |
+#include_next <byteswap.h> |
+ |
+static inline uint16_t ByteSwap(uint16_t v) { return bswap_16(v); } |
+static inline uint32_t ByteSwap(uint32_t v) { return bswap_32(v); } |
+static inline uint64_t ByteSwap(uint64_t v) { return bswap_64(v); } |
+static inline int16_t ByteSwap(int16_t v) { return bswap_16(v); } |
+static inline int32_t ByteSwap(int32_t v) { return bswap_32(v); } |
+static inline int64_t ByteSwap(int64_t v) { return bswap_64(v); } |
+ |
+static inline NXByteOrder NXHostByteOrder() { |
+#ifdef __LITTLE_ENDIAN |
+ return NX_LittleEndian; |
+#else |
+ return NX_BigEndian; |
+#endif |
+} |
+ |
+#endif // __APPLE__ |
+ |
#endif // COMMON_MAC_BYTESWAP_H_ |