Diff between 267247507b909210a58cc6a437c2d8184fb83e33 and c2aef3ba48c99d8a4c0555459fcbb3f9ebc05885

Changed Files

File Additions Deletions Status
src/shared/util.h +10 -0 modified

Full Patch

diff --git a/src/shared/util.h b/src/shared/util.h
index ac07fb7..083d847 100644
--- a/src/shared/util.h
+++ b/src/shared/util.h
@@ -23,11 +23,21 @@
 
 #include <stdlib.h>
 #include <alloca.h>
+#include <byteswap.h>
 
+#if __BYTE_ORDER == __LITTLE_ENDIAN
 #define le16_to_cpu(val) (val)
 #define le32_to_cpu(val) (val)
 #define cpu_to_le16(val) (val)
 #define cpu_to_le32(val) (val)
+#elif __BYTE_ORDER == __BIG_ENDIAN
+#define le16_to_cpu(val) bswap_16(val)
+#define le32_to_cpu(val) bswap_32(val)
+#define cpu_to_le16(val) bswap_16(val)
+#define cpu_to_le32(val) bswap_32(val)
+#else
+#error "Unknown byte order"
+#endif
 
 #define PTR_TO_UINT(p) ((unsigned int) ((uintptr_t) (p)))
 #define UINT_TO_PTR(u) ((void *) ((uintptr_t) (u)))