Lines Matching defs:ue
64 uether_pause(struct usb_ether *ue, unsigned int _ticks)
66 if (usb_proc_is_gone(&ue->ue_tq)) {
70 usb_pause_mtx(ue->ue_mtx, _ticks);
75 ue_queue_command(struct usb_ether *ue,
81 UE_LOCK_ASSERT(ue, MA_OWNED);
83 if (usb_proc_is_gone(&ue->ue_tq)) {
92 usb_proc_msignal(&ue->ue_tq, t0, t1);
96 task->ue = ue;
102 usb_proc_mwait(&ue->ue_tq, t0, t1);
106 uether_getsc(struct usb_ether *ue)
108 return (ue->ue_sc);
112 uether_ifattach(struct usb_ether *ue)
117 if ((ue->ue_dev == NULL) ||
118 (ue->ue_udev == NULL) ||
119 (ue->ue_mtx == NULL) ||
120 (ue->ue_methods == NULL))
123 if (LOS_EventInit(&ue->ue_event) != LOS_OK) {
124 device_printf(ue->ue_dev, "event init fail\n");
128 ret = usb_proc_create(&ue->ue_tq, ue->ue_mtx,
129 device_get_nameunit(ue->ue_dev), USB_PRI_MED);
132 device_printf(ue->ue_dev, "could not setup taskqueue\n");
133 (void)LOS_EventDestroy(&ue->ue_event);
138 UE_LOCK(ue);
139 ue_queue_command(ue, ue_attach_post_task,
140 &ue->ue_sync_task[0].hdr,
141 &ue->ue_sync_task[1].hdr);
142 UE_UNLOCK(ue);
149 uether_ifattach_wait(struct usb_ether *ue)
152 UE_LOCK(ue);
153 usb_proc_mwait(&ue->ue_tq,
154 &ue->ue_sync_task[0].hdr,
155 &ue->ue_sync_task[1].hdr);
156 UE_UNLOCK(ue);
213 struct usb_ether *ue = (struct usb_ether *)drv_sc->driver_private;
224 IF_DEQUEUE(&ue->ue_rxq, m);
276 static const char usb_eth_name[3] = "ue";
283 struct usb_ether *ue = task->ue;
288 UE_UNLOCK(ue);
290 usb_callout_init_mtx(&ue->ue_watchdog, ue->ue_mtx, 0);
295 device_printf(ue->ue_dev, "could not allocate eth_drv_sc\n");
300 drv_sc->driver_private = ue;
302 if (ue->ue_methods->ue_attach_post_sub != NULL) {
303 ue->ue_drv_sc = sc;
304 error = ue->ue_methods->ue_attach_post_sub(ue);
311 ue->ue_drv_sc = sc;
315 device_printf(ue->ue_dev, "attaching PHYs failed\n");
319 (drv_sc->funs->eth_drv->init)(sc, ue->ue_eaddr);
321 if (LOS_EventWrite(&ue->ue_event, 0x01) != LOS_OK) {
322 device_printf(ue->ue_dev, "event write fail\n");
328 UE_LOCK(ue);
333 if (ue->ue_drv_sc != NULL) {
335 ue->ue_drv_sc = NULL;
337 UE_LOCK(ue);
342 uether_ifdetach(struct usb_ether *ue)
349 usb_proc_drain(&ue->ue_tq);
352 sc = ue->ue_drv_sc;
356 UE_LOCK(ue);
358 UE_UNLOCK(ue);
361 usb_callout_drain(&ue->ue_watchdog);
365 UE_LOCK(ue);
366 IF_DEQUEUE(&(ue->ue_txq), m);
367 UE_UNLOCK(ue);
373 UE_LOCK(ue);
374 IF_DEQUEUE(&(ue->ue_rxq), m);
375 UE_UNLOCK(ue);
387 ue->ue_drv_sc = NULL;
391 usb_proc_free(&ue->ue_tq);
393 (void)LOS_EventDestroy(&ue->ue_event);
397 uether_is_gone(struct usb_ether *ue)
399 return (usb_proc_is_gone(&ue->ue_tq));
408 struct usb_ether *ue = (struct usb_ether *)drv_sc->driver_private;
410 UE_LOCK(ue);
411 ue_start_task(&ue->ue_sync_task[0].hdr);
412 UE_UNLOCK(ue);
420 struct usb_ether *ue = task->ue;
421 struct los_eth_driver *sc = ue->ue_drv_sc;
424 UE_LOCK_ASSERT(ue, MA_OWNED);
426 ue->ue_methods->ue_init(ue);
431 if (ue->ue_methods->ue_tick != NULL)
432 usb_callout_reset(&ue->ue_watchdog, hz, ue_watchdog, ue);
440 struct usb_ether *ue = task->ue;
442 UE_LOCK_ASSERT(ue, MA_OWNED);
444 usb_callout_stop(&ue->ue_watchdog);
446 ue->ue_methods->ue_stop(ue);
457 struct usb_ether *ue = (struct usb_ether *)drv_sc->driver_private;
478 UE_LOCK(ue);
480 UE_UNLOCK(ue);
484 IF_ENQUEUE(&(ue->ue_txq), m);
486 ue->ue_methods->ue_start(ue);
487 UE_UNLOCK(ue);
493 struct usb_ether *ue = (struct usb_ether *)arg;
494 struct los_eth_driver *sc = ue->ue_drv_sc;
500 ue_queue_command(ue, ue_tick_task,
501 &ue->ue_tick_task[0].hdr,
502 &ue->ue_tick_task[1].hdr);
504 usb_callout_reset(&ue->ue_watchdog, hz, ue_watchdog, ue);
512 struct usb_ether *ue = task->ue;
513 struct los_eth_driver *sc = ue->ue_drv_sc;
519 ue->ue_methods->ue_tick(ue);
574 uether_rxmbuf(struct usb_ether *ue, struct pbuf *m, unsigned int len)
576 UE_LOCK_ASSERT(ue, MA_OWNED);
581 IF_ENQUEUE(&(ue->ue_rxq), m);
582 ue->ue_rxq.ifq_head->tot_len += len;
588 uether_rxflush(struct usb_ether *ue)
590 struct netif *netif = &(ue->ue_drv_sc->ac_if);
591 struct pbuf *m = ue->ue_rxq.ifq_head;
595 UE_LOCK_ASSERT(ue, MA_OWNED);
610 UE_UNLOCK(ue);
613 UE_LOCK(ue);
617 uether_rxflush(struct usb_ether *ue)
619 struct los_eth_driver *sc = ue->ue_drv_sc;
623 UE_LOCK_ASSERT(ue, MA_OWNED);
625 m = ue->ue_rxq.ifq_head;