pdq_ifsubr.c (93818) | pdq_ifsubr.c (106937) |
---|---|
1/* $NetBSD: pdq_ifsubr.c,v 1.38 2001/12/21 23:21:47 matt Exp $ */ 2 3/*- 4 * Copyright (c) 1995, 1996 Matt Thomas <matt@3am-software.com> 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions --- 10 unchanged lines hidden (view full) --- 19 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 * 26 * $NetBSD: pdq_ifsubr.c,v 1.12 1997/06/05 01:56:35 thomas Exp$ | 1/* $NetBSD: pdq_ifsubr.c,v 1.38 2001/12/21 23:21:47 matt Exp $ */ 2 3/*- 4 * Copyright (c) 1995, 1996 Matt Thomas <matt@3am-software.com> 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions --- 10 unchanged lines hidden (view full) --- 19 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 * 26 * $NetBSD: pdq_ifsubr.c,v 1.12 1997/06/05 01:56:35 thomas Exp$ |
27 * $FreeBSD: head/sys/dev/pdq/pdq_ifsubr.c 93818 2002-04-04 21:03:38Z jhb $ | 27 * $FreeBSD: head/sys/dev/pdq/pdq_ifsubr.c 106937 2002-11-14 23:54:55Z sam $ |
28 */ 29 30/* 31 * DEC PDQ FDDI Controller; code for BSD derived operating systems 32 * 33 * This module provide bus independent BSD specific O/S functions. 34 * (ie. it provides an ifnet interface to the rest of the system) 35 */ --- 148 unchanged lines hidden (view full) --- 184void 185pdq_os_receive_pdu( 186 pdq_t *pdq, 187 struct mbuf *m, 188 size_t pktlen, 189 int drop) 190{ 191 pdq_softc_t *sc = pdq->pdq_os_ctx; | 28 */ 29 30/* 31 * DEC PDQ FDDI Controller; code for BSD derived operating systems 32 * 33 * This module provide bus independent BSD specific O/S functions. 34 * (ie. it provides an ifnet interface to the rest of the system) 35 */ --- 148 unchanged lines hidden (view full) --- 184void 185pdq_os_receive_pdu( 186 pdq_t *pdq, 187 struct mbuf *m, 188 size_t pktlen, 189 int drop) 190{ 191 pdq_softc_t *sc = pdq->pdq_os_ctx; |
192 struct ifnet *ifp = &sc->sc_if; |
|
192 struct fddi_header *fh; 193 | 193 struct fddi_header *fh; 194 |
194 sc->sc_if.if_ipackets++; | 195 ifp->if_ipackets++; |
195#if defined(PDQ_BUS_DMA) 196 { 197 /* 198 * Even though the first mbuf start at the first fddi header octet, 199 * the dmamap starts PDQ_OS_HDR_OFFSET octets earlier. Any additional 200 * mbufs will start normally. 201 */ 202 int offset = PDQ_OS_HDR_OFFSET; --- 9 unchanged lines hidden (view full) --- 212#endif 213 m->m_pkthdr.len = pktlen; 214#if NBPFILTER > 0 215 if (sc->sc_bpf != NULL) 216 PDQ_BPF_MTAP(sc, m); 217#endif 218 fh = mtod(m, struct fddi_header *); 219 if (drop || (fh->fddi_fc & (FDDIFC_L|FDDIFC_F)) != FDDIFC_LLC_ASYNC) { | 196#if defined(PDQ_BUS_DMA) 197 { 198 /* 199 * Even though the first mbuf start at the first fddi header octet, 200 * the dmamap starts PDQ_OS_HDR_OFFSET octets earlier. Any additional 201 * mbufs will start normally. 202 */ 203 int offset = PDQ_OS_HDR_OFFSET; --- 9 unchanged lines hidden (view full) --- 213#endif 214 m->m_pkthdr.len = pktlen; 215#if NBPFILTER > 0 216 if (sc->sc_bpf != NULL) 217 PDQ_BPF_MTAP(sc, m); 218#endif 219 fh = mtod(m, struct fddi_header *); 220 if (drop || (fh->fddi_fc & (FDDIFC_L|FDDIFC_F)) != FDDIFC_LLC_ASYNC) { |
220 sc->sc_if.if_iqdrops++; 221 sc->sc_if.if_ierrors++; | 221 ifp->if_iqdrops++; 222 ifp->if_ierrors++; |
222 PDQ_OS_DATABUF_FREE(pdq, m); 223 return; 224 } 225 | 223 PDQ_OS_DATABUF_FREE(pdq, m); 224 return; 225 } 226 |
226 m_adj(m, FDDI_HDR_LEN); 227 m->m_pkthdr.rcvif = &sc->sc_if; 228 fddi_input(&sc->sc_if, fh, m); | 227 m->m_pkthdr.rcvif = ifp; 228 (*ifp->if_input)(ifp, m); |
229} 230 231void 232pdq_os_restart_transmitter( 233 pdq_t *pdq) 234{ 235 pdq_softc_t *sc = pdq->pdq_os_ctx; 236 sc->sc_if.if_flags &= ~IFF_OACTIVE; --- 500 unchanged lines hidden --- | 229} 230 231void 232pdq_os_restart_transmitter( 233 pdq_t *pdq) 234{ 235 pdq_softc_t *sc = pdq->pdq_os_ctx; 236 sc->sc_if.if_flags &= ~IFF_OACTIVE; --- 500 unchanged lines hidden --- |