Lines Matching defs:unp

294 	struct usbnet_private * const unp __unused = un->un_pri;
298 unp->unp_number, buflen, csum_flags, mbuf_flags);
304 DPRINTF("%jd: no memory", unp->unp_number, 0, 0, 0);
308 MCLAIM(m, &unp->unp_ec.ec_rx_mowner);
325 struct usbnet_private * const unp __unused = un->un_pri;
329 unp->unp_number, (uintptr_t)buf, buflen, 0);
338 MCLAIM(m, &unp->unp_ec.ec_rx_mowner);
357 struct usbnet_private * const unp = un->un_pri;
361 unp->unp_number, status, (uintptr_t)xfer, 0);
363 mutex_enter(&unp->unp_rxlock);
365 if (usbnet_isdying(un) || unp->unp_rxstopped ||
371 if (usbd_ratecheck(&unp->unp_rx_notice))
375 usbd_clear_endpoint_stall_async(unp->unp_ep[USBNET_ENDPT_RX]);
392 if (usbnet_isdying(un) || unp->unp_rxstopped)
395 mutex_exit(&unp->unp_rxlock);
404 mutex_exit(&unp->unp_rxlock);
414 struct usbnet_private * const unp = un->un_pri;
418 unp->unp_number, status, (uintptr_t)xfer, 0);
420 mutex_enter(&unp->unp_txlock);
421 if (unp->unp_txstopped || usbnet_isdying(un)) {
422 mutex_exit(&unp->unp_txlock);
429 unp->unp_timer = 0;
443 if (usbd_ratecheck(&unp->unp_tx_notice))
447 usbd_clear_endpoint_stall_async(unp->unp_ep[USBNET_ENDPT_TX]);
451 mutex_exit(&unp->unp_txlock);
462 struct usbnet_private * const unp = un->un_pri;
469 unp->unp_number, (uintptr_t)uni,
475 if (usbd_ratecheck(&unp->unp_intr_notice)) {
480 usbd_clear_endpoint_stall_async(unp->unp_ep[USBNET_ENDPT_INTR]);
482 unp->unp_number, status, 0, 0);
495 struct usbnet_private * const unp = un->un_pri;
502 unp->unp_number, cd->uncd_tx_cnt, un->un_tx_list_cnt,
503 unp->unp_link);
507 KASSERT(!unp->unp_txstopped);
509 if (!unp->unp_link) {
511 unp->unp_link, 0, 0, 0);
575 cd->uncd_tx_cnt, un->un_tx_list_cnt, unp->unp_link, 0);
581 unp->unp_timer = 5;
584 rnd_add_uint32(&unp->unp_rndsrc, count);
591 struct usbnet_private * const unp = un->un_pri;
595 unp->unp_number, unp->unp_txstopped, 0, 0);
597 mutex_enter(&unp->unp_txlock);
598 if (!unp->unp_txstopped)
600 mutex_exit(&unp->unp_txlock);
640 struct usbnet_private * const unp = un->un_pri;
647 int err = usbd_create_xfer(unp->unp_ep[USBNET_ENDPT_RX],
681 struct usbnet_private * const unp = un->un_pri;
683 mutex_enter(&unp->unp_rxlock);
684 KASSERT(unp->unp_rxstopped);
685 unp->unp_rxstopped = false;
695 mutex_exit(&unp->unp_rxlock);
729 struct usbnet_private * const unp = un->un_pri;
736 int err = usbd_create_xfer(unp->unp_ep[USBNET_ENDPT_TX],
772 struct usbnet_private * const unp = un->un_pri;
774 for (size_t i = 0; i < __arraycount(unp->unp_ep); i++) {
775 if (unp->unp_ep[i] == NULL)
777 usbd_close_pipe(unp->unp_ep[i]);
778 unp->unp_ep[i] = NULL;
786 struct usbnet_private * const unp = un->un_pri;
788 for (size_t i = 0; i < __arraycount(unp->unp_ep); i++) {
796 USBD_EXCLUSIVE_USE | USBD_MPSAFE, &unp->unp_ep[i], un,
801 USBD_EXCLUSIVE_USE | USBD_MPSAFE, &unp->unp_ep[i]);
815 struct usbnet_private * const unp = un->un_pri;
817 for (size_t i = 0; i < __arraycount(unp->unp_ep); i++) {
818 if (unp->unp_ep[i] == NULL)
820 usbd_abort_pipe(unp->unp_ep[i]);
828 struct usbnet_private * const unp = un->un_pri;
871 mutex_enter(&unp->unp_mcastlock);
872 KASSERTMSG(!unp->unp_mcastactive, "%s", ifp->if_xname);
873 unp->unp_if_flags = ifp->if_flags;
875 unp->unp_mcastactive = true;
876 mutex_exit(&unp->unp_mcastlock);
880 mutex_enter(&unp->unp_txlock);
881 KASSERT(unp->unp_txstopped);
882 unp->unp_txstopped = false;
883 mutex_exit(&unp->unp_txlock);
889 mutex_enter(&unp->unp_miilock);
890 unp->unp_stopped = false;
891 callout_schedule(&unp->unp_stat_ch, hz);
892 mutex_exit(&unp->unp_miilock);
906 mutex_enter(&unp->unp_miilock);
908 mutex_exit(&unp->unp_miilock);
981 struct usbnet_private * const unp = un->un_pri;
993 unp->unp_link = false;
1020 struct usbnet_private * const unp = un->un_pri;
1024 const u_short changed = ifp->if_flags ^ unp->unp_if_flags;
1038 mutex_enter(&unp->unp_mcastlock);
1039 unp->unp_if_flags = ifp->if_flags;
1040 mutex_exit(&unp->unp_mcastlock);
1064 struct usbnet_private * const unp = un->un_pri;
1066 KASSERTMSG(mutex_owned(&unp->unp_mcastlock) || IFNET_LOCKED(ifp),
1069 return unp->unp_if_flags & IFF_PROMISC;
1077 struct usbnet_private * const unp __unused = un->un_pri;
1081 unp->unp_number, cmd, (uintptr_t)data, 0);
1100 mutex_enter(&unp->unp_mcastlock);
1101 if (unp->unp_mcastactive)
1103 mutex_exit(&unp->unp_mcastlock);
1129 struct usbnet_private * const unp = un->un_pri;
1143 mutex_enter(&unp->unp_mcastlock);
1144 KASSERTMSG(unp->unp_mcastactive, "%p", ifp->if_xname);
1145 unp->unp_mcastactive = false;
1146 unp->unp_if_flags = 0;
1147 mutex_exit(&unp->unp_mcastlock);
1154 mutex_enter(&unp->unp_miilock);
1155 unp->unp_stopped = true;
1156 mutex_exit(&unp->unp_miilock);
1158 mutex_enter(&unp->unp_rxlock);
1159 unp->unp_rxstopped = true;
1160 mutex_exit(&unp->unp_rxlock);
1162 mutex_enter(&unp->unp_txlock);
1163 unp->unp_txstopped = true;
1164 unp->unp_timer = 0;
1165 mutex_exit(&unp->unp_txlock);
1173 callout_halt(&unp->unp_stat_ch, NULL);
1174 usb_rem_task_wait(un->un_udev, &unp->unp_ticktask, USB_TASKQ_DRIVER,
1182 mutex_enter(&unp->unp_miilock);
1184 mutex_exit(&unp->unp_miilock);
1246 struct usbnet_private * const unp = un->un_pri;
1248 USBNETHIST_CALLARGSN(10, "%jd: enter", unp->unp_number, 0, 0, 0);
1251 usb_add_task(un->un_udev, &unp->unp_ticktask, USB_TASKQ_DRIVER);
1259 struct usbnet_private * const unp = un->un_pri;
1267 usbd_abort_pipe(unp->unp_ep[USBNET_ENDPT_TX]);
1281 struct usbnet_private * const unp = un->un_pri;
1285 USBNETHIST_CALLARGSN(8, "%jd: enter", unp->unp_number, 0, 0, 0);
1287 mutex_enter(&unp->unp_txlock);
1288 const bool timeout = unp->unp_timer != 0 && --unp->unp_timer == 0;
1289 mutex_exit(&unp->unp_txlock);
1296 mutex_enter(&unp->unp_miilock);
1300 if (!unp->unp_link)
1304 if (!unp->unp_stopped && !usbnet_isdying(un))
1305 callout_schedule(&unp->unp_stat_ch, hz);
1306 mutex_exit(&unp->unp_miilock);
1455 struct usbnet_private * const unp = un->un_pri;
1457 usb_init_task(&unp->unp_ticktask, usbnet_tick_task, un,
1459 callout_init(&unp->unp_stat_ch, CALLOUT_MPSAFE);
1460 callout_setfunc(&unp->unp_stat_ch, usbnet_tick, un);
1462 mutex_init(&unp->unp_txlock, MUTEX_DEFAULT, IPL_SOFTUSB);
1463 mutex_init(&unp->unp_rxlock, MUTEX_DEFAULT, IPL_SOFTUSB);
1464 mutex_init(&unp->unp_miilock, MUTEX_DEFAULT, IPL_NONE);
1465 mutex_init(&unp->unp_mcastlock, MUTEX_DEFAULT, IPL_SOFTCLOCK);
1467 rnd_attach_source(&unp->unp_rndsrc, device_xname(un->un_dev),
1473 unp->unp_number = atomic_inc_uint_nv(&usbnet_number);
1475 unp->unp_stopped = true;
1476 unp->unp_rxstopped = true;
1477 unp->unp_txstopped = true;
1478 unp->unp_attached = true;
1485 struct usbnet_private * const unp = un->un_pri;
1486 struct mii_data * const mii = &unp->unp_mii;
1501 usbnet_media_upd, ether_mediastatus, &unp->unp_miilock);
1519 struct usbnet_private * const unp = un->un_pri;
1522 KASSERT(unp->unp_attached);
1523 KASSERT(!unp->unp_ifp_attached);
1537 unp->unp_link = true;
1544 unp->unp_ifp_attached = true;
1551 ether_set_ifflags_cb(&unp->unp_ec, usbnet_ifflags_cb);
1574 struct usbnet_private * const unp = un->un_pri;
1577 if (unp == NULL || !unp->unp_attached)
1587 atomic_store_relaxed(&unp->unp_dying, true);
1596 if (unp->unp_ifp_attached) {
1608 KASSERT(!callout_pending(&unp->unp_stat_ch));
1609 KASSERT(!usb_task_pending(un->un_udev, &unp->unp_ticktask));
1615 if (unp->unp_ifp_attached) {
1627 rnd_detach_source(&unp->unp_rndsrc);
1629 mutex_destroy(&unp->unp_mcastlock);
1630 mutex_destroy(&unp->unp_miilock);
1631 mutex_destroy(&unp->unp_rxlock);
1632 mutex_destroy(&unp->unp_txlock);
1634 callout_destroy(&unp->unp_stat_ch);
1642 if (unp->unp_ifp_attached) {
1647 kmem_free(unp, sizeof(*unp));
1658 struct usbnet_private * const unp = un->un_pri;
1665 atomic_store_relaxed(&unp->unp_dying, true);
1667 mutex_enter(&unp->unp_miilock);
1668 unp->unp_stopped = true;
1669 mutex_exit(&unp->unp_miilock);
1671 mutex_enter(&unp->unp_rxlock);
1672 unp->unp_rxstopped = true;
1673 mutex_exit(&unp->unp_rxlock);
1675 mutex_enter(&unp->unp_txlock);
1676 unp->unp_txstopped = true;
1677 mutex_exit(&unp->unp_txlock);