• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/sys/dev/usb/net/

Lines Matching defs:ue

63 static SYSCTL_NODE(_net, OID_AUTO, ue, CTLFLAG_RD | CTLFLAG_MPSAFE, 0,
94 uether_pause(struct usb_ether *ue, unsigned int _ticks)
96 if (usb_proc_is_gone(&ue->ue_tq)) {
100 usb_pause_mtx(ue->ue_mtx, _ticks);
105 ue_queue_command(struct usb_ether *ue,
111 UE_LOCK_ASSERT(ue, MA_OWNED);
113 if (usb_proc_is_gone(&ue->ue_tq)) {
122 usb_proc_msignal(&ue->ue_tq, t0, t1);
126 task->ue = ue;
132 usb_proc_mwait(&ue->ue_tq, t0, t1);
136 uether_getifp(struct usb_ether *ue)
138 return (ue->ue_ifp);
142 uether_getmii(struct usb_ether *ue)
144 return (device_get_softc(ue->ue_miibus));
148 uether_getsc(struct usb_ether *ue)
150 return (ue->ue_sc);
156 struct usb_ether *ue = arg1;
159 name = device_get_nameunit(ue->ue_dev);
164 uether_ifattach(struct usb_ether *ue)
169 if ((ue->ue_dev == NULL) ||
170 (ue->ue_udev == NULL) ||
171 (ue->ue_mtx == NULL) ||
172 (ue->ue_methods == NULL))
175 error = usb_proc_create(&ue->ue_tq, ue->ue_mtx,
176 device_get_nameunit(ue->ue_dev), USB_PRI_MED);
178 device_printf(ue->ue_dev, "could not setup taskqueue\n");
183 UE_LOCK(ue);
184 ue_queue_command(ue, ue_attach_post_task,
185 &ue->ue_sync_task[0].hdr,
186 &ue->ue_sync_task[1].hdr);
187 UE_UNLOCK(ue);
194 uether_ifattach_wait(struct usb_ether *ue)
197 UE_LOCK(ue);
198 usb_proc_mwait(&ue->ue_tq,
199 &ue->ue_sync_task[0].hdr,
200 &ue->ue_sync_task[1].hdr);
201 UE_UNLOCK(ue);
209 struct usb_ether *ue = task->ue;
215 ue->ue_methods->ue_attach_post(ue);
217 UE_UNLOCK(ue);
219 ue->ue_unit = alloc_unr(ueunit);
220 usb_callout_init_mtx(&ue->ue_watchdog, ue->ue_mtx, 0);
221 sysctl_ctx_init(&ue->ue_sysctl_ctx);
222 mbufq_init(&ue->ue_rxq, 0 /* unlimited length */);
228 device_printf(ue->ue_dev, "could not allocate ifnet\n");
232 ifp->if_softc = ue;
233 if_initname(ifp, "ue", ue->ue_unit);
234 if (ue->ue_methods->ue_attach_post_sub != NULL) {
235 ue->ue_ifp = ifp;
236 error = ue->ue_methods->ue_attach_post_sub(ue);
239 if (ue->ue_methods->ue_ioctl != NULL)
240 ifp->if_ioctl = ue->ue_methods->ue_ioctl;
248 ue->ue_ifp = ifp;
250 if (ue->ue_methods->ue_mii_upd != NULL &&
251 ue->ue_methods->ue_mii_sts != NULL) {
254 error = mii_attach(ue->ue_dev, &ue->ue_miibus, ifp,
255 ue_ifmedia_upd, ue->ue_methods->ue_mii_sts,
262 device_printf(ue->ue_dev, "attaching PHYs failed\n");
266 if_printf(ifp, "<USB Ethernet> on %s\n", device_get_nameunit(ue->ue_dev));
267 ether_ifattach(ifp, ue->ue_eaddr);
274 snprintf(num, sizeof(num), "%u", ue->ue_unit);
275 ue->ue_sysctl_oid = SYSCTL_ADD_NODE(&ue->ue_sysctl_ctx,
276 &SYSCTL_NODE_CHILDREN(_net, ue),
278 SYSCTL_ADD_PROC(&ue->ue_sysctl_ctx,
279 SYSCTL_CHILDREN(ue->ue_sysctl_oid), OID_AUTO, "%parent",
280 CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_MPSAFE, ue, 0,
283 UE_LOCK(ue);
290 mbufq_drain(&ue->ue_rxq);
293 free_unr(ueunit, ue->ue_unit);
294 if (ue->ue_ifp != NULL) {
295 if_free(ue->ue_ifp);
296 ue->ue_ifp = NULL;
298 UE_LOCK(ue);
303 uether_ifdetach(struct usb_ether *ue)
308 usb_proc_drain(&ue->ue_tq);
311 ifp = ue->ue_ifp;
315 UE_LOCK(ue);
317 UE_UNLOCK(ue);
320 usb_callout_drain(&ue->ue_watchdog);
329 if (ue->ue_miibus != NULL) {
331 device_delete_child(ue->ue_dev, ue->ue_miibus);
339 sysctl_ctx_free(&ue->ue_sysctl_ctx);
342 mbufq_drain(&ue->ue_rxq);
345 free_unr(ueunit, ue->ue_unit);
349 usb_proc_free(&ue->ue_tq);
353 uether_is_gone(struct usb_ether *ue)
355 return (usb_proc_is_gone(&ue->ue_tq));
368 struct usb_ether *ue = arg;
370 UE_LOCK(ue);
371 ue_queue_command(ue, ue_start_task,
372 &ue->ue_sync_task[0].hdr,
373 &ue->ue_sync_task[1].hdr);
374 UE_UNLOCK(ue);
382 struct usb_ether *ue = task->ue;
383 struct ifnet *ifp = ue->ue_ifp;
385 UE_LOCK_ASSERT(ue, MA_OWNED);
387 ue->ue_methods->ue_init(ue);
392 if (ue->ue_methods->ue_tick != NULL)
393 usb_callout_reset(&ue->ue_watchdog, hz, ue_watchdog, ue);
401 struct usb_ether *ue = task->ue;
403 UE_LOCK_ASSERT(ue, MA_OWNED);
405 usb_callout_stop(&ue->ue_watchdog);
407 ue->ue_methods->ue_stop(ue);
420 struct usb_ether *ue = ifp->if_softc;
425 UE_LOCK(ue);
426 ue->ue_methods->ue_start(ue);
427 UE_UNLOCK(ue);
435 struct usb_ether *ue = task->ue;
437 ue->ue_methods->ue_setpromisc(ue);
445 struct usb_ether *ue = task->ue;
447 ue->ue_methods->ue_setmulti(ue);
460 struct usb_ether *ue = ifp->if_softc;
463 UE_LOCK(ue);
464 ue_queue_command(ue, ue_ifmedia_task,
465 &ue->ue_media_task[0].hdr,
466 &ue->ue_media_task[1].hdr);
467 UE_UNLOCK(ue);
477 struct usb_ether *ue = task->ue;
478 struct ifnet *ifp = ue->ue_ifp;
480 ue->ue_methods->ue_mii_upd(ifp);
486 struct usb_ether *ue = arg;
487 struct ifnet *ifp = ue->ue_ifp;
492 ue_queue_command(ue, ue_tick_task,
493 &ue->ue_tick_task[0].hdr,
494 &ue->ue_tick_task[1].hdr);
496 usb_callout_reset(&ue->ue_watchdog, hz, ue_watchdog, ue);
504 struct usb_ether *ue = task->ue;
505 struct ifnet *ifp = ue->ue_ifp;
510 ue->ue_methods->ue_tick(ue);
516 struct usb_ether *ue = ifp->if_softc;
523 UE_LOCK(ue);
526 ue_queue_command(ue, ue_promisc_task,
527 &ue->ue_promisc_task[0].hdr,
528 &ue->ue_promisc_task[1].hdr);
530 ue_queue_command(ue, ue_start_task,
531 &ue->ue_sync_task[0].hdr,
532 &ue->ue_sync_task[1].hdr);
534 ue_queue_command(ue, ue_stop_task,
535 &ue->ue_sync_task[0].hdr,
536 &ue->ue_sync_task[1].hdr);
538 UE_UNLOCK(ue);
542 UE_LOCK(ue);
543 ue_queue_command(ue, ue_setmulti_task,
544 &ue->ue_multi_task[0].hdr,
545 &ue->ue_multi_task[1].hdr);
546 UE_UNLOCK(ue);
550 if (ue->ue_miibus != NULL) {
551 mii = device_get_softc(ue->ue_miibus);
599 uether_rxmbuf(struct usb_ether *ue, struct mbuf *m,
602 struct ifnet *ifp = ue->ue_ifp;
604 UE_LOCK_ASSERT(ue, MA_OWNED);
612 (void)mbufq_enqueue(&ue->ue_rxq, m);
617 uether_rxbuf(struct usb_ether *ue, struct usb_page_cache *pc,
620 struct ifnet *ifp = ue->ue_ifp;
623 UE_LOCK_ASSERT(ue, MA_OWNED);
642 (void)mbufq_enqueue(&ue->ue_rxq, m);
647 uether_rxflush(struct usb_ether *ue)
649 struct ifnet *ifp = ue->ue_ifp;
653 UE_LOCK_ASSERT(ue, MA_OWNED);
655 n = mbufq_flush(&ue->ue_rxq);
656 UE_UNLOCK(ue);
664 UE_LOCK(ue);