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