xref: /csrg-svn/sys/news3400/if/if_lance.h (revision 63305)
153897Smckusick /*
2*63305Sbostic  * Copyright (c) 1992, 1993
3*63305Sbostic  *	The Regents of the University of California.  All rights reserved.
453897Smckusick  *
553897Smckusick  * This code is derived from software contributed to Berkeley by
653897Smckusick  * Sony Corp. and Kazumasa Utashiro of Software Research Associates, Inc.
753897Smckusick  *
853897Smckusick  * %sccs.include.redist.c%
953897Smckusick  *
1053897Smckusick  * from: $Hdr: if_lance.h,v 4.300 91/06/09 06:25:59 root Rel41 $ SONY
1153897Smckusick  *
12*63305Sbostic  *	@(#)if_lance.h	8.1 (Berkeley) 06/11/93
1353897Smckusick  */
1453897Smckusick 
1553897Smckusick #undef VOLATILE
1653897Smckusick #ifdef mips
1753897Smckusick #define VOLATILE volatile
1853897Smckusick #else
1953897Smckusick #define VOLATILE
2053897Smckusick #endif
2153897Smckusick 
2253897Smckusick typedef VOLATILE struct lance Lance_reg;
2353897Smckusick typedef VOLATILE struct recv_msg_desc recv_msg_desc;
2453897Smckusick typedef VOLATILE struct xmit_msg_desc xmit_msg_desc;
2553897Smckusick 
2653897Smckusick /*
2753897Smckusick  * Structure of statistics record
2853897Smckusick  */
2953897Smckusick struct en_stats {
3053897Smckusick 	u_char	ens_addr[8];		/* Ethernet Address */
3153897Smckusick 	int	ens_frames;		/* Number of Frames Received */
3253897Smckusick 	int	ens_xmit;		/* Number of Frames Transmitted */
3353897Smckusick 	int	ens_xcollis;		/* Number of Excess Collisions */
3453897Smckusick 	int	ens_frag;		/* Number of Fragments Received */
3553897Smckusick 	int	ens_lost;		/* Number of Times Frames Lost */
3653897Smckusick 	int	ens_crc;		/* Number of CRC Errors */
3753897Smckusick 	int	ens_align;		/* Number of Alignment Errors */
3853897Smckusick 	int	ens_collis;		/* Number of Collisions */
3953897Smckusick 	int	ens_owcollis;		/* Number of Out-of-window Collisions */
4053897Smckusick };
4153897Smckusick 
4253897Smckusick /*
4353897Smckusick  *	LANCE control block
4453897Smckusick  */
4553897Smckusick typedef	VOLATILE struct lance_chan {
4653897Smckusick 	Lance_reg	*lance_addr;	/* LANCE port address		*/
4753897Smckusick 	caddr_t 	lance_memory;	/* LANCE memory address		*/
4853897Smckusick 	caddr_t		lance_rom;	/* Ethernet address ROM		*/
4953897Smckusick 	struct init_block *lance_ib;	/* initialization block address	*/
5053897Smckusick 	int		lance_flags;	/* LANCE active flag		*/
5153897Smckusick 	recv_msg_desc	*lance_rmd;	/* recv. message desc. address	*/
5253897Smckusick 	xmit_msg_desc	*lance_tmd;	/* xmit. message desc. address	*/
5353897Smckusick 	recv_msg_desc	*lance_last_rmd;	/* last rmd		*/
5453897Smckusick 	xmit_msg_desc	*lance_last_tmd;	/* last tmd		*/
5553897Smckusick 	struct en_stats	lance_stats;	/* LANCE statistics		*/
5653897Smckusick } Lance_chan;
5753897Smckusick 
5853897Smckusick #undef VOLATILE
5953897Smckusick 
6053897Smckusick #define	LANCE_ACTIVE	1
6153897Smckusick #define	LANCE_PROM	2
6253897Smckusick #define	LANCE_IDON	8
63