l2cap.h (d9fbd02be5c201c1659ee0d79c0820bb68d95c8c) l2cap.h (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
7 Written 2000,2001 by Maxim Krasnyansky <maxk@qualcomm.com>
8

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

597 void (*defer) (struct l2cap_chan *chan);
598 void (*resume) (struct l2cap_chan *chan);
599 void (*suspend) (struct l2cap_chan *chan);
600 void (*set_shutdown) (struct l2cap_chan *chan);
601 long (*get_sndtimeo) (struct l2cap_chan *chan);
602 struct sk_buff *(*alloc_skb) (struct l2cap_chan *chan,
603 unsigned long hdr_len,
604 unsigned long len, int nb);
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
7 Written 2000,2001 by Maxim Krasnyansky <maxk@qualcomm.com>
8

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

597 void (*defer) (struct l2cap_chan *chan);
598 void (*resume) (struct l2cap_chan *chan);
599 void (*suspend) (struct l2cap_chan *chan);
600 void (*set_shutdown) (struct l2cap_chan *chan);
601 long (*get_sndtimeo) (struct l2cap_chan *chan);
602 struct sk_buff *(*alloc_skb) (struct l2cap_chan *chan,
603 unsigned long hdr_len,
604 unsigned long len, int nb);
605 int (*memcpy_fromiovec) (struct l2cap_chan *chan,
606 unsigned char *kdata,
607 struct iovec *iov,
608 int len);
605};
606
607struct l2cap_conn {
608 struct hci_conn *hcon;
609 struct hci_chan *hchan;
610
611 unsigned int mtu;
612

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

852{
853}
854
855static inline long l2cap_chan_no_get_sndtimeo(struct l2cap_chan *chan)
856{
857 return 0;
858}
859
609};
610
611struct l2cap_conn {
612 struct hci_conn *hcon;
613 struct hci_chan *hchan;
614
615 unsigned int mtu;
616

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

856{
857}
858
859static inline long l2cap_chan_no_get_sndtimeo(struct l2cap_chan *chan)
860{
861 return 0;
862}
863
864static inline int l2cap_chan_no_memcpy_fromiovec(struct l2cap_chan *chan,
865 unsigned char *kdata,
866 struct iovec *iov,
867 int len)
868{
869 /* Following is safe since for compiler definitions of kvec and
870 * iovec are identical, yielding the same in-core layout and alignment
871 */
872 struct kvec *vec = (struct kvec *)iov;
873
874 while (len > 0) {
875 if (vec->iov_len) {
876 int copy = min_t(unsigned int, len, vec->iov_len);
877 memcpy(kdata, vec->iov_base, copy);
878 len -= copy;
879 kdata += copy;
880 vec->iov_base += copy;
881 vec->iov_len -= copy;
882 }
883 vec++;
884 }
885
886 return 0;
887}
888
860extern bool disable_ertm;
861
862int l2cap_init_sockets(void);
863void l2cap_cleanup_sockets(void);
864bool l2cap_is_socket(struct socket *sock);
865
866void __l2cap_le_connect_rsp_defer(struct l2cap_chan *chan);
867void __l2cap_connect_rsp_defer(struct l2cap_chan *chan);

--- 30 unchanged lines hidden ---
889extern bool disable_ertm;
890
891int l2cap_init_sockets(void);
892void l2cap_cleanup_sockets(void);
893bool l2cap_is_socket(struct socket *sock);
894
895void __l2cap_le_connect_rsp_defer(struct l2cap_chan *chan);
896void __l2cap_connect_rsp_defer(struct l2cap_chan *chan);

--- 30 unchanged lines hidden ---