plan 9 kernel history: overview | file list | diff list

1993/1124/pc/etherif.h (diff list | history)

1993/1113/sys/src/9/pc/etherif.h:22,271993/1116/sys/src/9/pc/etherif.h:22,39 (short | long)
Add Dp8390.
rsc Fri Mar 4 12:44:25 2005
1993/1113    
	Netif; 
}; 
 
1993/1116    
typedef struct { 
	uchar	bit16;			/* true if a 16 bit interface */ 
	uchar	ram;			/* true if card has shared memory */ 
 
	ulong	dp8390;			/* I/O address of 8390 */ 
	ulong	data;			/* I/O data port if no shared memory */ 
	uchar	nxtpkt;			/* software bndry */ 
	uchar	tstart;			/* 8390 ring addresses */ 
	uchar	pstart; 
	uchar	pstop; 
} Dp8390; 
 
1993/1113    
#define NEXT(x, l)	(((x)+1)%(l)) 
#define	HOWMANY(x, y)	(((x)+((y)-1))/(y)) 
#define ROUNDUP(x, y)	(HOWMANY((x), (y))*(y)) 
1993/1116/sys/src/9/pc/etherif.h:28,381993/1118/sys/src/9/pc/etherif.h:28,46 (short | long)
Add dp8390 functions and Dp8390.busy.
rsc Fri Mar 4 12:44:25 2005
1993/1116    
 
	ulong	dp8390;			/* I/O address of 8390 */ 
	ulong	data;			/* I/O data port if no shared memory */ 
	uchar	nxtpkt;			/* software bndry */ 
1993/1118    
 
	uchar	nxtpkt;			/* receive: software bndry */ 
	uchar	busy;			/* transmit: busy */ 
1993/1116    
	uchar	tstart;			/* 8390 ring addresses */ 
	uchar	pstart; 
	uchar	pstop; 
} Dp8390; 
1993/1118    
 
#define Dp8390BufSz	256 
 
extern int dp8390reset(Ether*); 
extern void dp8390getea(Ether*); 
extern void dp8390setea(Ether*); 
1993/1116    
 
1993/1113    
#define NEXT(x, l)	(((x)+1)%(l)) 
#define	HOWMANY(x, y)	(((x)+((y)-1))/(y)) 
1993/1118/sys/src/9/pc/etherif.h:17,231993/1119/sys/src/9/pc/etherif.h:17,23 (short | long)
Remove Dp8390.busy.
rsc Fri Mar 4 12:44:25 2005
1993/1113    
 
	QLock	tlock;			/* lock for grabbing transmitter queue */ 
	Rendez	tr;			/* wait here for free xmit buffer */ 
	long	tlen;			/* length of data in tb for txfifo management */ 
1993/1119    
	long	tlen;			/* length of data in tpkt */ 
1993/1113    
 
	Netif; 
}; 
1993/1118/sys/src/9/pc/etherif.h:30,361993/1119/sys/src/9/pc/etherif.h:30,35
1993/1116    
	ulong	data;			/* I/O data port if no shared memory */ 
1993/1118    
 
	uchar	nxtpkt;			/* receive: software bndry */ 
	uchar	busy;			/* transmit: busy */ 
1993/1116    
	uchar	tstart;			/* 8390 ring addresses */ 
	uchar	pstart; 
	uchar	pstop; 
1993/1119/sys/src/9/pc/etherif.h:9,151993/1124/sys/src/9/pc/etherif.h:9,15 (short | long)
Change interrupt prototype.
rsc Fri Mar 4 12:44:25 2005
1993/1113    
 
	void	(*attach)(Ether*);	/* filled in by reset routine */ 
	long	(*write)(Ether*, void*, long); 
	void	(*interrupt)(Ether*); 
1993/1124    
	void	(*interrupt)(Ureg*, void*); 
1993/1113    
	void	*private; 
 
	Etherpkt tpkt;			/* transmit buffer */ 
1993/1124/sys/src/9/pc/etherif.h:40,451994/0128/sys/src/9/pc/etherif.h:40,47 (short | long)
Add dp8390 functions.
rsc Fri Mar 4 12:44:25 2005
1993/1118    
extern int dp8390reset(Ether*); 
extern void dp8390getea(Ether*); 
extern void dp8390setea(Ether*); 
1994/0128    
extern void *dp8390read(Dp8390*, void*, ulong, ulong); 
extern void *dp8390write(Dp8390*, ulong, void*, ulong); 
1993/1116    
 
