109c434b8SThomas Gleixner // SPDX-License-Identifier: GPL-2.0-only
2644570b8SJeff Kirsher /* 8390 core for ISA devices needing bus delays */
3644570b8SJeff Kirsher
4644570b8SJeff Kirsher static const char version[] =
5644570b8SJeff Kirsher "8390p.c:v1.10cvs 9/23/94 Donald Becker (becker@cesdis.gsfc.nasa.gov)\n";
6644570b8SJeff Kirsher
7644570b8SJeff Kirsher #define ei_inb(_p) inb(_p)
8644570b8SJeff Kirsher #define ei_outb(_v, _p) outb(_v, _p)
9644570b8SJeff Kirsher #define ei_inb_p(_p) inb_p(_p)
10644570b8SJeff Kirsher #define ei_outb_p(_v, _p) outb_p(_v, _p)
11644570b8SJeff Kirsher
12644570b8SJeff Kirsher #include "lib8390.c"
13644570b8SJeff Kirsher
eip_open(struct net_device * dev)14644570b8SJeff Kirsher int eip_open(struct net_device *dev)
15644570b8SJeff Kirsher {
16644570b8SJeff Kirsher return __ei_open(dev);
17644570b8SJeff Kirsher }
18644570b8SJeff Kirsher EXPORT_SYMBOL(eip_open);
19644570b8SJeff Kirsher
eip_close(struct net_device * dev)20644570b8SJeff Kirsher int eip_close(struct net_device *dev)
21644570b8SJeff Kirsher {
22644570b8SJeff Kirsher return __ei_close(dev);
23644570b8SJeff Kirsher }
24644570b8SJeff Kirsher EXPORT_SYMBOL(eip_close);
25644570b8SJeff Kirsher
eip_start_xmit(struct sk_buff * skb,struct net_device * dev)26644570b8SJeff Kirsher netdev_tx_t eip_start_xmit(struct sk_buff *skb, struct net_device *dev)
27644570b8SJeff Kirsher {
28644570b8SJeff Kirsher return __ei_start_xmit(skb, dev);
29644570b8SJeff Kirsher }
30644570b8SJeff Kirsher EXPORT_SYMBOL(eip_start_xmit);
31644570b8SJeff Kirsher
eip_get_stats(struct net_device * dev)32644570b8SJeff Kirsher struct net_device_stats *eip_get_stats(struct net_device *dev)
33644570b8SJeff Kirsher {
34644570b8SJeff Kirsher return __ei_get_stats(dev);
35644570b8SJeff Kirsher }
36644570b8SJeff Kirsher EXPORT_SYMBOL(eip_get_stats);
37644570b8SJeff Kirsher
eip_set_multicast_list(struct net_device * dev)38644570b8SJeff Kirsher void eip_set_multicast_list(struct net_device *dev)
39644570b8SJeff Kirsher {
40644570b8SJeff Kirsher __ei_set_multicast_list(dev);
41644570b8SJeff Kirsher }
42644570b8SJeff Kirsher EXPORT_SYMBOL(eip_set_multicast_list);
43644570b8SJeff Kirsher
eip_tx_timeout(struct net_device * dev,unsigned int txqueue)44*0290bd29SMichael S. Tsirkin void eip_tx_timeout(struct net_device *dev, unsigned int txqueue)
45644570b8SJeff Kirsher {
46*0290bd29SMichael S. Tsirkin __ei_tx_timeout(dev, txqueue);
47644570b8SJeff Kirsher }
48644570b8SJeff Kirsher EXPORT_SYMBOL(eip_tx_timeout);
49644570b8SJeff Kirsher
eip_interrupt(int irq,void * dev_id)50644570b8SJeff Kirsher irqreturn_t eip_interrupt(int irq, void *dev_id)
51644570b8SJeff Kirsher {
52644570b8SJeff Kirsher return __ei_interrupt(irq, dev_id);
53644570b8SJeff Kirsher }
54644570b8SJeff Kirsher EXPORT_SYMBOL(eip_interrupt);
55644570b8SJeff Kirsher
56644570b8SJeff Kirsher #ifdef CONFIG_NET_POLL_CONTROLLER
eip_poll(struct net_device * dev)57644570b8SJeff Kirsher void eip_poll(struct net_device *dev)
58644570b8SJeff Kirsher {
59644570b8SJeff Kirsher __ei_poll(dev);
60644570b8SJeff Kirsher }
61644570b8SJeff Kirsher EXPORT_SYMBOL(eip_poll);
62644570b8SJeff Kirsher #endif
63644570b8SJeff Kirsher
64644570b8SJeff Kirsher const struct net_device_ops eip_netdev_ops = {
65644570b8SJeff Kirsher .ndo_open = eip_open,
66644570b8SJeff Kirsher .ndo_stop = eip_close,
67644570b8SJeff Kirsher .ndo_start_xmit = eip_start_xmit,
68644570b8SJeff Kirsher .ndo_tx_timeout = eip_tx_timeout,
69644570b8SJeff Kirsher .ndo_get_stats = eip_get_stats,
70afc4b13dSJiri Pirko .ndo_set_rx_mode = eip_set_multicast_list,
71644570b8SJeff Kirsher .ndo_validate_addr = eth_validate_addr,
72644570b8SJeff Kirsher .ndo_set_mac_address = eth_mac_addr,
73644570b8SJeff Kirsher #ifdef CONFIG_NET_POLL_CONTROLLER
74644570b8SJeff Kirsher .ndo_poll_controller = eip_poll,
75644570b8SJeff Kirsher #endif
76644570b8SJeff Kirsher };
77644570b8SJeff Kirsher EXPORT_SYMBOL(eip_netdev_ops);
78644570b8SJeff Kirsher
__alloc_eip_netdev(int size)79644570b8SJeff Kirsher struct net_device *__alloc_eip_netdev(int size)
80644570b8SJeff Kirsher {
81644570b8SJeff Kirsher struct net_device *dev = ____alloc_ei_netdev(size);
82644570b8SJeff Kirsher if (dev)
83644570b8SJeff Kirsher dev->netdev_ops = &eip_netdev_ops;
84644570b8SJeff Kirsher return dev;
85644570b8SJeff Kirsher }
86644570b8SJeff Kirsher EXPORT_SYMBOL(__alloc_eip_netdev);
87644570b8SJeff Kirsher
NS8390p_init(struct net_device * dev,int startp)88644570b8SJeff Kirsher void NS8390p_init(struct net_device *dev, int startp)
89644570b8SJeff Kirsher {
90644570b8SJeff Kirsher __NS8390_init(dev, startp);
91644570b8SJeff Kirsher }
92644570b8SJeff Kirsher EXPORT_SYMBOL(NS8390p_init);
93644570b8SJeff Kirsher
NS8390p_init_module(void)94644570b8SJeff Kirsher static int __init NS8390p_init_module(void)
95644570b8SJeff Kirsher {
96644570b8SJeff Kirsher return 0;
97644570b8SJeff Kirsher }
98644570b8SJeff Kirsher
NS8390p_cleanup_module(void)99644570b8SJeff Kirsher static void __exit NS8390p_cleanup_module(void)
100644570b8SJeff Kirsher {
101644570b8SJeff Kirsher }
102644570b8SJeff Kirsher
103644570b8SJeff Kirsher module_init(NS8390p_init_module);
104644570b8SJeff Kirsher module_exit(NS8390p_cleanup_module);
105644570b8SJeff Kirsher MODULE_LICENSE("GPL");
106