|
@@ -3,6 +3,26 @@
|
|
|
|
|
|
#include <asm/types.h>
|
|
|
|
|
|
+#if defined(__KERNEL__)
|
|
|
+
|
|
|
+# include <asm/byteorder.h>
|
|
|
+
|
|
|
+# if defined(__BIG_ENDIAN)
|
|
|
+# define ntohll(x) (x)
|
|
|
+# define htonll(x) (x)
|
|
|
+# elif defined(__LITTLE_ENDIAN)
|
|
|
+# define ntohll(x) be64_to_cpu(x)
|
|
|
+# define htonll(x) cpu_to_be64(x)
|
|
|
+# else
|
|
|
+# error "Could not determine byte order"
|
|
|
+# endif
|
|
|
+
|
|
|
+#else
|
|
|
+/* For the definition of ntohl, htonl and __BYTE_ORDER */
|
|
|
+#include <endian.h>
|
|
|
+#include <netinet/in.h>
|
|
|
+#if defined(__BYTE_ORDER)
|
|
|
+
|
|
|
#if __BYTE_ORDER == __BIG_ENDIAN
|
|
|
# define ntohll(x) (x)
|
|
|
# define htonll(x) (x)
|
|
@@ -10,8 +30,13 @@
|
|
|
# define ntohll(x) bswap_64(x)
|
|
|
# define htonll(x) bswap_64(x)
|
|
|
#else
|
|
|
-#error "__BYTE_ORDER not defined"
|
|
|
+# error "Could not determine byte order: __BYTE_ORDER uncorrectly defined"
|
|
|
+#endif
|
|
|
+
|
|
|
+#else /* ! defined(__BYTE_ORDER) */
|
|
|
+# error "Could not determine byte order: __BYTE_ORDER not defined"
|
|
|
#endif
|
|
|
+#endif /* ! defined(__KERNEL__) */
|
|
|
|
|
|
extern int init_cow_file(int fd, char *cow_file, char *backing_file,
|
|
|
int sectorsize, int alignment, int *bitmap_offset_out,
|