compat: Avoid symbols duplication by compat
[compat-rdma/compat.git] / include / linux / compat-2.6.h
1 #ifndef LINUX_26_COMPAT_H
2 #define LINUX_26_COMPAT_H
3
4 #define LINUX_BACKPORT(__sym) backport_ ##__sym
5
6 #include <linux/version.h>
7 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
8 #include <linux/kconfig.h>
9 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33))
10 #include <generated/autoconf.h>
11 #else
12 #include <linux/autoconf.h>
13 #endif
14 #include <linux/init.h>
15
16 /*
17  * The define overwriting module_init is based on the original module_init
18  * which looks like this:
19  * #define module_init(initfn)                                  \
20  *      static inline initcall_t __inittest(void)               \
21  *      { return initfn; }                                      \
22  *      int init_module(void) __attribute__((alias(#initfn)));
23  *
24  * To the call to the initfn we added the symbol dependency on compat
25  * to make sure that compat.ko gets loaded for any compat modules.
26  */
27 void compat_dependency_symbol(void);
28
29 #undef module_init
30 #define module_init(initfn)                                             \
31         static int __init __init_compat(void)                           \
32         {                                                               \
33                 compat_dependency_symbol();                             \
34                 return initfn();                                        \
35         }                                                               \
36         int init_module(void) __attribute__((alias("__init_compat")));
37
38 /*
39  * Each compat file represents compatibility code for new kernel
40  * code introduced for *that* kernel revision.
41  */
42
43 #include <linux/compat-2.6.22.h>
44 #include <linux/compat-2.6.23.h>
45 #include <linux/compat-2.6.24.h>
46 #include <linux/compat-2.6.25.h>
47 #include <linux/compat-2.6.26.h>
48 #include <linux/compat-2.6.27.h>
49 #include <linux/compat-2.6.28.h>
50 #include <linux/compat-2.6.29.h>
51 #include <linux/compat-2.6.30.h>
52 #include <linux/compat-2.6.31.h>
53 #include <linux/compat-2.6.32.h>
54 #include <linux/compat-2.6.33.h>
55 #include <linux/compat-2.6.34.h>
56 #include <linux/compat-2.6.35.h>
57 #include <linux/compat-2.6.36.h>
58 #include <linux/compat-2.6.37.h>
59 #include <linux/compat-2.6.38.h>
60 #include <linux/compat-2.6.39.h>
61 #include <linux/compat-3.0.h>
62 #include <linux/compat-3.1.h>
63 #include <linux/compat-3.2.h>
64 #include <linux/compat-3.3.h>
65 #include <linux/compat-3.4.h>
66 #include <linux/compat-3.5.h>
67
68 #endif /* LINUX_26_COMPAT_H */