Add compatibility call for kmem_cache_destroy()
[~emulex/for-vlad/old/compat.git] / compat-2.6.29.h
1 #ifndef LINUX_26_29_COMPAT_H
2 #define LINUX_26_29_COMPAT_H
3
4 #include <linux/autoconf.h>
5 #include <linux/version.h>
6
7 #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29))
8
9 #include <linux/skbuff.h>
10 #include <linux/usb.h>
11
12 /**
13  *      skb_queue_is_first - check if skb is the first entry in the queue
14  *      @list: queue head
15  *      @skb: buffer
16  *
17  *      Returns true if @skb is the first buffer on the list.
18  */
19 static inline bool skb_queue_is_first(const struct sk_buff_head *list,
20                                       const struct sk_buff *skb)
21 {
22         return (skb->prev == (struct sk_buff *) list);
23 }
24
25 /**
26  *      skb_queue_prev - return the prev packet in the queue
27  *      @list: queue head
28  *      @skb: current buffer
29  *
30  *      Return the prev packet in @list before @skb.  It is only valid to
31  *      call this if skb_queue_is_first() evaluates to false.
32  */
33 static inline struct sk_buff *skb_queue_prev(const struct sk_buff_head *list,
34                                              const struct sk_buff *skb)
35 {
36         /* This BUG_ON may seem severe, but if we just return then we
37          * are going to dereference garbage.
38          */
39         BUG_ON(skb_queue_is_first(list, skb));
40         return skb->prev;
41 }
42
43 extern void usb_unpoison_anchored_urbs(struct usb_anchor *anchor);
44
45 #define DIV_ROUND_CLOSEST(x, divisor)(                  \
46 {                                                       \
47         typeof(divisor) __divisor = divisor;            \
48         (((x) + ((__divisor) / 2)) / (__divisor));      \
49 }                                                       \
50 )
51
52 #endif /* (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29)) */
53
54 #endif /*  LINUX_26_29_COMPAT_H */