1993/1113    
#define NEXT(x, l)	(((x)+1)%(l)) 
#define	HOWMANY(x, y)	(((x)+((y)-1))/(y)) 
1994/0128/sys/src/9/pc/etherif.h:38,471994/0130/sys/src/9/pc/etherif.h:38,47 (short | long)
Format edit.
rsc Fri Mar 4 12:44:25 2005
1993/1118    
#define Dp8390BufSz	256 
 
extern int dp8390reset(Ether*); 
extern void dp8390getea(Ether*); 
extern void dp8390setea(Ether*); 
1994/0128    
extern void *dp8390read(Dp8390*, void*, ulong, ulong); 
extern void *dp8390write(Dp8390*, ulong, void*, ulong); 
1994/0130    
extern void dp8390getea(Ether*); 
extern void dp8390setea(Ether*); 
1993/1116    
 
1993/1113    
#define NEXT(x, l)	(((x)+1)%(l)) 
#define	HOWMANY(x, y)	(((x)+((y)-1))/(y)) 
1994/0130/sys/src/9/pc/etherif.h:22,271994/0202/sys/src/9/pc/etherif.h:22,35 (short | long)
Format edit. Comment edit. Add etherrloop.
rsc Fri Mar 4 12:44:25 2005
1993/1113    
	Netif; 
}; 
 
1994/0202    
extern void etherrloop(Ether*, Etherpkt*, long); 
extern void addethercard(char*, int(*)(Ether*)); 
 
/* 
 * Stuff for the boards using the National Semiconductor DP8390 
 * and SMC 83C90 Network Interface Controller. 
 * Common code is in ether8390.c. 
 */ 
1993/1116    
typedef struct { 
	uchar	bit16;			/* true if a 16 bit interface */ 
	uchar	ram;			/* true if card has shared memory */ 
1994/0130/sys/src/9/pc/etherif.h:46,501994/0202/sys/src/9/pc/etherif.h:54,56
1993/1113    
#define NEXT(x, l)	(((x)+1)%(l)) 
#define	HOWMANY(x, y)	(((x)+((y)-1))/(y)) 
#define ROUNDUP(x, y)	(HOWMANY((x), (y))*(y)) 
                 
extern void addethercard(char*, int(*)(Ether*)); 
1994/0202/sys/src/9/pc/etherif.h:22,281994/0702/sys/src/9/pc/etherif.h:22,28 (short | long)
Add parameter toetherrloop.
rsc Fri Mar 4 12:44:25 2005
1993/1113    
	Netif; 
}; 
 
1994/0202    
extern void etherrloop(Ether*, Etherpkt*, long); 
1994/0702    
extern void etherrloop(Ether*, Etherpkt*, long, int); 
1994/0202    
extern void addethercard(char*, int(*)(Ether*)); 
 
/* 
1994/0702/sys/src/9/pc/etherif.h:1,51995/0129/sys/src/9/pc/etherif.h:1,5 (short | long)
Increase MaxEther.
rsc Fri Mar 4 12:44:25 2005
1993/1113    
enum { 
	MaxEther	= 4, 
1995/0129    
	MaxEther	= 8, 
1993/1113    
	Ntypes		= 8, 
}; 
 
1995/0129/sys/src/9/pc/etherif.h:6,161995/0721/sys/src/9/pc/etherif.h:6,17 (short | long)
Rename Ether.private to Ether.ctlr. Remove parameter from etherrloop.
rsc Fri Mar 4 12:44:25 2005
1993/1113    
typedef struct Ether Ether; 
struct Ether { 
	ISAConf;			/* hardware info */ 
1995/0721    
	int	ctlrno; 
1993/1113    
 
	void	(*attach)(Ether*);	/* filled in by reset routine */ 
	long	(*write)(Ether*, void*, long); 
1993/1124    
	void	(*interrupt)(Ureg*, void*); 
1993/1113    
	void	*private; 
1995/0721    
	void	*ctlr; 
1993/1113    
 
	Etherpkt tpkt;			/* transmit buffer */ 
	Etherpkt rpkt;			/* receive buffer */ 
1995/0129/sys/src/9/pc/etherif.h:22,281995/0721/sys/src/9/pc/etherif.h:23,29
1993/1113    
	Netif; 
}; 
 
