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=b7182832999dd9da3a44207d72a2c89327ad2fcb;hpb=58c342f617051e9e2ffb09710b4ef2b22c34e79a;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 b7182832..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 @@ -23,14 +24,36 @@ struct net; 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) @@ -40,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