Lines Matching defs:ifp

123 static int snioctl(struct ifnet * ifp, u_long, caddr_t);
138 static int sn_getmcf(struct ifnet *ifp, u_char *mcf);
162 struct ifnet *ifp;
170 ifp = sc->ifp = if_alloc(IFT_ETHER);
171 if (ifp == NULL) {
204 ifp->if_softc = sc;
205 if_initname(ifp, device_get_name(dev), device_get_unit(dev));
206 ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST;
207 ifp->if_start = snstart;
208 ifp->if_ioctl = snioctl;
209 ifp->if_init = sninit;
210 ifp->if_baudrate = 10000000;
211 IFQ_SET_MAXLEN(&ifp->if_snd, ifqmaxlen);
212 ifp->if_snd.ifq_maxlen = ifqmaxlen;
213 IFQ_SET_READY(&ifp->if_snd);
215 ether_ifattach(ifp, eaddr);
239 struct ifnet *ifp = sc->ifp;
241 ether_ifdetach(ifp);
247 if_free(ifp);
268 struct ifnet *ifp = sc->ifp;
350 ifp->if_drv_flags |= IFF_DRV_RUNNING;
351 ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
357 snstart_locked(ifp);
361 snstart(struct ifnet *ifp)
363 struct sn_softc *sc = ifp->if_softc;
365 snstart_locked(ifp);
371 snstart_locked(struct ifnet *ifp)
373 struct sn_softc *sc = ifp->if_softc;
387 if (ifp->if_drv_flags & IFF_DRV_OACTIVE)
390 if_printf(ifp, "snstart() while memory allocation pending\n");
398 m = ifp->if_snd.ifq_head;
415 if_printf(ifp, "large packet discarded (A)\n");
416 if_inc_counter(ifp, IFCOUNTER_OERRORS, 1);
417 IFQ_DRV_DEQUEUE(&ifp->if_snd, m);
475 ifp->if_drv_flags |= IFF_DRV_OACTIVE;
485 if_printf(ifp, "Memory allocation failed\n");
510 IFQ_DRV_DEQUEUE(&ifp->if_snd, m);
558 ifp->if_drv_flags |= IFF_DRV_OACTIVE;
561 BPF_MTAP(ifp, top);
563 if_inc_counter(ifp, IFCOUNTER_OPACKETS, 1);
590 snresume(struct ifnet *ifp)
592 struct sn_softc *sc = ifp->if_softc;
612 m = ifp->if_snd.ifq_head;
614 if_printf(ifp, "snresume() with nothing to send\n");
631 if_printf(ifp, "large packet discarded (B)\n");
632 if_inc_counter(ifp, IFCOUNTER_OERRORS, 1);
633 IFQ_DRV_DEQUEUE(&ifp->if_snd, m);
667 if_printf(ifp, "Memory allocation failed. Weird.\n");
681 if_printf(ifp, "memory allocation wrong size. Weird.\n");
709 IFQ_DRV_DEQUEUE(&ifp->if_snd, m);
755 BPF_MTAP(ifp, top);
757 if_inc_counter(ifp, IFCOUNTER_OPACKETS, 1);
765 ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
766 snstart_locked(ifp);
772 ifp->if_drv_flags |= IFF_DRV_OACTIVE;
792 struct ifnet *ifp = sc->ifp;
837 if_inc_counter(ifp, IFCOUNTER_IERRORS, 1);
855 snread(ifp);
865 ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
866 snresume(ifp);
903 if_inc_counter(ifp, IFCOUNTER_OERRORS, 1);
907 if_inc_counter(ifp, IFCOUNTER_COLLISIONS, 1);
932 ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
933 snstart_locked(ifp);
958 if_inc_counter(ifp, IFCOUNTER_COLLISIONS, card_stats & ECR_COLN_MASK);
963 if_inc_counter(ifp, IFCOUNTER_COLLISIONS, (card_stats & ECR_MCOLN_MASK) >> 4);
970 ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
971 snstart_locked(ifp);
1001 snread(struct ifnet *ifp)
1003 struct sn_softc *sc = ifp->if_softc;
1048 if_inc_counter(ifp, IFCOUNTER_IERRORS, 1);
1068 m->m_pkthdr.rcvif = ifp;
1076 if_inc_counter(ifp, IFCOUNTER_IERRORS, 1);
1091 if_inc_counter(ifp, IFCOUNTER_IPACKETS, 1);
1106 (*ifp->if_input)(ifp, m);
1137 snioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
1139 struct sn_softc *sc = ifp->if_softc;
1145 if ((ifp->if_flags & IFF_UP) == 0 &&
1146 ifp->if_drv_flags & IFF_DRV_RUNNING) {
1164 error = ether_ioctl(ifp, cmd, data);
1192 struct ifnet *ifp = sc->ifp;
1212 ifp->if_drv_flags &= ~(IFF_DRV_RUNNING | IFF_DRV_OACTIVE);
1374 struct ifnet *ifp = sc->ifp;
1387 if (ifp->if_flags & IFF_PROMISC) {
1389 } else if (ifp->if_flags & IFF_ALLMULTI) {
1392 if (sn_getmcf(ifp, mcf)) {
1412 sn_getmcf(struct ifnet *ifp, uint8_t *mcf)
1421 if_maddr_rlock(ifp);
1422 TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
1424 if_maddr_runlock(ifp);
1437 if_maddr_runlock(ifp);