V10/sys/sys/ni1010a.h

/*
 * Interlan NI1010A Ethernet controller
 */

/*
 * one struct ilchan per minor device;
 * eight of these per controller,
 * embedded in struct il
 */

#define	NILCHAN	8

struct ilchan {
	char unit;
	char ndelims;	/* number of packets waiting */
	short type;	/* ethernet protocol # */
	struct queue *rq;
	struct block *xcur;	/* block now being sent */
	struct block *xlast;	/* last data block put */
};

/*
 * one struct il per controller
 */

struct il {
	char flags;
	char ubno;
	short rbytes;		/* buffer space now outstanding */
	short rbufs;		/* number of buffers outstanding */
	short lastcsr;		/* il_csr at last interrupt */
	int ipackets, opackets;
	int ierrors, oerrors;
	int collisions;
	int ilost;
	struct ildevice *addr;
	struct block *rfirst, *rlast;	/* receive buffer */
	struct block *rnext;		/* where next block goes */
	short rcur;			/* bytes left in current packet */
	char lastch;			/* current transmit channel */
	unsigned char enaddr[6];	/* my ethernet address */
	struct ilchan chan[NILCHAN];
};