Charles.Forsyth20060303644188019 years agoHistory
39 lines · 961 B · C
RawDownload
enum {	MaxEther	= 24,	Ntypes		= 8,}; typedef struct Ether Ether;struct Ether {	ISAConf;			/* hardware info */ 	int	ctlrno;	int	tbdf;			/* type+busno+devno+funcno */	int	minmtu;	int 	maxmtu;	uchar	ea[Eaddrlen]; 	void	(*attach)(Ether*);	/* filled in by reset routine */	void	(*detach)(Ether*);	void	(*transmit)(Ether*);	void	(*interrupt)(Ureg*, void*);	long	(*ifstat)(Ether*, void*, long, ulong);	long 	(*ctl)(Ether*, void*, long); /* custom ctl messages */	void	(*power)(Ether*, int);	/* power on/off */	void	(*shutdown)(Ether*);	/* shutdown hardware before reboot */	void	*ctlr; 	Queue*	oq; 	Netif;}; extern Block* etheriq(Ether*, Block*, int);extern void addethercard(char*, int(*)(Ether*));extern ulong ethercrc(uchar*, int);extern int parseether(uchar*, char*); #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))