--- kerncompat.h.orig 2009-02-15 13:25:46.000000000 +0100
+++ kerncompat.h 2009-02-15 13:28:49.000000000 +0100
+#include <libkern/OSByteOrder.h>
#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
-#define ULONG_MAX (~0UL)
+//#define ULONG_MAX (~0UL)
#define __force __attribute__((force))
typedef unsigned int u32;
typedef unsigned int __u32;
#if __BYTE_ORDER == __BIG_ENDIAN
+#define cpu_to_le64(x) ((__force __le64)(u64)(OSSwapHostToLittleInt64(x)))
+#define le64_to_cpu(x) ((__force u64)(__le64)(OSSwapLittleToHostInt64(x)))
+#define cpu_to_le32(x) ((__force __le32)(u32)(OSSwapHostToLittleInt32(x)))
+#define le32_to_cpu(x) ((__force u32)(__le32)(OSSwapLittleToHostInt32(x)))
+#define cpu_to_le16(x) ((__force __le16)(u16)(OSSwapHostToLittleInt16(x)))
+#define le16_to_cpu(x) ((__force u16)(__le16)(OSSwapLittleToHostInt16(x)))
#define cpu_to_le64(x) ((__force __le64)(u64)(bswap_64(x)))
#define le64_to_cpu(x) ((__force u64)(__le64)(bswap_64(x)))
#define cpu_to_le32(x) ((__force __le32)(u32)(bswap_32(x)))
#define le32_to_cpu(x) ((__force u32)(__le32)(bswap_32(x)))
#define cpu_to_le16(x) ((__force __le16)(u16)(bswap_16(x)))
#define le16_to_cpu(x) ((__force u16)(__le16)(bswap_16(x)))