提交 748ff68f 编写于 作者: S Stephen Hemminger 提交者: David S. Miller

hippi: convert driver to net_device_ops

Convert the HIPPI infrastructure for use with net_device_ops.
Signed-off-by: NStephen Hemminger <shemminger@vyatta.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 fd8f4997
...@@ -63,6 +63,16 @@ MODULE_LICENSE("GPL"); ...@@ -63,6 +63,16 @@ MODULE_LICENSE("GPL");
static char version[] __devinitdata = "rrunner.c: v0.50 11/11/2002 Jes Sorensen (jes@wildopensource.com)\n"; static char version[] __devinitdata = "rrunner.c: v0.50 11/11/2002 Jes Sorensen (jes@wildopensource.com)\n";
static const struct net_device_ops rr_netdev_ops = {
.ndo_open = rr_open,
.ndo_stop = rr_close,
.ndo_do_ioctl = rr_ioctl,
.ndo_start_xmit = rr_start_xmit,
.ndo_change_mtu = hippi_change_mtu,
.ndo_set_mac_address = hippi_mac_addr,
};
/* /*
* Implementation notes: * Implementation notes:
* *
...@@ -115,10 +125,7 @@ static int __devinit rr_init_one(struct pci_dev *pdev, ...@@ -115,10 +125,7 @@ static int __devinit rr_init_one(struct pci_dev *pdev,
spin_lock_init(&rrpriv->lock); spin_lock_init(&rrpriv->lock);
dev->irq = pdev->irq; dev->irq = pdev->irq;
dev->open = &rr_open; dev->netdev_ops = &rr_netdev_ops;
dev->hard_start_xmit = &rr_start_xmit;
dev->stop = &rr_close;
dev->do_ioctl = &rr_ioctl;
dev->base_addr = pci_resource_start(pdev, 0); dev->base_addr = pci_resource_start(pdev, 0);
......
...@@ -32,7 +32,9 @@ struct hippi_cb { ...@@ -32,7 +32,9 @@ struct hippi_cb {
}; };
extern __be16 hippi_type_trans(struct sk_buff *skb, struct net_device *dev); extern __be16 hippi_type_trans(struct sk_buff *skb, struct net_device *dev);
extern int hippi_change_mtu(struct net_device *dev, int new_mtu);
extern int hippi_mac_addr(struct net_device *dev, void *p);
extern int hippi_neigh_setup_dev(struct net_device *dev, struct neigh_parms *p);
extern struct net_device *alloc_hippi_dev(int sizeof_priv); extern struct net_device *alloc_hippi_dev(int sizeof_priv);
#endif #endif
......
...@@ -144,7 +144,7 @@ __be16 hippi_type_trans(struct sk_buff *skb, struct net_device *dev) ...@@ -144,7 +144,7 @@ __be16 hippi_type_trans(struct sk_buff *skb, struct net_device *dev)
EXPORT_SYMBOL(hippi_type_trans); EXPORT_SYMBOL(hippi_type_trans);
static int hippi_change_mtu(struct net_device *dev, int new_mtu) int hippi_change_mtu(struct net_device *dev, int new_mtu)
{ {
/* /*
* HIPPI's got these nice large MTUs. * HIPPI's got these nice large MTUs.
...@@ -154,12 +154,13 @@ static int hippi_change_mtu(struct net_device *dev, int new_mtu) ...@@ -154,12 +154,13 @@ static int hippi_change_mtu(struct net_device *dev, int new_mtu)
dev->mtu = new_mtu; dev->mtu = new_mtu;
return(0); return(0);
} }
EXPORT_SYMBOL(hippi_change_mtu);
/* /*
* For HIPPI we will actually use the lower 4 bytes of the hardware * For HIPPI we will actually use the lower 4 bytes of the hardware
* address as the I-FIELD rather than the actual hardware address. * address as the I-FIELD rather than the actual hardware address.
*/ */
static int hippi_mac_addr(struct net_device *dev, void *p) int hippi_mac_addr(struct net_device *dev, void *p)
{ {
struct sockaddr *addr = p; struct sockaddr *addr = p;
if (netif_running(dev)) if (netif_running(dev))
...@@ -167,8 +168,9 @@ static int hippi_mac_addr(struct net_device *dev, void *p) ...@@ -167,8 +168,9 @@ static int hippi_mac_addr(struct net_device *dev, void *p)
memcpy(dev->dev_addr, addr->sa_data, dev->addr_len); memcpy(dev->dev_addr, addr->sa_data, dev->addr_len);
return 0; return 0;
} }
EXPORT_SYMBOL(hippi_mac_addr);
static int hippi_neigh_setup_dev(struct net_device *dev, struct neigh_parms *p) int hippi_neigh_setup_dev(struct net_device *dev, struct neigh_parms *p)
{ {
/* Never send broadcast/multicast ARP messages */ /* Never send broadcast/multicast ARP messages */
p->mcast_probes = 0; p->mcast_probes = 0;
...@@ -181,6 +183,7 @@ static int hippi_neigh_setup_dev(struct net_device *dev, struct neigh_parms *p) ...@@ -181,6 +183,7 @@ static int hippi_neigh_setup_dev(struct net_device *dev, struct neigh_parms *p)
p->ucast_probes = 0; p->ucast_probes = 0;
return 0; return 0;
} }
EXPORT_SYMBOL(hippi_neigh_setup_dev);
static const struct header_ops hippi_header_ops = { static const struct header_ops hippi_header_ops = {
.create = hippi_header, .create = hippi_header,
...@@ -190,11 +193,12 @@ static const struct header_ops hippi_header_ops = { ...@@ -190,11 +193,12 @@ static const struct header_ops hippi_header_ops = {
static void hippi_setup(struct net_device *dev) static void hippi_setup(struct net_device *dev)
{ {
dev->set_multicast_list = NULL; #ifdef CONFIG_COMPAT_NET_DEV_OPS
dev->change_mtu = hippi_change_mtu; dev->change_mtu = hippi_change_mtu;
dev->header_ops = &hippi_header_ops;
dev->set_mac_address = hippi_mac_addr; dev->set_mac_address = hippi_mac_addr;
dev->neigh_setup = hippi_neigh_setup_dev; dev->neigh_setup = hippi_neigh_setup_dev;
#endif
dev->header_ops = &hippi_header_ops;
/* /*
* We don't support HIPPI `ARP' for the time being, and probably * We don't support HIPPI `ARP' for the time being, and probably
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册