}
# 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 */
#define _WIMLIB_TYPES_H
#include "wimlib_tchar.h"
+#include "wimlib/compiler.h"
#include <inttypes.h>
#include <stdbool.h>
typedef int64_t s64;
/* Unsigned little endian types of exact size */
-typedef uint8_t le8;
-typedef uint16_t le16;
-typedef uint32_t le32;
-typedef uint64_t le64;
+typedef uint8_t _bitwise_attr le8;
+typedef uint16_t _bitwise_attr le16;
+typedef uint32_t _bitwise_attr le32;
+typedef uint64_t _bitwise_attr le64;
/* Signed little endian types of exact size (declare as unsigned to avoid sign
* extension on big-endian architectures) */
-typedef uint8_t sle8;
-typedef uint16_t sle16;
-typedef uint32_t sle32;
-typedef uint64_t sle64;
+typedef uint8_t _bitwise_attr sle8;
+typedef uint16_t _bitwise_attr sle16;
+typedef uint32_t _bitwise_attr sle32;
+typedef uint64_t _bitwise_attr sle64;
/* Unsigned big endian types of exact size */
-typedef uint8_t be8;
-typedef uint16_t be16;
-typedef uint32_t be32;
-typedef uint64_t be64;
+typedef uint8_t _bitwise_attr be8;
+typedef uint16_t _bitwise_attr be16;
+typedef uint32_t _bitwise_attr be32;
+typedef uint64_t _bitwise_attr be64;
#endif