This commit was manufactured by cvs2svn to create tag
[linux-2.6.git] / include / linux / netdevice.h
index 6a821e7..143aa60 100644 (file)
@@ -215,6 +215,8 @@ struct hh_cache
  */
 #define LL_RESERVED_SPACE(dev) \
        (((dev)->hard_header_len&~(HH_DATA_MOD - 1)) + HH_DATA_MOD)
+#define LL_RESERVED_SPACE_EXTRA(dev,extra) \
+       ((((dev)->hard_header_len+extra)&~(HH_DATA_MOD - 1)) + HH_DATA_MOD)
 
 /* These flag bits are private to the generic network queueing
  * layer, they may not be explicitly referenced by any other
@@ -364,6 +366,8 @@ struct net_device
        struct Qdisc            *qdisc_ingress;
        unsigned long           tx_queue_len;   /* Max frames per queue allowed */
 
+       /* ingress path synchronizer */
+       spinlock_t              ingress_lock;
        /* hard_start_xmit synchronizer */
        spinlock_t              xmit_lock;
        /* cpu id of processor entered to hard_start_xmit or -1,
@@ -403,6 +407,7 @@ struct net_device
 #define NETIF_F_HW_VLAN_FILTER 512     /* Receive filtering on VLAN */
 #define NETIF_F_VLAN_CHALLENGED        1024    /* Device cannot handle VLAN packets */
 #define NETIF_F_TSO            2048    /* Can offload TCP/IP segmentation */
+#define NETIF_F_LLTX           4096    /* LockLess TX */
 
        /* Called after device is detached from network. */
        void                    (*uninit)(struct net_device *dev);
@@ -457,7 +462,7 @@ struct net_device
                                                     unsigned char *haddr);
        int                     (*neigh_setup)(struct net_device *dev, struct neigh_parms *);
        int                     (*accept_fastpath)(struct net_device *, struct dst_entry*);
-#ifdef CONFIG_NETPOLL_RX
+#ifdef CONFIG_NETPOLL
        int                     netpoll_rx;
 #endif
 #ifdef CONFIG_NET_POLL_CONTROLLER
@@ -556,11 +561,11 @@ extern int                dev_restart(struct net_device *dev);
 extern int             netpoll_trap(void);
 #endif
 
-typedef int gifconf_func_t(struct net_device * dev, char * bufptr, int len);
+typedef int gifconf_func_t(struct net_device * dev, char __user * bufptr, int len);
 extern int             register_gifconf(unsigned int family, gifconf_func_t * gifconf);
 static inline int unregister_gifconf(unsigned int family)
 {
-       return register_gifconf(family, 0);
+       return register_gifconf(family, NULL);
 }
 
 /*
@@ -674,7 +679,7 @@ static inline void dev_kfree_skb_any(struct sk_buff *skb)
 extern int             netif_rx(struct sk_buff *skb);
 #define HAVE_NETIF_RECEIVE_SKB 1
 extern int             netif_receive_skb(struct sk_buff *skb);
-extern int             dev_ioctl(unsigned int cmd, void *);
+extern int             dev_ioctl(unsigned int cmd, void __user *);
 extern int             dev_ethtool(struct ifreq *);
 extern unsigned                dev_get_flags(const struct net_device *);
 extern int             dev_change_flags(struct net_device *, unsigned);
@@ -685,6 +690,12 @@ extern void                dev_init(void);
 
 extern int             netdev_nit;
 
+/* netconsole rx hook registration */
+extern int netdump_register_hooks(int (*)(struct sk_buff *),
+                                 int (*)(struct sk_buff *),
+                                 void (*)(struct pt_regs *));
+extern void netdump_unregister_hooks(void);
+
 /* Post buffer to the network code from _non interrupt_ context.
  * see net/core/dev.c for netif_rx description.
  */
@@ -941,7 +952,7 @@ extern int          weight_p;
 extern unsigned long   netdev_fc_xoff;
 extern atomic_t netdev_dropping;
 extern int             netdev_set_master(struct net_device *dev, struct net_device *master);
-extern struct sk_buff * skb_checksum_help(struct sk_buff *skb);
+extern int skb_checksum_help(struct sk_buff **pskb, int inward);
 #ifdef CONFIG_NET_FASTROUTE
 extern int             netdev_fastroute;
 extern int             netdev_fastroute_obstacles;