l2cap_sock.c (d9fbd02be5c201c1659ee0d79c0820bb68d95c8c) l2cap_sock.c (0498878b18993891f7b71c75b6adcb7c157501db)
1/*
2 BlueZ - Bluetooth protocol stack for Linux
3 Copyright (C) 2000-2001 Qualcomm Incorporated
4 Copyright (C) 2009-2010 Gustavo F. Padovan <gustavo@padovan.org>
5 Copyright (C) 2010 Google Inc.
6 Copyright (C) 2011 ProFUSION Embedded Systems
7
8 Written 2000,2001 by Maxim Krasnyansky <maxk@qualcomm.com>

--- 1299 unchanged lines hidden (view full) ---

1308
1309 skb->priority = sk->sk_priority;
1310
1311 bt_cb(skb)->chan = chan;
1312
1313 return skb;
1314}
1315
1/*
2 BlueZ - Bluetooth protocol stack for Linux
3 Copyright (C) 2000-2001 Qualcomm Incorporated
4 Copyright (C) 2009-2010 Gustavo F. Padovan <gustavo@padovan.org>
5 Copyright (C) 2010 Google Inc.
6 Copyright (C) 2011 ProFUSION Embedded Systems
7
8 Written 2000,2001 by Maxim Krasnyansky <maxk@qualcomm.com>

--- 1299 unchanged lines hidden (view full) ---

1308
1309 skb->priority = sk->sk_priority;
1310
1311 bt_cb(skb)->chan = chan;
1312
1313 return skb;
1314}
1315
1316static int l2cap_sock_memcpy_fromiovec_cb(struct l2cap_chan *chan,
1317 unsigned char *kdata,
1318 struct iovec *iov, int len)
1319{
1320 return memcpy_fromiovec(kdata, iov, len);
1321}
1322
1316static void l2cap_sock_ready_cb(struct l2cap_chan *chan)
1317{
1318 struct sock *sk = chan->data;
1319 struct sock *parent;
1320
1321 lock_sock(sk);
1322
1323 parent = bt_sk(sk)->parent;

--- 50 unchanged lines hidden (view full) ---

1374{
1375 struct sock *sk = chan->data;
1376
1377 set_bit(BT_SK_SUSPEND, &bt_sk(sk)->flags);
1378 sk->sk_state_change(sk);
1379}
1380
1381static const struct l2cap_ops l2cap_chan_ops = {
1323static void l2cap_sock_ready_cb(struct l2cap_chan *chan)
1324{
1325 struct sock *sk = chan->data;
1326 struct sock *parent;
1327
1328 lock_sock(sk);
1329
1330 parent = bt_sk(sk)->parent;

--- 50 unchanged lines hidden (view full) ---

1381{
1382 struct sock *sk = chan->data;
1383
1384 set_bit(BT_SK_SUSPEND, &bt_sk(sk)->flags);
1385 sk->sk_state_change(sk);
1386}
1387
1388static const struct l2cap_ops l2cap_chan_ops = {
1382 .name = "L2CAP Socket Interface",
1383 .new_connection = l2cap_sock_new_connection_cb,
1384 .recv = l2cap_sock_recv_cb,
1385 .close = l2cap_sock_close_cb,
1386 .teardown = l2cap_sock_teardown_cb,
1387 .state_change = l2cap_sock_state_change_cb,
1388 .ready = l2cap_sock_ready_cb,
1389 .defer = l2cap_sock_defer_cb,
1390 .resume = l2cap_sock_resume_cb,
1391 .suspend = l2cap_sock_suspend_cb,
1392 .set_shutdown = l2cap_sock_set_shutdown_cb,
1393 .get_sndtimeo = l2cap_sock_get_sndtimeo_cb,
1394 .alloc_skb = l2cap_sock_alloc_skb_cb,
1389 .name = "L2CAP Socket Interface",
1390 .new_connection = l2cap_sock_new_connection_cb,
1391 .recv = l2cap_sock_recv_cb,
1392 .close = l2cap_sock_close_cb,
1393 .teardown = l2cap_sock_teardown_cb,
1394 .state_change = l2cap_sock_state_change_cb,
1395 .ready = l2cap_sock_ready_cb,
1396 .defer = l2cap_sock_defer_cb,
1397 .resume = l2cap_sock_resume_cb,
1398 .suspend = l2cap_sock_suspend_cb,
1399 .set_shutdown = l2cap_sock_set_shutdown_cb,
1400 .get_sndtimeo = l2cap_sock_get_sndtimeo_cb,
1401 .alloc_skb = l2cap_sock_alloc_skb_cb,
1402 .memcpy_fromiovec = l2cap_sock_memcpy_fromiovec_cb,
1395};
1396
1397static void l2cap_sock_destruct(struct sock *sk)
1398{
1399 BT_DBG("sk %p", sk);
1400
1401 if (l2cap_pi(sk)->chan)
1402 l2cap_chan_put(l2cap_pi(sk)->chan);

--- 219 unchanged lines hidden ---
1403};
1404
1405static void l2cap_sock_destruct(struct sock *sk)
1406{
1407 BT_DBG("sk %p", sk);
1408
1409 if (l2cap_pi(sk)->chan)
1410 l2cap_chan_put(l2cap_pi(sk)->chan);

--- 219 unchanged lines hidden ---