923a60
From 59a855f7dbbd79c01ab9e8d326e986de786dda3f Mon Sep 17 00:00:00 2001
923a60
From: Lubomir Rintel <lkundrak@v3.sk>
923a60
Date: Wed, 11 Jan 2017 10:50:25 +0100
923a60
Subject: [PATCH] sparse: avoid clash with __bitwise and __force from 4.10
923a60
 linux/types.h (#5061)
923a60
923a60
It also used __bitwise and __force. It seems easier to rename
923a60
our versions since they are local to this one single header.
923a60
923a60
Also, undefine them afteerwards, so that we don't pollute the
923a60
preprocessor macro namespace.
923a60
923a60
(cherry picked from commit dc66f33a16596c2886a24da12e56ec096214e124)
923a60
923a60
Related: #1447937
923a60
---
923a60
 src/shared/sparse-endian.h | 47 ++++++++++++++++++++------------------
923a60
 1 file changed, 25 insertions(+), 22 deletions(-)
923a60
923a60
diff --git a/src/shared/sparse-endian.h b/src/shared/sparse-endian.h
923a60
index c913fda8c5..a3573b84a9 100644
923a60
--- a/src/shared/sparse-endian.h
923a60
+++ b/src/shared/sparse-endian.h
923a60
@@ -26,19 +26,19 @@
923a60
 #include <stdint.h>
923a60
 
923a60
 #ifdef __CHECKER__
923a60
-#define __bitwise __attribute__((bitwise))
923a60
-#define __force __attribute__((force))
923a60
+#define __sd_bitwise __attribute__((bitwise))
923a60
+#define __sd_force __attribute__((force))
923a60
 #else
923a60
-#define __bitwise
923a60
-#define __force
923a60
+#define __sd_bitwise
923a60
+#define __sd_force
923a60
 #endif
923a60
 
923a60
-typedef uint16_t __bitwise le16_t;
923a60
-typedef uint16_t __bitwise be16_t;
923a60
-typedef uint32_t __bitwise le32_t;
923a60
-typedef uint32_t __bitwise be32_t;
923a60
-typedef uint64_t __bitwise le64_t;
923a60
-typedef uint64_t __bitwise be64_t;
923a60
+typedef uint16_t __sd_bitwise le16_t;
923a60
+typedef uint16_t __sd_bitwise be16_t;
923a60
+typedef uint32_t __sd_bitwise le32_t;
923a60
+typedef uint32_t __sd_bitwise be32_t;
923a60
+typedef uint64_t __sd_bitwise le64_t;
923a60
+typedef uint64_t __sd_bitwise be64_t;
923a60
 
923a60
 #undef htobe16
923a60
 #undef htole16
923a60
@@ -69,20 +69,23 @@ typedef uint64_t __bitwise be64_t;
923a60
 #define bswap_64_on_be(x) __bswap_64(x)
923a60
 #endif
923a60
 
923a60
-static inline le16_t htole16(uint16_t value) { return (le16_t __force) bswap_16_on_be(value); }
923a60
-static inline le32_t htole32(uint32_t value) { return (le32_t __force) bswap_32_on_be(value); }
923a60
-static inline le64_t htole64(uint64_t value) { return (le64_t __force) bswap_64_on_be(value); }
923a60
+static inline le16_t htole16(uint16_t value) { return (le16_t __sd_force) bswap_16_on_be(value); }
923a60
+static inline le32_t htole32(uint32_t value) { return (le32_t __sd_force) bswap_32_on_be(value); }
923a60
+static inline le64_t htole64(uint64_t value) { return (le64_t __sd_force) bswap_64_on_be(value); }
923a60
 
923a60
-static inline be16_t htobe16(uint16_t value) { return (be16_t __force) bswap_16_on_le(value); }
923a60
-static inline be32_t htobe32(uint32_t value) { return (be32_t __force) bswap_32_on_le(value); }
923a60
-static inline be64_t htobe64(uint64_t value) { return (be64_t __force) bswap_64_on_le(value); }
923a60
+static inline be16_t htobe16(uint16_t value) { return (be16_t __sd_force) bswap_16_on_le(value); }
923a60
+static inline be32_t htobe32(uint32_t value) { return (be32_t __sd_force) bswap_32_on_le(value); }
923a60
+static inline be64_t htobe64(uint64_t value) { return (be64_t __sd_force) bswap_64_on_le(value); }
923a60
 
923a60
-static inline uint16_t le16toh(le16_t value) { return bswap_16_on_be((uint16_t __force)value); }
923a60
-static inline uint32_t le32toh(le32_t value) { return bswap_32_on_be((uint32_t __force)value); }
923a60
-static inline uint64_t le64toh(le64_t value) { return bswap_64_on_be((uint64_t __force)value); }
923a60
+static inline uint16_t le16toh(le16_t value) { return bswap_16_on_be((uint16_t __sd_force)value); }
923a60
+static inline uint32_t le32toh(le32_t value) { return bswap_32_on_be((uint32_t __sd_force)value); }
923a60
+static inline uint64_t le64toh(le64_t value) { return bswap_64_on_be((uint64_t __sd_force)value); }
923a60
 
923a60
-static inline uint16_t be16toh(be16_t value) { return bswap_16_on_le((uint16_t __force)value); }
923a60
-static inline uint32_t be32toh(be32_t value) { return bswap_32_on_le((uint32_t __force)value); }
923a60
-static inline uint64_t be64toh(be64_t value) { return bswap_64_on_le((uint64_t __force)value); }
923a60
+static inline uint16_t be16toh(be16_t value) { return bswap_16_on_le((uint16_t __sd_force)value); }
923a60
+static inline uint32_t be32toh(be32_t value) { return bswap_32_on_le((uint32_t __sd_force)value); }
923a60
+static inline uint64_t be64toh(be64_t value) { return bswap_64_on_le((uint64_t __sd_force)value); }
923a60
+
923a60
+#undef __sd_bitwise
923a60
+#undef __sd_force
923a60
 
923a60
 #endif /* SPARSE_ENDIAN_H */