datapath: Add genl_exec().
[sliver-openvswitch.git] / datapath / linux / compat / include / linux / skbuff.h
index b728c51..01e524e 100644 (file)
 #define skb_headroom rpl_skb_headroom
 static inline unsigned int rpl_skb_headroom(const struct sk_buff *skb)
 {
-       return skb->data - skb->head;
+       return skb->data - skb->head;
 }
 #endif
 
 #ifndef HAVE_SKB_COPY_FROM_LINEAR_DATA_OFFSET
 static inline void skb_copy_from_linear_data_offset(const struct sk_buff *skb,
-                                                    const int offset, void *to,
-                                                    const unsigned int len)
+                                                   const int offset, void *to,
+                                                   const unsigned int len)
 {
        memcpy(to, skb->data + offset, len);
 }
 
 static inline void skb_copy_to_linear_data_offset(struct sk_buff *skb,
-                                                  const int offset,
-                                                  const void *from,
-                                                  const unsigned int len)
+                                                 const int offset,
+                                                 const void *from,
+                                                 const unsigned int len)
 {
        memcpy(skb->data + offset, from, len);
 }
 
 #endif /* !HAVE_SKB_COPY_FROM_LINEAR_DATA_OFFSET */
 
+#ifndef HAVE_SKB_RESET_TAIL_POINTER
+static inline void skb_reset_tail_pointer(struct sk_buff *skb)
+{
+       skb->tail = skb->data;
+}
+#endif
 /*
  * The networking layer reserves some headroom in skb data (via
  * dev_alloc_skb). This is used to avoid having to reallocate skb data when
@@ -55,7 +61,7 @@ static inline void skb_copy_to_linear_data_offset(struct sk_buff *skb,
 
 #ifndef HAVE_SKB_COW_HEAD
 static inline int __skb_cow(struct sk_buff *skb, unsigned int headroom,
-                            int cloned)
+                           int cloned)
 {
        int delta = 0;
 
@@ -174,7 +180,7 @@ static inline void skb_set_mac_header(struct sk_buff *skb, const int offset)
 
 static inline int skb_transport_offset(const struct sk_buff *skb)
 {
-    return skb_transport_header(skb) - skb->data;
+       return skb_transport_header(skb) - skb->data;
 }
 
 static inline int skb_network_offset(const struct sk_buff *skb)
@@ -232,4 +238,17 @@ static inline bool skb_warn_if_lro(const struct sk_buff *skb)
 #define consume_skb kfree_skb
 #endif
 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0)
+static inline struct page *skb_frag_page(const skb_frag_t *frag)
+{
+       return frag->page;
+}
+#endif
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,40)
+static inline void skb_reset_mac_len(struct sk_buff *skb)
+{
+       skb->mac_len = skb->network_header - skb->mac_header;
+}
+#endif
 #endif