Lines Matching refs:dlc

63 	struct rfcomm_dlc	*dlc;
75 static void rfcomm_dev_data_ready(struct rfcomm_dlc *dlc, struct sk_buff *skb);
76 static void rfcomm_dev_state_change(struct rfcomm_dlc *dlc, int err);
77 static void rfcomm_dev_modem_status(struct rfcomm_dlc *dlc, u8 v24_sig);
84 struct rfcomm_dlc *dlc = dev->dlc;
86 BT_DBG("dev %p dlc %p", dev, dlc);
88 rfcomm_dlc_lock(dlc);
90 if (dlc->owner == dev)
91 dlc->owner = NULL;
92 rfcomm_dlc_unlock(dlc);
94 rfcomm_dlc_put(dlc);
110 /* device-specific initialization: open the dlc */
116 err = rfcomm_dlc_open(dev->dlc, &dev->src, &dev->dst, dev->channel);
122 /* we block the open until the dlc->state becomes BT_CONNECTED */
127 return (dev->dlc->state == BT_CONNECTED);
130 /* device-specific cleanup: close the dlc */
138 /* close the dlc */
139 rfcomm_dlc_close(dev->dlc, 0);
217 struct rfcomm_dlc *dlc)
276 rfcomm_dlc_lock(dlc);
279 struct sock *sk = dlc->owner;
284 rfcomm_dlc_throttle(dlc);
293 dlc->data_ready = rfcomm_dev_data_ready;
294 dlc->state_change = rfcomm_dev_state_change;
295 dlc->modem_status = rfcomm_dev_modem_status;
297 dlc->owner = dev;
298 dev->dlc = dlc;
300 rfcomm_dev_modem_status(dlc, dlc->remote_v24_sig);
302 rfcomm_dlc_unlock(dlc);
317 static int rfcomm_dev_add(struct rfcomm_dev_req *req, struct rfcomm_dlc *dlc)
324 dev = __rfcomm_dev_add(req, dlc);
326 rfcomm_dlc_put(dlc);
353 struct rfcomm_dlc *dlc = dev->dlc;
358 return max(0, pending) * dlc->mtu;
393 struct rfcomm_dlc *dlc;
409 dlc = rfcomm_pi(sk)->dlc;
410 rfcomm_dlc_hold(dlc);
413 dlc = rfcomm_dlc_exists(&req.src, &req.dst, req.channel);
414 if (IS_ERR(dlc))
415 return PTR_ERR(dlc);
416 if (dlc)
418 dlc = rfcomm_dlc_alloc(GFP_KERNEL);
419 if (!dlc)
423 id = rfcomm_dev_add(&req, dlc);
463 rfcomm_dlc_close(dev->dlc, 0);
532 (di + n)->state = dev->dlc->state;
569 di.state = dev->dlc->state;
602 static void rfcomm_dev_data_ready(struct rfcomm_dlc *dlc, struct sk_buff *skb)
604 struct rfcomm_dev *dev = dlc->owner;
616 BT_DBG("dlc %p len %d", dlc, skb->len);
624 static void rfcomm_dev_state_change(struct rfcomm_dlc *dlc, int err)
626 struct rfcomm_dev *dev = dlc->owner;
630 BT_DBG("dlc %p dev %p err %d", dlc, dev, err);
633 if (dlc->state == BT_CONNECTED) {
637 } else if (dlc->state == BT_CLOSED)
641 static void rfcomm_dev_modem_status(struct rfcomm_dlc *dlc, u8 v24_sig)
643 struct rfcomm_dev *dev = dlc->owner;
647 BT_DBG("dlc %p dev %p v24_sig 0x%02x", dlc, dev, v24_sig);
667 rfcomm_dlc_lock(dev->dlc);
675 rfcomm_dlc_unlock(dev->dlc);
690 rfcomm_dlc_lock(dev->dlc);
692 rfcomm_dlc_unlock(dev->dlc);
695 * purge the dlc->tx_queue to avoid circular dependencies
696 * between dev and dlc
698 skb_queue_purge(&dev->dlc->tx_queue);
710 struct rfcomm_dlc *dlc;
717 dlc = dev->dlc;
720 rfcomm_dlc_lock(dlc);
722 rfcomm_dlc_unlock(dlc);
766 rfcomm_dlc_unthrottle(dev->dlc);
775 BT_DBG("tty %p dev %p dlc %p opened %d", tty, dev, dev->dlc,
784 struct rfcomm_dlc *dlc = dev->dlc;
791 size = min_t(uint, count, dlc->mtu);
801 rfcomm_dlc_send_noerror(dlc, skb);
815 if (dev && dev->dlc)
869 if (!dev || !dev->dlc || !dev->dlc->session)
990 rfcomm_send_rpn(dev->dlc->session, 1, dev->dlc->dlci, baud,
1001 rfcomm_dlc_throttle(dev->dlc);
1010 rfcomm_dlc_unthrottle(dev->dlc);
1019 if (!dev || !dev->dlc)
1022 if (!skb_queue_empty(&dev->dlc->tx_queue))
1023 return dev->dlc->mtu;
1034 if (!dev || !dev->dlc)
1037 skb_queue_purge(&dev->dlc->tx_queue);
1072 struct rfcomm_dlc *dlc = dev->dlc;
1077 rfcomm_dlc_get_modem_status(dlc, &v24_sig);
1097 rfcomm_dlc_set_modem_status(dlc, v24_sig);