summaryrefslogtreecommitdiffstats
path: root/backport-include/linux/types.h
diff options
context:
space:
mode:
Diffstat (limited to 'backport-include/linux/types.h')
-rw-r--r--backport-include/linux/types.h61
1 files changed, 61 insertions, 0 deletions
diff --git a/backport-include/linux/types.h b/backport-include/linux/types.h
new file mode 100644
index 0000000..1dd187a
--- /dev/null
+++ b/backport-include/linux/types.h
@@ -0,0 +1,61 @@
+#ifndef __BACKPORT_TYPES_H
+#define __BACKPORT_TYPES_H
+#include_next <linux/types.h>
+#include <linux/version.h>
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25)
+#if defined(CONFIG_X86) || defined(CONFIG_X86_64)
+
+#if defined(CONFIG_64BIT) || defined(CONFIG_X86_PAE) || defined(CONFIG_PHYS_64BIT)
+typedef u64 phys_addr_t;
+#else
+typedef u32 phys_addr_t;
+#endif
+
+#endif /* x86 */
+#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28) /* < 2.6.25 */
+
+#if defined(CONFIG_X86) || defined(CONFIG_X86_64) || defined(CONFIG_PPC)
+/*
+ * CONFIG_PHYS_ADDR_T_64BIT was added as new to all architectures
+ * as of 2.6.28 but x86 and ppc had it already.
+ */
+#else
+#if defined(CONFIG_64BIT) || defined(CONFIG_X86_PAE) || defined(CONFIG_PPC64) || defined(CONFIG_PHYS_64BIT)
+#define CONFIG_PHYS_ADDR_T_64BIT 1
+typedef u64 phys_addr_t;
+#else
+typedef u32 phys_addr_t;
+#endif
+
+#endif /* non x86 and ppc */
+
+#endif /* < 2.6.28 */
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29) && \
+ (defined(CONFIG_ALPHA) || defined(CONFIG_AVR32) || \
+ defined(CONFIG_BLACKFIN) || defined(CONFIG_CRIS) || \
+ defined(CONFIG_H8300) || defined(CONFIG_IA64) || \
+ defined(CONFIG_M68K) || defined(CONFIG_MIPS) || \
+ defined(CONFIG_PARISC) || defined(CONFIG_S390) || \
+ defined(CONFIG_PPC64) || defined(CONFIG_PPC32) || \
+ defined(CONFIG_SUPERH) || defined(CONFIG_SPARC) || \
+ defined(CONFIG_FRV) || defined(CONFIG_X86) || \
+ defined(CONFIG_M32R) || defined(CONFIG_M68K) || \
+ defined(CONFIG_MN10300) || defined(CONFIG_XTENSA) || \
+ defined(CONFIG_ARM))
+#include <asm/atomic.h>
+#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29)
+typedef struct {
+ volatile int counter;
+} atomic_t;
+
+#ifdef CONFIG_64BIT
+typedef struct {
+ volatile long counter;
+} atomic64_t;
+#endif /* CONFIG_64BIT */
+
+#endif
+
+#endif /* __BACKPORT_TYPES_H */