|
|
1.1 ! root 1: /*- ! 2: * Copyright (c) 1991 The Regents of the University of California. ! 3: * All rights reserved. ! 4: * ! 5: * This code is derived from software contributed to Berkeley by ! 6: * Computer Consoles Inc. ! 7: * ! 8: * Redistribution and use in source and binary forms, with or without ! 9: * modification, are permitted provided that the following conditions ! 10: * are met: ! 11: * 1. Redistributions of source code must retain the above copyright ! 12: * notice, this list of conditions and the following disclaimer. ! 13: * 2. Redistributions in binary form must reproduce the above copyright ! 14: * notice, this list of conditions and the following disclaimer in the ! 15: * documentation and/or other materials provided with the distribution. ! 16: * 3. All advertising materials mentioning features or use of this software ! 17: * must display the following acknowledgement: ! 18: * This product includes software developed by the University of ! 19: * California, Berkeley and its contributors. ! 20: * 4. Neither the name of the University nor the names of its contributors ! 21: * may be used to endorse or promote products derived from this software ! 22: * without specific prior written permission. ! 23: * ! 24: * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ! 25: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ! 26: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ! 27: * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ! 28: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ! 29: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ! 30: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ! 31: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ! 32: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ! 33: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ! 34: * SUCH DAMAGE. ! 35: * ! 36: * @(#)if_acereg.h 7.2 (Berkeley) 5/8/91 ! 37: */ ! 38: ! 39: /* ! 40: * VERSAbus ACC ethernet controller definitions ! 41: */ ! 42: ! 43: /* ! 44: * Register definitions ! 45: */ ! 46: struct acedevice { ! 47: short station[6]; /* station address */ ! 48: short bcastena[2]; /* broadcast enable */ ! 49: short hash[8]; /* multicast hash codes */ ! 50: short csr; /* control and status register */ ! 51: short tseg; /* current transmit segment # */ ! 52: short rseg; /* current receive segment # */ ! 53: short segb; /* segment boundary register */ ! 54: short lrf; /* lost receive frame counter */ ! 55: short ivct; /* interrupt vector register */ ! 56: short resv; /* reserved for future use */ ! 57: short fcoll; /* force collision register */ ! 58: }; ! 59: ! 60: /* ! 61: * Transmit segment in dual ported ram. ! 62: */ ! 63: struct tx_segment { ! 64: short tx_csr; /* packet status */ ! 65: char tx_data[2014]; ! 66: short tx_backoff[16]; /* random backoff counters */ ! 67: }; ! 68: ! 69: /* ! 70: * Receive segment in dual ported ram. ! 71: */ ! 72: struct rx_segment { ! 73: short rx_csr; /* packet status */ ! 74: char rx_data[2046]; ! 75: }; ! 76: ! 77: /* ! 78: * ACC statistics block. ! 79: */ ! 80: struct ace_stats { ! 81: int rx_datagrams; /* valid packets received */ ! 82: int rx_crc_errors; /* CRC errors */ ! 83: int rx_overruns; /* packets too large */ ! 84: int rx_underruns; /* packets too small */ ! 85: int rx_align_errors; /* packets w/ odd byte count */ ! 86: int rx_reserved; ! 87: int rx_busy; /* recv segment filled */ ! 88: int rx_mbuf; /* out of mbufs */ ! 89: int rx_oddoff; /* odd offset in mbuf */ ! 90: int rx_rintcnt; /* recvr interrupt */ ! 91: ! 92: int tx_datagrams; /* packets xmit'd */ ! 93: int tx_retries; /* collision retries */ ! 94: int tx_discarded; /* packets w/ max retries */ ! 95: int tx_busy; /* xmit segment filled in acestart */ ! 96: int tx_cbusy; /* xmit segment filled in acecint */ ! 97: int tx_mbuf; /* total mbufs */ ! 98: int tx_oddoff; /* odd offset in mbuf */ ! 99: int tx_outcnt; /* calls to aceoutput */ ! 100: int tx_startcnt; /* calls to acestart */ ! 101: int tx_cintcnt; /* xmit's completed */ ! 102: }; ! 103: ! 104: /* ! 105: * Control status definitions. ! 106: */ ! 107: #define CSR_OBCENA 0x0200 /* enable xmit of odd byte count */ ! 108: #define CSR_ACTIVE 0x0080 /* board active */ ! 109: #define CSR_RESET 0x0040 /* reset board */ ! 110: #define CSR_PROMISC 0x0020 /* enable promiscous mode */ ! 111: #define CSR_CRCDIS 0x0010 /* disable CRC generation */ ! 112: #define CSR_LOOP3 0x0008 /* enable loopback mode 3 */ ! 113: #define CSR_LOOP2 0x0004 /* enable loopback mode 2 */ ! 114: #define CSR_IENA 0x0002 /* interrupt enable */ ! 115: #define CSR_GO 0x0001 /* enable micro-engine */ ! 116: ! 117: #define ACE_CSRBITS \ ! 118: "\20\12OBCENA\10ACTIVE\7RESET\6PROMISC\5CRCDIS\4LOOP3\3LOOP2\2IENA\1GO" ! 119: /* ! 120: * Transmit packet status definitions. ! 121: */ ! 122: #define TCS_TBFULL (short)0x8000 /* buffer filled, send it */ ! 123: #define TCS_TBC (short)0x07FF /* byte count */ ! 124: #define TCS_TBMT (short)0x8000 /* buffer empty */ ! 125: #define TCS_RTFAIL (short)0x4000 /* retries failed */ ! 126: #define TCS_RTC (short)0x000F /* collision retry mask */ ! 127: ! 128: /* ! 129: * Receive packet status definitions. ! 130: */ ! 131: #define RCS_RBMT 0x8000 /* buffer ready for recv */ ! 132: #define RCS_RBFULL 0x8000 /* buffer full, take data */ ! 133: #define RCS_ROVRN 0x4000 /* overrun error */ ! 134: #define RCS_RCRC 0x2000 /* CRC error */ ! 135: #define RCS_RODD 0x1000 /* odd byte count error */ ! 136: #define RCS_RBC 0x07FF /* byte count mask */ ! 137: ! 138: #define ACE_RCSBITS "\20\20RBFULL\17ROVRN\16RCSR\15RODD" ! 139: ! 140: #define CRC_SIZE 4 /* number of bytes in a rx seg's CRC */ ! 141: #define RCW_SIZE 2 /* number of bytes in a rx seg's csr */ ! 142: #define SEG_MAX 15 /* largest valid segment number */ ! 143: #define ET_MINLEN 64 /* min frame size */ ! 144: #define ET_MAXLEN 1514 /* max frame size w/o CRC & RCW */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.