X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=datapath%2Flinux-2.6%2Fcompat-2.6%2Finclude%2Flinux%2Fnetdevice.h;h=1e354e72740464279f74bada3d5aea7a229512e8;hb=488a9d1703a182529d53d80c7ab5a1b608a3600a;hp=d29151339be6c377c7eb9203f3de0d1b87fad715;hpb=34e63086edddcae06d7c1a4fa84fec0861e50758;p=sliver-openvswitch.git diff --git a/datapath/linux-2.6/compat-2.6/include/linux/netdevice.h b/datapath/linux-2.6/compat-2.6/include/linux/netdevice.h index d29151339..1e354e727 100644 --- a/datapath/linux-2.6/compat-2.6/include/linux/netdevice.h +++ b/datapath/linux-2.6/compat-2.6/include/linux/netdevice.h @@ -5,6 +5,7 @@ struct net; +#include /* Before 2.6.21, struct net_device has a "struct class_device" member named * class_dev. Beginning with 2.6.21, struct net_device instead has a "struct * device" member named dev. Otherwise the usage of these members is pretty @@ -16,22 +17,43 @@ struct net; #endif #ifndef to_net_dev -#define to_net_dev(class) \ - container_of(class, struct net_device, NETDEV_DEV_MEMBER) +#define to_net_dev(class) container_of(class, struct net_device, NETDEV_DEV_MEMBER) #endif #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26) static inline struct net *dev_net(const struct net_device *dev) { +#ifdef CONFIG_NET_NS + return dev->nd_net; +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25) + return &init_net; +#else return NULL; +#endif +} + +static inline +void dev_net_set(struct net_device *dev, const struct net *net) +{ +#ifdef CONFIG_NET_NS + dev->nd_dev = net; +#endif } #endif /* linux kernel < 2.6.26 */ +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24) +#define NETIF_F_NETNS_LOCAL 0 +#endif + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24) #define proc_net init_net.proc_net #endif +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,32) +typedef int netdev_tx_t; +#endif + #ifndef for_each_netdev /* Linux before 2.6.22 didn't have for_each_netdev at all. */ #define for_each_netdev(net, d) for (d = dev_base; d; d = d->next) @@ -41,6 +63,30 @@ struct net *dev_net(const struct net_device *dev) #define for_each_netdev(net,d) list_for_each_entry(d, &dev_base_head, dev_list) #endif +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20) +#define net_xmit_eval(e) ((e) == NET_XMIT_CN? 0 : (e)) +#endif + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33) +extern void unregister_netdevice_queue(struct net_device *dev, + struct list_head *head); +extern void unregister_netdevice_many(struct list_head *head); +#endif + +#ifndef HAVE_DEV_DISABLE_LRO +extern void dev_disable_lro(struct net_device *dev); +#endif +#ifndef HAVE_DEV_GET_STATS +static inline const struct net_device_stats * +dev_get_stats(struct net_device *dev) +{ + return dev->get_stats(dev); +} +#endif + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19) +#define skb_checksum_help(skb) skb_checksum_help((skb), 0) +#endif #endif