diff options
author | Gustavo F. Padovan <padovan@profusion.mobi> | 2011-05-16 16:24:37 -0400 |
---|---|---|
committer | Gustavo F. Padovan <padovan@profusion.mobi> | 2011-06-13 13:55:32 -0400 |
commit | 80808e431e1ef25856457de82ce141bed6a6313a (patch) | |
tree | 021d6affd8b8f6bf81ba51fadb9951b0b9e47d27 /include | |
parent | dc50a06dac61d7ca7ddb3d9bb8921ca5d68f51b6 (diff) |
Bluetooth: Add l2cap_chan_ops abstraction
Add an abstraction layer between L2CAP core and its users (only
l2cap_sock.c now). The first function implemented is new_connection() that
replaces calls to l2cap_sock_alloc() in l2cap_core.c
Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
Diffstat (limited to 'include')
-rw-r--r-- | include/net/bluetooth/l2cap.h | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/include/net/bluetooth/l2cap.h b/include/net/bluetooth/l2cap.h index 0529d278e068..d3a150955c44 100644 --- a/include/net/bluetooth/l2cap.h +++ b/include/net/bluetooth/l2cap.h | |||
@@ -354,6 +354,15 @@ struct l2cap_chan { | |||
354 | 354 | ||
355 | struct list_head list; | 355 | struct list_head list; |
356 | struct list_head global_l; | 356 | struct list_head global_l; |
357 | |||
358 | void *data; | ||
359 | struct l2cap_ops *ops; | ||
360 | }; | ||
361 | |||
362 | struct l2cap_ops { | ||
363 | char *name; | ||
364 | |||
365 | struct l2cap_chan *(*new_connection) (void *data); | ||
357 | }; | 366 | }; |
358 | 367 | ||
359 | struct l2cap_conn { | 368 | struct l2cap_conn { |
@@ -460,9 +469,6 @@ int l2cap_add_psm(struct l2cap_chan *chan, bdaddr_t *src, __le16 psm); | |||
460 | int l2cap_add_scid(struct l2cap_chan *chan, __u16 scid); | 469 | int l2cap_add_scid(struct l2cap_chan *chan, __u16 scid); |
461 | 470 | ||
462 | void l2cap_sock_kill(struct sock *sk); | 471 | void l2cap_sock_kill(struct sock *sk); |
463 | void l2cap_sock_init(struct sock *sk, struct sock *parent); | ||
464 | struct sock *l2cap_sock_alloc(struct net *net, struct socket *sock, | ||
465 | int proto, gfp_t prio); | ||
466 | 472 | ||
467 | struct l2cap_chan *l2cap_chan_create(struct sock *sk); | 473 | struct l2cap_chan *l2cap_chan_create(struct sock *sk); |
468 | void l2cap_chan_close(struct l2cap_chan *chan, int reason); | 474 | void l2cap_chan_close(struct l2cap_chan *chan, int reason); |