1 /* 2 * Copyright (c) 1992, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * Sony Corp. and Kazumasa Utashiro of Software Research Associates, Inc. 7 * 8 * %sccs.include.redist.c% 9 * 10 * from: $Hdr: if_lance.h,v 4.300 91/06/09 06:25:59 root Rel41 $ SONY 11 * 12 * @(#)if_lance.h 8.1 (Berkeley) 06/11/93 13 */ 14 15 #undef VOLATILE 16 #ifdef mips 17 #define VOLATILE volatile 18 #else 19 #define VOLATILE 20 #endif 21 22 typedef VOLATILE struct lance Lance_reg; 23 typedef VOLATILE struct recv_msg_desc recv_msg_desc; 24 typedef VOLATILE struct xmit_msg_desc xmit_msg_desc; 25 26 /* 27 * Structure of statistics record 28 */ 29 struct en_stats { 30 u_char ens_addr[8]; /* Ethernet Address */ 31 int ens_frames; /* Number of Frames Received */ 32 int ens_xmit; /* Number of Frames Transmitted */ 33 int ens_xcollis; /* Number of Excess Collisions */ 34 int ens_frag; /* Number of Fragments Received */ 35 int ens_lost; /* Number of Times Frames Lost */ 36 int ens_crc; /* Number of CRC Errors */ 37 int ens_align; /* Number of Alignment Errors */ 38 int ens_collis; /* Number of Collisions */ 39 int ens_owcollis; /* Number of Out-of-window Collisions */ 40 }; 41 42 /* 43 * LANCE control block 44 */ 45 typedef VOLATILE struct lance_chan { 46 Lance_reg *lance_addr; /* LANCE port address */ 47 caddr_t lance_memory; /* LANCE memory address */ 48 caddr_t lance_rom; /* Ethernet address ROM */ 49 struct init_block *lance_ib; /* initialization block address */ 50 int lance_flags; /* LANCE active flag */ 51 recv_msg_desc *lance_rmd; /* recv. message desc. address */ 52 xmit_msg_desc *lance_tmd; /* xmit. message desc. address */ 53 recv_msg_desc *lance_last_rmd; /* last rmd */ 54 xmit_msg_desc *lance_last_tmd; /* last tmd */ 55 struct en_stats lance_stats; /* LANCE statistics */ 56 } Lance_chan; 57 58 #undef VOLATILE 59 60 #define LANCE_ACTIVE 1 61 #define LANCE_PROM 2 62 #define LANCE_IDON 8 63