]> wimlib.net Git - wimlib/blobdiff - include/wimlib/endianness.h
Add sparse annotations for endianness checking
[wimlib] / include / wimlib / endianness.h
index 257261662609fae06f8a49acdc20da3fb26e4526..4c1b239fc780a65646bad3dea43ba9938520432c 100644 (file)
@@ -38,33 +38,33 @@ bswap64(u64 n)
 }
 
 #  ifdef WORDS_BIGENDIAN
-#    define le16_to_cpu(n) bswap16(n)
-#    define le32_to_cpu(n) bswap32(n)
-#    define le64_to_cpu(n) bswap64(n)
-#    define cpu_to_le16(n) bswap16(n)
-#    define cpu_to_le32(n) bswap32(n)
-#    define cpu_to_le64(n) bswap64(n)
+#    define cpu_to_le16(n) ((_force_attr le16)bswap16(n))
+#    define cpu_to_le32(n) ((_force_attr le32)bswap32(n))
+#    define cpu_to_le64(n) ((_force_attr le64)bswap64(n))
+#    define le16_to_cpu(n) bswap16((_force_attr u16)(le16)(n))
+#    define le32_to_cpu(n) bswap32((_force_attr u32)(le32)(n))
+#    define le64_to_cpu(n) bswap64((_force_attr u64)(le64)(n))
 
-#    define cpu_to_be16(n) (n)
-#    define cpu_to_be32(n) (n)
-#    define cpu_to_be64(n) (n)
-#    define be16_to_cpu(n) (n)
-#    define be32_to_cpu(n) (n)
-#    define be64_to_cpu(n) (n)
+#    define cpu_to_be16(n) ((_force_attr be16)(u16)(n))
+#    define cpu_to_be32(n) ((_force_attr be32)(u32)(n))
+#    define cpu_to_be64(n) ((_force_attr be64)(u64)(n))
+#    define be16_to_cpu(n) ((_force_attr u16)(be16)(n))
+#    define be32_to_cpu(n) ((_force_attr u32)(be32)(n))
+#    define be64_to_cpu(n) ((_force_attr u64)(be64)(n))
 #  else
-#    define cpu_to_le16(n) (n)
-#    define cpu_to_le32(n) (n)
-#    define cpu_to_le64(n) (n)
-#    define le16_to_cpu(n) (n)
-#    define le32_to_cpu(n) (n)
-#    define le64_to_cpu(n) (n)
+#    define cpu_to_le16(n) ((_force_attr le16)(u16)(n))
+#    define cpu_to_le32(n) ((_force_attr le32)(u32)(n))
+#    define cpu_to_le64(n) ((_force_attr le64)(u64)(n))
+#    define le16_to_cpu(n) ((_force_attr u16)(le16)(n))
+#    define le32_to_cpu(n) ((_force_attr u32)(le32)(n))
+#    define le64_to_cpu(n) ((_force_attr u64)(le64)(n))
 
-#    define be16_to_cpu(n) bswap16(n)
-#    define be32_to_cpu(n) bswap32(n)
-#    define be64_to_cpu(n) bswap64(n)
-#    define cpu_to_be16(n) bswap16(n)
-#    define cpu_to_be32(n) bswap32(n)
-#    define cpu_to_be64(n) bswap64(n)
+#    define cpu_to_be16(n) ((_force_attr be16)bswap16(n))
+#    define cpu_to_be32(n) ((_force_attr be32)bswap32(n))
+#    define cpu_to_be64(n) ((_force_attr be64)bswap64(n))
+#    define be16_to_cpu(n) bswap16((_force_attr u16)(be16)(n))
+#    define be32_to_cpu(n) bswap32((_force_attr u32)(be32)(n))
+#    define be64_to_cpu(n) bswap64((_force_attr u64)(be64)(n))
 #  endif
 #endif /* _NTFS_ENDIANS_H */