60 lines · 1.2 KB · C
RawDownload
typedef struct Ether Ether;typedef struct Etherctlr Etherctlr; struct Ether {	ISAConf;			/* hardware info */ 	int	ctlrno;	char	iname[NAMELEN];	char	oname[NAMELEN];	int	tbdf;			/* type+busno+devno+funcno */	int	mbps;			/* Mbps */	uchar	ea[Easize]; 	void	(*attach)(Ether*);		/* filled in by reset routine */	void	(*transmit)(Ether*);	void	(*interrupt)(Ureg*, void*);	void	*ctlr; 	Ifc	ifc; 	Lock	rqlock;	Msgbuf	*rqhead;	Msgbuf	*rqtail;	Rendez	rqr; 	Lock	tqlock;	Msgbuf	*tqhead;	Msgbuf	*tqtail;	Rendez	tqr;}; struct Etherctlr{	char	*type;	int	(*reset)(Ether*);}; #define NEXT(x, l)	(((x)+1)%(l))#define PREV(x, l)	(((x) == 0) ? (l)-1: (x)-1)#define	HOWMANY(x, y)	(((x)+((y)-1))/(y))#define ROUNDUP(x, y)	(HOWMANY((x), (y))*(y)) extern	Etherctlr	etherctlr[];extern	int	netherctlr;extern	Ether	etherif[MaxEther];extern	int	nether; void	etheriq(Ether*, Msgbuf*);Msgbuf	*etheroq(Ether*); int	etherga620reset(Ether*);int	ether21140reset(Ether*);int	etherelnk3reset(Ether*);int	etheri82557reset(Ether*);int	igbepnp(Ether*);int	dp83815reset(Ether*);int	dp83820pnp(Ether*);int	rtl8139pnp(Ether*);int	rtl8169pnp(Ether*);int	i82563reset(Ether*);int	m10gpnp(Ether*);