compat-2.6.33.h: Removed IFF_DONT_BRIDGE to avoid redefinition warning
[~tnikolova/compat/.git] / include / linux / compat-2.6.33.h
1 #ifndef LINUX_26_33_COMPAT_H
2 #define LINUX_26_33_COMPAT_H
3
4 #include <linux/version.h>
5
6 #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33))
7
8 #include <linux/skbuff.h>
9 #include <linux/pci.h>
10 #if defined(CONFIG_PCCARD) || defined(CONFIG_PCCARD_MODULE)
11 #include <pcmcia/cs_types.h>
12 #include <pcmcia/cistpl.h>
13 #include <pcmcia/ds.h>
14 #endif
15 #include <linux/firmware.h>
16 #include <linux/input.h>
17 #include <linux/sched.h>
18
19 #if defined(CONFIG_COMPAT_FIRMWARE_CLASS)
20 #define request_firmware_nowait LINUX_BACKPORT(request_firmware_nowait)
21 #define request_firmware LINUX_BACKPORT(request_firmware)
22 #define release_firmware LINUX_BACKPORT(release_firmware)
23
24 #if defined(CONFIG_FW_LOADER) || defined(CONFIG_FW_LOADER_MODULE)
25 int request_firmware(const struct firmware **fw, const char *name,
26                      struct device *device);
27 int request_firmware_nowait(
28         struct module *module, int uevent,
29         const char *name, struct device *device, gfp_t gfp, void *context,
30         void (*cont)(const struct firmware *fw, void *context));
31
32 void release_firmware(const struct firmware *fw);
33 #else
34 static inline int request_firmware(const struct firmware **fw,
35                                    const char *name,
36                                    struct device *device)
37 {
38         return -EINVAL;
39 }
40 static inline int request_firmware_nowait(
41         struct module *module, int uevent,
42         const char *name, struct device *device, gfp_t gfp, void *context,
43         void (*cont)(const struct firmware *fw, void *context))
44 {
45         return -EINVAL;
46 }
47
48 static inline void release_firmware(const struct firmware *fw)
49 {
50 }
51 #endif
52 #endif
53
54 /* mask KEY_RFKILL as RHEL6 backports this */
55 #if !defined(KEY_RFKILL)
56 #define KEY_RFKILL              247     /* Key that controls all radios */
57 #endif
58 /* source: include/linux/if.h */
59
60 /* this will never happen on older kernels */
61 #ifndef NETDEV_POST_INIT
62 #define NETDEV_POST_INIT 0xffff
63 #endif /* NETDEV_POST_INIT */
64
65 /* mask netdev_alloc_skb_ip_align as debian squeeze also backports this */
66 #define netdev_alloc_skb_ip_align(a, b) compat_netdev_alloc_skb_ip_align(a, b)
67
68 static inline struct sk_buff *netdev_alloc_skb_ip_align(struct net_device *dev,
69                 unsigned int length)
70 {
71         struct sk_buff *skb = netdev_alloc_skb(dev, length + NET_IP_ALIGN);
72
73         if (NET_IP_ALIGN && skb)
74                 skb_reserve(skb, NET_IP_ALIGN);
75         return skb;
76 }
77
78 /**
79  * list_for_each_entry_continue_rcu - continue iteration over list of given type
80  * @pos:        the type * to use as a loop cursor.
81  * @head:       the head for your list.
82  * @member:     the name of the list_struct within the struct.
83  *
84  * Continue to iterate over list of given type, continuing after
85  * the current position.
86  */
87 #define list_for_each_entry_continue_rcu(pos, head, member)             \
88         for (pos = list_entry_rcu(pos->member.next, typeof(*pos), member); \
89              prefetch(pos->member.next), &pos->member != (head);        \
90              pos = list_entry_rcu(pos->member.next, typeof(*pos), member))
91
92 #define sock_recv_ts_and_drops(msg, sk, skb) sock_recv_timestamp(msg, sk, skb)
93
94 #define pci_pcie_cap LINUX_BACKPORT(pci_pcie_cap)
95
96 /**
97  * pci_pcie_cap - get the saved PCIe capability offset
98  * @dev: PCI device
99  *
100  * PCIe capability offset is calculated at PCI device initialization
101  * time and saved in the data structure. This function returns saved
102  * PCIe capability offset. Using this instead of pci_find_capability()
103  * reduces unnecessary search in the PCI configuration space. If you
104  * need to calculate PCIe capability offset from raw device for some
105  * reasons, please use pci_find_capability() instead.
106  */
107 static inline int pci_pcie_cap(struct pci_dev *dev)
108 {
109         return pci_find_capability(dev, PCI_CAP_ID_EXP);
110 }
111
112 #define pci_is_pcie LINUX_BACKPORT(pci_is_pcie)
113
114 /**
115  * pci_is_pcie - check if the PCI device is PCI Express capable
116  * @dev: PCI device
117  *
118  * Retrun true if the PCI device is PCI Express capable, false otherwise.
119  */
120 static inline bool pci_is_pcie(struct pci_dev *dev)
121 {
122 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24))
123         return dev->is_pcie;
124 #else
125         return !!pci_pcie_cap(dev);
126 #endif
127 }
128
129 #ifdef __GNUC__
130 #define __always_unused                 __attribute__((unused))
131 #else
132 #define __always_unused                 /* unimplemented */
133 #endif
134
135 /* mask IS_ERR_OR_NULL as debian squeeze also backports this */
136 #define IS_ERR_OR_NULL(a) compat_IS_ERR_OR_NULL(a)
137
138 static inline long __must_check IS_ERR_OR_NULL(const void *ptr)
139 {
140         return !ptr || IS_ERR_VALUE((unsigned long)ptr);
141 }
142
143 #define for_each_netdev_rcu(net, d)             \
144                 list_for_each_entry_rcu(d, &(net)->dev_base_head, dev_list)
145
146 #define IPV4_FLOW               0x10    /* hash only */
147 #define IPV6_FLOW               0x11    /* hash only */
148
149 #define tsk_cpus_allowed(tsk) (&(tsk)->cpus_allowed)
150
151 #ifndef CONFIG_COMPAT_IS_BITMAP
152
153 extern void bitmap_set(unsigned long *map, int i, int len);
154 extern void bitmap_clear(unsigned long *map, int start, int nr);
155 extern unsigned long bitmap_find_next_zero_area(unsigned long *map,
156                                          unsigned long size,
157                                          unsigned long start,
158                                          unsigned int nr,
159                                          unsigned long align_mask);
160
161 #endif /* CONFIG_COMPAT_IS_BITMAP */
162
163 #ifdef CONFIG_PPC
164 #ifndef NUMA_NO_NODE
165 #define NUMA_NO_NODE    (-1)
166 #endif
167 #endif /* CONFIG_PPC */
168
169 #define strim LINUX_BACKPORT(strim)
170 extern char *strim(char *);
171
172 #define skip_spaces LINUX_BACKPORT(skip_spaces)
173 extern char * __must_check skip_spaces(const char *);
174
175 #endif /* (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)) */
176
177 #endif /* LINUX_26_33_COMPAT_H */