Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/arch/pica/dev Moved to /cvsroot/syssrc/sys/arch/arc/dev/...
details: https://anonhg.NetBSD.org/src/rev/a6015c258aeb
branches: trunk
changeset: 480970:a6015c258aeb
user: soda <soda%NetBSD.org@localhost>
date: Sun Jan 23 20:08:11 2000 +0000
description:
Moved to /cvsroot/syssrc/sys/arch/arc/dev/if_sn.c,v
diffstat:
sys/arch/pica/dev/if_sn.c | 1320 ---------------------------------------------
1 files changed, 0 insertions(+), 1320 deletions(-)
diffs (truncated from 1324 to 300 lines):
diff -r 33633d8afa20 -r a6015c258aeb sys/arch/pica/dev/if_sn.c
--- a/sys/arch/pica/dev/if_sn.c Sun Jan 23 20:08:11 2000 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1320 +0,0 @@
-/* $NetBSD: if_sn.c,v 1.13 1998/07/05 06:49:08 jonathan Exp $ */
-
-/*
- * National Semiconductor SONIC Driver
- * Copyright (c) 1991 Algorithmics Ltd (http://www.algor.co.uk)
- * You may use, copy, and modify this program so long as you retain the
- * copyright line.
- *
- * This driver has been substantially modified since Algorithmics donated
- * it.
- */
-
-#include "sn.h"
-#include "opt_inet.h"
-#include "opt_ns.h"
-
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/mbuf.h>
-#include <sys/buf.h>
-#include <sys/protosw.h>
-#include <sys/socket.h>
-#include <sys/syslog.h>
-#include <sys/ioctl.h>
-#include <sys/errno.h>
-#include <sys/device.h>
-#include <machine/autoconf.h>
-
-#include <net/if.h>
-#include <net/if_dl.h>
-#include <net/if_ether.h>
-#include <net/if_media.h>
-
-#ifdef INET
-#include <netinet/in.h>
-#include <netinet/in_systm.h>
-#include <netinet/in_var.h>
-#include <netinet/ip.h>
-#include <netinet/if_inarp.h>
-#endif
-
-#include <machine/cpu.h>
-#include <machine/bus.h>
-
-#ifdef NS
-#include <netns/ns.h>
-#include <netns/ns_if.h>
-#endif
-
-#ifdef RMP
-#include <netrmp/rmp.h>
-#include <netrmp/rmp_var.h>
-#endif
-
-#include <vm/vm.h>
-
-#include "bpfilter.h"
-#if NBPFILTER > 0
-#include <net/bpf.h>
-#include <net/bpfdesc.h>
-#endif
-
-#include <machine/bus.h>
-
-#define SONICDW 32
-typedef unsigned char uchar;
-
-#include <mips/cpuregs.h> /* XXX */
-#include <pica/dev/if_sn.h>
-#define SWR(a, x) (a) = (x)
-#define SRD(a) ((a) & 0xffff)
-
-
-/*
- * Statistics collected over time
- */
-struct sn_stats {
- int ls_opacks; /* packets transmitted */
- int ls_ipacks; /* packets received */
- int ls_tdr; /* contents of tdr after collision */
- int ls_tdef; /* packets where had to wait */
- int ls_tone; /* packets with one retry */
- int ls_tmore; /* packets with more than one retry */
- int ls_tbuff; /* transmit buff errors */
- int ls_tuflo; /* " uflo " */
- int ls_tlcol;
- int ls_tlcar;
- int ls_trtry;
- int ls_rbuff; /* receive buff errors */
- int ls_rfram; /* framing */
- int ls_roflo; /* overflow */
- int ls_rcrc;
- int ls_rrng; /* rx ring sequence error */
- int ls_babl; /* chip babl error */
- int ls_cerr; /* collision error */
- int ls_miss; /* missed packet */
- int ls_merr; /* memory error */
- int ls_copies; /* copies due to out of range mbufs */
- int ls_maxmbufs; /* max mbufs on transmit */
- int ls_maxslots; /* max ring slots on transmit */
-};
-
-struct sn_softc {
- struct device sc_dev;
- struct ethercom sc_ec;
-#define sc_if sc_ec.ec_if /* network visible interface */
-
- struct sonic_reg *sc_csr; /* hardware pointer */
- dma_softc_t __dma; /* stupid macro ... */
- dma_softc_t *dma; /* dma mapper control */
- int sc_rxmark; /* position in rx ring for reading buffs */
-
- int sc_rramark; /* index into rra of wp */
-
- int sc_txhead; /* index of first TDA passed to chip */
- int sc_missed; /* missed packet counter */
- struct RXpkt *sc_lrxp; /* last RDA available to chip */
- struct sn_stats sc_sum;
- short sc_iflags;
-} sn_softc;
-
-int snmatch __P((struct device *, void *, void *));
-void snattach __P((struct device *, struct device *, void *));
-
-struct cfattach sn_ca = {
- sizeof(struct sn_softc), snmatch, snattach
-};
-
-
-
-void m_check __P((struct mbuf *m));
-void m_checkm __P((struct mbuf *m));
-
-void
-m_check(m)
- struct mbuf *m;
-{
- if (m->m_flags & M_EXT) {
- assert(m->m_len >= 0);
- assert(m->m_len <= m->m_ext.ext_size);
- assert(m->m_data >= &m->m_ext.ext_buf[0]);
- assert(m->m_data <= &m->m_ext.ext_buf[m->m_ext.ext_size]);
- assert(m->m_data + m->m_len <= &m->m_ext.ext_buf[m->m_ext.ext_size]);
- } else if (m->m_flags & M_PKTHDR) {
- assert(m->m_len >= 0);
- assert(m->m_len <= MHLEN);
- assert(m->m_data >= m->m_pktdat);
- assert(m->m_data <= &m->m_pktdat[MHLEN]);
- assert(m->m_data + m->m_len <= &m->m_pktdat[MHLEN]);
- } else {
- assert(m->m_len >= 0);
- assert(m->m_len <= MLEN);
- assert(m->m_data >= m->m_dat);
- assert(m->m_data <= &m->m_dat[MLEN]);
- assert(m->m_data + m->m_len <= &m->m_dat[MLEN]);
- }
-}
-
-void
-m_checkm(m)
- struct mbuf *m;
-{
- while (m) {
- m_check(m);
- m = m->m_next;
- }
-}
-
-int ethdebug = 0;
-
-int snintr __P((struct sn_softc *));
-int snioctl __P((struct ifnet *ifp, u_long cmd, caddr_t data));
-void snstart __P((struct ifnet *ifp));
-void snwatchdog __P((struct ifnet *ifp));
-void snreset __P((struct sn_softc *sc));
-
-/*
- * SONIC buffers need to be aligned 16 or 32 bit aligned.
- * These macros calculate and verify alignment.
- */
-#if SONICDW == 32
-#define SONICALIGN 4
-#else
-#define SONICALIGN 2
-#endif
-#define SOALIGN(array) (((int)array+SONICALIGN-1) & ~(SONICALIGN-1))
-#define SOALIGNED(p) (!(((uint)p)&(SONICALIGN-1)))
-
-#define UPPER(x) ((unsigned)(x) >> 16)
-#define LOWER(x) ((unsigned)(x) & 0xffff)
-
-#define NRRA 32 /* # receive resource descriptors */
-#define RRAMASK 0x1f /* why it must be poer of two */
-
-#define NRBA 16 /* # receive buffers < NRRA */
-#define NRDA NRBA /* # receive descriptors */
-#define NTDA 4 /* # transmit descriptors */
-
-#define CDASIZE sizeof(struct CDA)
-#define RRASIZE (NRRA*sizeof(struct RXrsrc))
-#define RDASIZE (NRDA*sizeof(struct RXpkt))
-#define TDASIZE (NTDA*sizeof(struct TXpkt))
-
-#define FCSSIZE 4 /* size of FCS append te received packets */
-
-/*
- * maximum recieve packet size plus 2 byte pad to make each
- * one aligned. 4 byte slop (required for eobc)
- */
-#define RBASIZE (sizeof(struct ether_header) + ETHERMTU + FCSSIZE + 2 + 4)
-
-/*
- * space requiered for descriptors
- */
-#define DESC_SIZE (RRASIZE + CDASIZE + RDASIZE + TDASIZE + SONICALIGN - 1)
-
-/*
- * This should really be 'allocated' but for now we
- * 'hardwire' it.
- */
-#define SONICBUF 0xa0010000
-
-/*
- * Nicely aligned pointers into the sonicbuffers
- * p_ points at physical (K1_SEG) addresses.
- * v_ is dma viritual address used by sonic.
- */
-struct RXrsrc *p_rra; /* receiver resource descriptors */
-struct RXrsrc *v_rra;
-struct RXpkt *p_rda; /* receiver desriptors */
-struct RXpkt *v_rda;
-struct TXpkt *p_tda; /* transmitter descriptors */
-struct TXpkt *v_tda;
-struct CDA *p_cda; /* CAM descriptors */
-struct CDA *v_cda;
-char *p_rba; /* receive buffer area base */
-char *v_rba;
-
-/* Meta transmit descriptors */
-struct mtd {
- struct mtd *mtd_link;
- struct TXpkt *mtd_txp;
- struct mbuf *mtd_mbuf;
-} mtda[NTDA];
-
-struct mtd *mtdfree; /* list of free meta transmit descriptors */
-struct mtd *mtdhead; /* head of descriptors assigned to chip */
-struct mtd *mtdtail; /* tail of descriptors assigned to chip */
-struct mtd *mtdnext; /* next descriptor to give to chip */
-
-void mtd_free __P((struct mtd *));
-struct mtd *mtd_alloc __P((void));
-
-int sngetaddr __P((struct sn_softc *sc, uchar *ap));
-int sninit __P((struct sn_softc *sc));
-int snstop __P((struct sn_softc *sc));
-int sonicput __P((struct sn_softc *sc, struct mbuf *m0));
-
-void camdump __P((struct sn_softc *sc));
-
-int
-snmatch(parent, match, aux)
- struct device *parent;
- void *match, *aux;
-{
- /*struct cfdata *cf = match;*/
- struct confargs *ca = aux;
-
- /* XXX CHECK BUS */
- /* make sure that we're looking for this type of device. */
- if (!BUS_MATCHNAME(ca, "sonic"))
- return (0);
-
- return (1);
-}
-
-/*
- * Interface exists: make available by filling in network interface
- * record. System will initialize the interface when it is ready
- * to accept packets.
- */
-void
-snattach(parent, self, aux)
- struct device *parent, *self;
- void *aux;
-{
- struct sn_softc *sc = (void *)self;
- struct confargs *ca = aux;
- struct ifnet *ifp = &sc->sc_if;
- /*struct cfdata *cf = sc->sc_dev.dv_cfdata;*/
- int p, pp;
- uchar myaddr[ETHER_ADDR_LEN];
-
- sc->sc_csr = (struct sonic_reg *)BUS_CVTADDR(ca);
-
- sc->dma = &sc->__dma;
Home |
Main Index |
Thread Index |
Old Index