X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=datapath%2Flinux-2.6%2Fcompat-2.6%2Finclude%2Flinux%2Fnetdevice.h;h=0cd91b9f4bc18fa3437065fd7d599ecd30919ff0;hb=02dd3123a0e312f1d33403e744af52dd6096f12d;hp=d29151339be6c377c7eb9203f3de0d1b87fad715;hpb=806e39cfdf17ae61221eefb6e292f99c8abc2efc;p=openvswitch 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 d2915133..0cd91b9f 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,14 @@ 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 #endif