Lines Matching refs:tun

21 	struct qrtr_tun *tun = container_of(ep, struct qrtr_tun, ep);  in qrtr_tun_send()  local
23 skb_queue_tail(&tun->queue, skb); in qrtr_tun_send()
26 wake_up_interruptible(&tun->readq); in qrtr_tun_send()
33 struct qrtr_tun *tun; in qrtr_tun_open() local
35 tun = kzalloc(sizeof(*tun), GFP_KERNEL); in qrtr_tun_open()
36 if (!tun) in qrtr_tun_open()
39 skb_queue_head_init(&tun->queue); in qrtr_tun_open()
40 init_waitqueue_head(&tun->readq); in qrtr_tun_open()
42 tun->ep.xmit = qrtr_tun_send; in qrtr_tun_open()
44 filp->private_data = tun; in qrtr_tun_open()
46 return qrtr_endpoint_register(&tun->ep, QRTR_EP_NID_AUTO); in qrtr_tun_open()
52 struct qrtr_tun *tun = filp->private_data; in qrtr_tun_read_iter() local
56 while (!(skb = skb_dequeue(&tun->queue))) { in qrtr_tun_read_iter()
61 if (wait_event_interruptible(tun->readq, in qrtr_tun_read_iter()
62 !skb_queue_empty(&tun->queue))) in qrtr_tun_read_iter()
78 struct qrtr_tun *tun = filp->private_data; in qrtr_tun_write_iter() local
90 ret = qrtr_endpoint_post(&tun->ep, kbuf, len); in qrtr_tun_write_iter()
97 struct qrtr_tun *tun = filp->private_data; in qrtr_tun_poll() local
100 poll_wait(filp, &tun->readq, wait); in qrtr_tun_poll()
102 if (!skb_queue_empty(&tun->queue)) in qrtr_tun_poll()
110 struct qrtr_tun *tun = filp->private_data; in qrtr_tun_release() local
113 qrtr_endpoint_unregister(&tun->ep); in qrtr_tun_release()
116 while (!skb_queue_empty(&tun->queue)) { in qrtr_tun_release()
117 skb = skb_dequeue(&tun->queue); in qrtr_tun_release()
121 kfree(tun); in qrtr_tun_release()