]> git.saurik.com Git - redis.git/blobdiff - src/endian.h
intset.c endianess fixes.
[redis.git] / src / endian.h
index ea295ee5f0234109288cc92471df53b1c139f824..75b91728deee27773622a9aea56a526a62532ad8 100644 (file)
@@ -4,5 +4,26 @@
 void memrev16(void *p);
 void memrev32(void *p);
 void memrev64(void *p);
+uint16_t intrev16(uint16_t v);
+uint32_t intrev32(uint32_t v);
+uint64_t intrev64(uint64_t v);
+
+/* variants of the function doing the actual convertion only if the target
+ * host is big endian */
+#if (BYTE_ORDER == LITTLE_ENDIAN)
+#define memrev16ifbe(p)
+#define memrev32ifbe(p)
+#define memrev64ifbe(p)
+#define intrev16ifbe(v) (v)
+#define intrev32ifbe(v) (v)
+#define intrev64ifbe(v) (v)
+#else
+#define memrev16ifbe(p) memrev16(p)
+#define memrev32ifbe(p) memrev32(p)
+#define memrev64ifbe(p) memrev64(p)
+#define intrev16ifbe(v) intrev16(v)
+#define intrev32ifbe(v) intrev32(v)
+#define intrev64ifbe(v) intrev64(v)
+#endif
 
 #endif