* Copyright (c) 1991, 1993
* The Regents of the University of California. All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* @(#)if_ecreg.h 8.1 (Berkeley) 6/11/93
* Device definitions for the i82586 generally and the 3com ec507
* ISA bus ethernet controller.
* Intermediate System Control Block pointer
#define CUS_SUSPENDED 0x100
#define RUS_SUSPENDED 0x10
* Individual Address Setup
* Load Multicast Addresses
u_short count
; /* number of bytes, 14 bits only */
/* char mcaddrs[6]; /* white lie, data goes here */
#define COLLISIONS(p) (p->com0 & 0xf)
#define EXCOL 0x10 /* Excessive Collisions, Aborted */
#define HEARTBEAT 0x20 /* CDT signal monitored and OK (good) */
#define TXDEFFERED 0x40 /* ``due to Previous Link Activity'' */
#define DMALATE 0x80 /* DMA underrun */
#define NOCTS 0x100 /* Transmission stopped due to ... */
#define NOCARSENSE 0x200 /* Loss of Carrier sense during TX */
#define LATECOLL 0x400 /* Late Collision detected */
#define TXERRS 0x7d0 /* Various Bad Things */
#define COM1_TRANSMIT 0x4
u_short proto
; /* Length for 802.3 */
* Transmit Buffer Descriptor
* This really should be a separate structure,
* but it will be convenient to lump them together.
* Receive Frame Descriptor
* Receive Buffer Descriptor
* Set Operating Parameters
u_char data1
; /* addr len, no src ins, lpbk, prmble */
u_char data2
; /* max restries, slot time high */
u_char promisc
; /* brddis, mnch/nrz, tnocr, crc16, bstf, pad */
u_char cdf_cds
; /* carrier detect/sense filter(length) & src */
#define COM1_CONFIGURE 0x2
struct ec_82586params modes
;
struct ec_transmit tcom
[NTXBUF
];
struct ec_rfd rcom
[NRXBUF
];
struct ec_configure config
;
struct ec_iasetup iasetup
;
struct ec_mcsetup mcsetup
;
char txbuf
[NTXBUF
][ECMTU
];
char rxbuf
[NRXBUF
][ECMTU
];