1994/0702    
extern void etherrloop(Ether*, Etherpkt*, long, int); 
1995/0721    
extern void etherrloop(Ether*, Etherpkt*, long); 
1994/0202    
extern void addethercard(char*, int(*)(Ether*)); 
 
/* 
1995/0721/sys/src/9/pc/etherif.h:49,551996/0420/sys/src/9/pc/etherif.h:49,54 (short | long)
Remove dp8390getea.
rsc Fri Mar 4 12:44:25 2005
1993/1118    
extern int dp8390reset(Ether*); 
1994/0128    
extern void *dp8390read(Dp8390*, void*, ulong, ulong); 
extern void *dp8390write(Dp8390*, ulong, void*, ulong); 
1994/0130    
extern void dp8390getea(Ether*); 
extern void dp8390setea(Ether*); 
1993/1116    
 
1993/1113    
#define NEXT(x, l)	(((x)+1)%(l)) 
1996/0420/sys/src/9/pc/etherif.h:7,121996/0601/sys/src/9/pc/etherif.h:7,13 (short | long)
Add Ether.mbps.
rsc Fri Mar 4 12:44:25 2005
1993/1113    
struct Ether { 
	ISAConf;			/* hardware info */ 
1995/0721    
	int	ctlrno; 
1996/0601    
	int	mbps;			/* Mbps */ 
1993/1113    
 
	void	(*attach)(Ether*);	/* filled in by reset routine */ 
	long	(*write)(Ether*, void*, long); 
1996/0601/sys/src/9/pc/etherif.h:1,51996/0607/sys/src/9/pc/etherif.h:1,5 (short | long)
Increase MaxEther. Add Ether.ifstat.
rsc Fri Mar 4 12:44:25 2005
1993/1113    
enum { 
1995/0129    
	MaxEther	= 8, 
1996/0607    
	MaxEther	= 24, 
1993/1113    
	Ntypes		= 8, 
}; 
 
1996/0601/sys/src/9/pc/etherif.h:12,171996/0607/sys/src/9/pc/etherif.h:12,18
1993/1113    
	void	(*attach)(Ether*);	/* filled in by reset routine */ 
	long	(*write)(Ether*, void*, long); 
1993/1124    
	void	(*interrupt)(Ureg*, void*); 
1996/0607    
	long	(*ifstat)(Ether*, void*, long, ulong); 
1995/0721    
	void	*ctlr; 
1993/1113    
 
	Etherpkt tpkt;			/* transmit buffer */ 
1996/0607/sys/src/9/pc/etherif.h:54,581996/0622/sys/src/9/pc/etherif.h:54,59 (short | long)
Add PREV macro.
rsc Fri Mar 4 12:44:25 2005
1994/0130    
extern void dp8390setea(Ether*); 
1993/1116    
 
1993/1113    
#define NEXT(x, l)	(((x)+1)%(l)) 
1996/0622    
#define PREV(x, l)	(((x) == 0) ? (l)-1: (x)-1) 
1993/1113    
#define	HOWMANY(x, y)	(((x)+((y)-1))/(y)) 
#define ROUNDUP(x, y)	(HOWMANY((x), (y))*(y)) 
1996/0622/sys/src/9/pc/etherif.h:7,571997/0327/sys/src/9/pc/etherif.h:7,29 (short | long)
In Ether: add ea, replace write with transmit and oq; remove explicit buffers. Add etheriq. Move Dp8390 code to etherdp8390.h XXX.
rsc Fri Mar 4 12:44:25 2005
1993/1113    
struct Ether { 
	ISAConf;			/* hardware info */ 
1995/0721    
	int	ctlrno; 
1997/0327    
	int	tbdf;			/* type+busno+devno+funcno */ 
1996/0601    
	int	mbps;			/* Mbps */ 
1997/0327    
	uchar	ea[Eaddrlen]; 
1993/1113    
 
	void	(*attach)(Ether*);	/* filled in by reset routine */ 
	long	(*write)(Ether*, void*, long); 
1997/0327    
	void	(*transmit)(Ether*); 
1993/1124    
	void	(*interrupt)(Ureg*, void*); 
1996/0607    
	long	(*ifstat)(Ether*, void*, long, ulong); 
1995/0721    
	void	*ctlr; 
1993/1113    
 
	Etherpkt tpkt;			/* transmit buffer */ 
	Etherpkt rpkt;			/* receive buffer */ 
1997/0327    
	Queue*	oq; 
1993/1113    
 
