1*1b8adde7SWilliam Kucharski  /*
2*1b8adde7SWilliam Kucharski  * This program is free software; you can redistribute it and/or
3*1b8adde7SWilliam Kucharski  * modify it under the terms of the GNU General Public License as
4*1b8adde7SWilliam Kucharski  * published by the Free Software Foundation; either version 2, or (at
5*1b8adde7SWilliam Kucharski  * your option) any later version.
6*1b8adde7SWilliam Kucharski  */
7*1b8adde7SWilliam Kucharski 
8*1b8adde7SWilliam Kucharski #ifndef	NIC_H
9*1b8adde7SWilliam Kucharski #define NIC_H
10*1b8adde7SWilliam Kucharski 
11*1b8adde7SWilliam Kucharski #include "dev.h"
12*1b8adde7SWilliam Kucharski 
13*1b8adde7SWilliam Kucharski typedef enum {
14*1b8adde7SWilliam Kucharski 	DISABLE = 0,
15*1b8adde7SWilliam Kucharski 	ENABLE,
16*1b8adde7SWilliam Kucharski 	FORCE
17*1b8adde7SWilliam Kucharski } irq_action_t;
18*1b8adde7SWilliam Kucharski 
19*1b8adde7SWilliam Kucharski /*
20*1b8adde7SWilliam Kucharski  *	Structure returned from eth_probe and passed to other driver
21*1b8adde7SWilliam Kucharski  *	functions.
22*1b8adde7SWilliam Kucharski  */
23*1b8adde7SWilliam Kucharski struct nic
24*1b8adde7SWilliam Kucharski {
25*1b8adde7SWilliam Kucharski 	struct dev	dev;  /* This must come first */
26*1b8adde7SWilliam Kucharski 	int		(*poll)P((struct nic *, int retrieve));
27*1b8adde7SWilliam Kucharski 	void		(*transmit)P((struct nic *, const char *d,
28*1b8adde7SWilliam Kucharski 				unsigned int t, unsigned int s, const char *p));
29*1b8adde7SWilliam Kucharski 	void		(*irq)P((struct nic *, irq_action_t));
30*1b8adde7SWilliam Kucharski 	int		flags;	/* driver specific flags */
31*1b8adde7SWilliam Kucharski 	struct rom_info	*rom_info;	/* -> rom_info from main */
32*1b8adde7SWilliam Kucharski 	unsigned char	*node_addr;
33*1b8adde7SWilliam Kucharski 	unsigned char	*packet;
34*1b8adde7SWilliam Kucharski 	unsigned int	packetlen;
35*1b8adde7SWilliam Kucharski 	unsigned int	ioaddr;
36*1b8adde7SWilliam Kucharski 	unsigned char	irqno;
37*1b8adde7SWilliam Kucharski 	void		*priv_data;	/* driver can hang private data here */
38*1b8adde7SWilliam Kucharski };
39*1b8adde7SWilliam Kucharski 
40*1b8adde7SWilliam Kucharski extern int  eth_probe(struct dev *dev);
41*1b8adde7SWilliam Kucharski extern int  eth_poll(int retrieve);
42*1b8adde7SWilliam Kucharski extern void eth_transmit(const char *d, unsigned int t, unsigned int s, const void *p);
43*1b8adde7SWilliam Kucharski extern void eth_disable(void);
44*1b8adde7SWilliam Kucharski extern void eth_irq(irq_action_t action);
45*1b8adde7SWilliam Kucharski #endif	/* NIC_H */
46