• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/net/bluetooth/

Lines Matching defs:conn

63 static void __sco_chan_add(struct sco_conn *conn, struct sock *sk, struct sock *parent);
66 static int sco_conn_del(struct hci_conn *conn, int err);
103 struct sco_conn *conn = hcon->sco_data;
105 if (conn || status)
106 return conn;
108 conn = kzalloc(sizeof(struct sco_conn), GFP_ATOMIC);
109 if (!conn)
112 spin_lock_init(&conn->lock);
114 hcon->sco_data = conn;
115 conn->hcon = hcon;
117 conn->src = &hdev->bdaddr;
118 conn->dst = &hcon->dst;
121 conn->mtu = hdev->sco_mtu;
123 conn->mtu = 60;
125 BT_DBG("hcon %p conn %p", hcon, conn);
127 return conn;
130 static inline struct sock *sco_chan_get(struct sco_conn *conn)
133 sco_conn_lock(conn);
134 sk = conn->sk;
135 sco_conn_unlock(conn);
141 struct sco_conn *conn;
144 if (!(conn = hcon->sco_data))
147 BT_DBG("hcon %p conn %p, err %d", hcon, conn, err);
150 if ((sk = sco_chan_get(conn))) {
159 kfree(conn);
163 static inline int sco_chan_add(struct sco_conn *conn, struct sock *sk, struct sock *parent)
167 sco_conn_lock(conn);
168 if (conn->sk)
171 __sco_chan_add(conn, sk, parent);
173 sco_conn_unlock(conn);
181 struct sco_conn *conn;
204 conn = sco_conn_add(hcon, 0);
205 if (!conn) {
211 bacpy(src, conn->src);
213 err = sco_chan_add(conn, sk, NULL);
233 struct sco_conn *conn = sco_pi(sk)->conn;
238 if (len > conn->mtu)
243 count = min_t(unsigned int, conn->mtu, len);
254 hci_send_sco(conn->hcon, skb);
259 static inline void sco_recv_frame(struct sco_conn *conn, struct sk_buff *skb)
261 struct sock *sk = sco_chan_get(conn);
687 opts.mtu = sco_pi(sk)->conn->mtu;
703 cinfo.hci_handle = sco_pi(sk)->conn->hcon->handle;
704 memcpy(cinfo.dev_class, sco_pi(sk)->conn->hcon->dev_class, 3);
793 static void __sco_chan_add(struct sco_conn *conn, struct sock *sk, struct sock *parent)
795 BT_DBG("conn %p", conn);
797 sco_pi(sk)->conn = conn;
798 conn->sk = sk;
808 struct sco_conn *conn;
810 conn = sco_pi(sk)->conn;
812 BT_DBG("sk %p, conn %p, err %d", sk, conn, err);
814 if (conn) {
815 sco_conn_lock(conn);
816 conn->sk = NULL;
817 sco_pi(sk)->conn = NULL;
818 sco_conn_unlock(conn);
819 hci_conn_put(conn->hcon);
829 static void sco_conn_ready(struct sco_conn *conn)
833 BT_DBG("conn %p", conn);
835 sco_conn_lock(conn);
837 if ((sk = conn->sk)) {
844 parent = sco_get_sock_listen(conn->src);
859 bacpy(&bt_sk(sk)->src, conn->src);
860 bacpy(&bt_sk(sk)->dst, conn->dst);
862 hci_conn_hold(conn->hcon);
863 __sco_chan_add(conn, sk, parent);
874 sco_conn_unlock(conn);
914 struct sco_conn *conn;
916 conn = sco_conn_add(hcon, status);
917 if (conn)
918 sco_conn_ready(conn);
939 struct sco_conn *conn = hcon->sco_data;
941 if (!conn)
944 BT_DBG("conn %p len %d", conn, skb->len);
947 sco_recv_frame(conn, skb);