	QLock	tlock;			/* lock for grabbing transmitter queue */ 
	Rendez	tr;			/* wait here for free xmit buffer */ 
1993/1119    
	long	tlen;			/* length of data in tpkt */ 
1993/1113    
                 
	Netif; 
}; 
 
1995/0721    
extern void etherrloop(Ether*, Etherpkt*, long); 
1997/0327    
extern Block* etheriq(Ether*, Block*, int); 
1994/0202    
extern void addethercard(char*, int(*)(Ether*)); 
                 
/* 
 * Stuff for the boards using the National Semiconductor DP8390 
 * and SMC 83C90 Network Interface Controller. 
 * Common code is in ether8390.c. 
 */ 
1993/1116    
typedef struct { 
	uchar	bit16;			/* true if a 16 bit interface */ 
	uchar	ram;			/* true if card has shared memory */ 
                 
	ulong	dp8390;			/* I/O address of 8390 */ 
	ulong	data;			/* I/O data port if no shared memory */ 
1993/1118    
                 
	uchar	nxtpkt;			/* receive: software bndry */ 
1993/1116    
	uchar	tstart;			/* 8390 ring addresses */ 
	uchar	pstart; 
	uchar	pstop; 
} Dp8390; 
1993/1118    
                 
#define Dp8390BufSz	256 
                 
extern int dp8390reset(Ether*); 
1994/0128    
extern void *dp8390read(Dp8390*, void*, ulong, ulong); 
extern void *dp8390write(Dp8390*, ulong, void*, ulong); 
1994/0130    
extern void dp8390setea(Ether*); 
1993/1116    
 
1993/1113    
#define NEXT(x, l)	(((x)+1)%(l)) 
1996/0622    
#define PREV(x, l)	(((x) == 0) ? (l)-1: (x)-1) 
1997/0327/sys/src/9/pc/etherif.h:24,291997/0415/sys/src/9/pc/etherif.h:24,30 (short | long)
Add ethercrc.
rsc Fri Mar 4 12:44:25 2005
1993/1113    
 
1997/0327    
extern Block* etheriq(Ether*, Block*, int); 
1994/0202    
extern void addethercard(char*, int(*)(Ether*)); 
1997/0415    
extern ulong ethercrc(uchar*, int); 
1993/1116    
 
1993/1113    
#define NEXT(x, l)	(((x)+1)%(l)) 
1996/0622    
#define PREV(x, l)	(((x) == 0) ? (l)-1: (x)-1) 
1997/0415/sys/src/9/pc/etherif.h:6,111998/0423/sys/src/9/pc/etherif.h:6,12 (short | long)
Formatting - add blank line.
rsc Fri Mar 4 12:44:25 2005
1993/1113    
typedef struct Ether Ether; 
struct Ether { 
	ISAConf;			/* hardware info */ 
1998/0423    
 
1995/0721    
	int	ctlrno; 
1997/0327    
	int	tbdf;			/* type+busno+devno+funcno */ 
1996/0601    
	int	mbps;			/* Mbps */ 
1998/0423/sys/src/9/pc/etherif.h:11,212000/0817/sys/src/9/pc/etherif.h:11,23 (short | long)
Add Ether.encry, Ether.ctl.
rsc Fri Mar 4 12:44:25 2005
1997/0327    
	int	tbdf;			/* type+busno+devno+funcno */ 
1996/0601    
	int	mbps;			/* Mbps */ 
1997/0327    
	uchar	ea[Eaddrlen]; 
2000/0817    
	int	encry; 
1993/1113    
 
	void	(*attach)(Ether*);	/* filled in by reset routine */ 
1997/0327    
	void	(*transmit)(Ether*); 
1993/1124    
	void	(*interrupt)(Ureg*, void*); 
1996/0607    
	long	(*ifstat)(Ether*, void*, long, ulong); 
2000/0817    
	long 	(*ctl)(Ether*, void*, long); /* custom ctl messages */ 
1995/0721    
	void	*ctlr; 
1993/1113    
 
1997/0327    
	Queue*	oq; 
2000/0817/sys/src/9/pc/etherif.h:10,152000/0921/sys/src/9/pc/etherif.h:10,17 (short | long)
Add Ether.minmtu, Ether.maxmtu.
rsc Fri Mar 4 12:44:25 2005
1995/0721    
	int	ctlrno; 
1997/0327    
	int	tbdf;			/* type+busno+devno+funcno */ 
1996/0601    
	int	mbps;			/* Mbps */ 
2000/0921    
	int	minmtu; 
	int 	maxmtu; 
1997/0327    
	uchar	ea[Eaddrlen]; 
2000/0817    
	int	encry; 
1993/1113    
 
2000/0921/sys/src/9/pc/etherif.h:13,192001/1022/sys/src/9/pc/etherif.h:13,18 (short | long)
Remove Ether.encry.
rsc Fri Mar 4 12:44:25 2005
2000/0921    
	int	minmtu; 
	int 	maxmtu; 
1997/0327    
	uchar	ea[Eaddrlen]; 
2000/0817    
	int	encry; 
1993/1113    
 
