aboutsummaryrefslogtreecommitdiffstats
path: root/main/xen/fix_bswap_blktap.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/xen/fix_bswap_blktap.patch')
-rw-r--r--main/xen/fix_bswap_blktap.patch61
1 files changed, 61 insertions, 0 deletions
diff --git a/main/xen/fix_bswap_blktap.patch b/main/xen/fix_bswap_blktap.patch
new file mode 100644
index 0000000000..71671d9dc2
--- /dev/null
+++ b/main/xen/fix_bswap_blktap.patch
@@ -0,0 +1,61 @@
+# HG changeset patch
+# Parent d61e6300274bbc6bc464ad340146bd81e91f64f3
+blktap: remove local definitions and include byteswap.h
+
+Use the same approach as tools/blktap2/include/libvhd.h, remove local
+definitions of bswap* and include byteswap.h. Also remove the
+HAVE_BYTESWAP_H ifdef, since it was not defined in this context (it's
+defined by QEMU).
+
+Signed-off-by: Roger Pau Monne <roger.pau@entel.upc.edu>
+
+diff -r d61e6300274b tools/blktap/drivers/bswap.h
+--- a/tools/blktap/drivers/bswap.h Tue Dec 20 05:20:02 2011 +0100
++++ b/tools/blktap/drivers/bswap.h Tue Dec 20 05:24:16 2011 +0100
+@@ -13,45 +13,9 @@
+ #define bswap_16(x) swap16(x)
+ #define bswap_32(x) swap32(x)
+ #define bswap_64(x) swap64(x)
+-#else
++#elif defined(__linux__)
+
+-#ifdef HAVE_BYTESWAP_H
+ #include <byteswap.h>
+-#else
+-
+-#define bswap_16(x) \
+-({ \
+- uint16_t __x = (x); \
+- ((uint16_t)( \
+- (((uint16_t)(__x) & (uint16_t)0x00ffU) << 8) | \
+- (((uint16_t)(__x) & (uint16_t)0xff00U) >> 8) )); \
+-})
+-
+-#define bswap_32(x) \
+-({ \
+- uint32_t __x = (x); \
+- ((uint32_t)( \
+- (((uint32_t)(__x) & (uint32_t)0x000000ffUL) << 24) | \
+- (((uint32_t)(__x) & (uint32_t)0x0000ff00UL) << 8) | \
+- (((uint32_t)(__x) & (uint32_t)0x00ff0000UL) >> 8) | \
+- (((uint32_t)(__x) & (uint32_t)0xff000000UL) >> 24) )); \
+-})
+-
+-#define bswap_64(x) \
+-({ \
+- uint64_t __x = (x); \
+- ((uint64_t)( \
+- (uint64_t)(((uint64_t)(__x) & (uint64_t)0x00000000000000ffULL) << 56) | \
+- (uint64_t)(((uint64_t)(__x) & (uint64_t)0x000000000000ff00ULL) << 40) | \
+- (uint64_t)(((uint64_t)(__x) & (uint64_t)0x0000000000ff0000ULL) << 24) | \
+- (uint64_t)(((uint64_t)(__x) & (uint64_t)0x00000000ff000000ULL) << 8) | \
+- (uint64_t)(((uint64_t)(__x) & (uint64_t)0x000000ff00000000ULL) >> 8) | \
+- (uint64_t)(((uint64_t)(__x) & (uint64_t)0x0000ff0000000000ULL) >> 24) | \
+- (uint64_t)(((uint64_t)(__x) & (uint64_t)0x00ff000000000000ULL) >> 40) | \
+- (uint64_t)(((uint64_t)(__x) & (uint64_t)0xff00000000000000ULL) >> 56) )); \
+-})
+-
+-#endif /* !HAVE_BYTESWAP_H */
+
+ static inline uint16_t bswap16(uint16_t x)
+ {