	void	(*attach)(Ether*);	/* filled in by reset routine */ 
1997/0327    
	void	(*transmit)(Ether*); 
2001/1022/sys/src/9/pc/etherif.h:19,242002/0109/sys/src/9/pc/etherif.h:19,25 (short | long)
Add Dev.shutdown.
rsc Fri Mar 4 12:44:25 2005
1993/1124    
	void	(*interrupt)(Ureg*, void*); 
1996/0607    
	long	(*ifstat)(Ether*, void*, long, ulong); 
2000/0817    
	long 	(*ctl)(Ether*, void*, long); /* custom ctl messages */ 
2002/0109    
	void	(*shutdown)(Ether*);	/* shutdown hardware before reboot */ 
1995/0721    
	void	*ctlr; 
1993/1113    
 
1997/0327    
	Queue*	oq; 
2002/0109/sys/src/9/pc/etherif.h:30,352002/0217/sys/src/9/pc/etherif.h:30,36 (short | long)
Add parseether.
rsc Fri Mar 4 12:44:25 2005
1997/0327    
extern Block* etheriq(Ether*, Block*, int); 
1994/0202    
extern void addethercard(char*, int(*)(Ether*)); 
1997/0415    
extern ulong ethercrc(uchar*, int); 
2002/0217    
extern int parseether(uchar*, char*); 
1993/1116    
 
1993/1113    
#define NEXT(x, l)	(((x)+1)%(l)) 
1996/0622    
#define PREV(x, l)	(((x) == 0) ? (l)-1: (x)-1) 
2002/0217/sys/src/9/pc/etherif.h:15,202002/0615/sys/src/9/pc/etherif.h:15,21 (short | long)
Add Ether.detach.
rsc Fri Mar 4 12:44:25 2005
1997/0327    
	uchar	ea[Eaddrlen]; 
1993/1113    
 
	void	(*attach)(Ether*);	/* filled in by reset routine */ 
2002/0615    
	void	(*detach)(Ether*); 
1997/0327    
	void	(*transmit)(Ether*); 
1993/1124    
	void	(*interrupt)(Ureg*, void*); 
1996/0607    
	long	(*ifstat)(Ether*, void*, long, ulong); 
2002/0615/sys/src/9/pc/etherif.h:20,252002/0620/sys/src/9/pc/etherif.h:20,26 (short | long)
Add Ether.power.
rsc Fri Mar 4 12:44:25 2005
1993/1124    
	void	(*interrupt)(Ureg*, void*); 
1996/0607    
	long	(*ifstat)(Ether*, void*, long, ulong); 
2000/0817    
	long 	(*ctl)(Ether*, void*, long); /* custom ctl messages */ 
2002/0620    
	void	(*power)(Ether*, int);	/* power on/off */ 
2002/0109    
	void	(*shutdown)(Ether*);	/* shutdown hardware before reboot */ 
1995/0721    
	void	*ctlr; 
1993/1113    
 
2002/0620/sys/src/9/pc/etherif.h:9,152003/0209/sys/src/9/pc/etherif.h:9,14 (short | long)
Remove Ether.mbps.
rsc Fri Mar 4 12:44:25 2005
1998/0423    
 
1995/0721    
	int	ctlrno; 
1997/0327    
	int	tbdf;			/* type+busno+devno+funcno */ 
1996/0601    
	int	mbps;			/* Mbps */ 
2000/0921    
	int	minmtu; 
	int 	maxmtu; 
1997/0327    
	uchar	ea[Eaddrlen]; 


source code copyright © 1990-2005 Lucent Technologies; see license
Plan 9 distribution
comments to russ cox (rsc@swtch.com)