aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/bluetooth
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2007-07-11 00:42:04 -0400
committerMarcel Holtmann <marcel@holtmann.org>2007-07-11 00:42:04 -0400
commitef222013fc8c1a2fcba5c7ab169be8ffcb778ec4 (patch)
tree706fb330afd783755eee511bd9182e507c88c5e6 /include/net/bluetooth
parent7dcca30a32aadb0520417521b0c44f42d09fe05c (diff)
[Bluetooth] Add hci_recv_fragment() helper function
Most drivers must handle fragmented HCI data packets and events. This patch adds a generic function for their reassembly to the Bluetooth core layer and thus allows to shrink the complexity of the drivers. Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'include/net/bluetooth')
-rw-r--r--include/net/bluetooth/hci_core.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h
index c0fc39620f36..7c78744ec0fd 100644
--- a/include/net/bluetooth/hci_core.h
+++ b/include/net/bluetooth/hci_core.h
@@ -109,6 +109,7 @@ struct hci_dev {
109 struct sk_buff_head cmd_q; 109 struct sk_buff_head cmd_q;
110 110
111 struct sk_buff *sent_cmd; 111 struct sk_buff *sent_cmd;
112 struct sk_buff *reassembly[3];
112 113
113 struct semaphore req_lock; 114 struct semaphore req_lock;
114 wait_queue_head_t req_wait_q; 115 wait_queue_head_t req_wait_q;
@@ -437,6 +438,8 @@ static inline int hci_recv_frame(struct sk_buff *skb)
437 return 0; 438 return 0;
438} 439}
439 440
441int hci_recv_fragment(struct hci_dev *hdev, int type, void *data, int count);
442
440int hci_register_sysfs(struct hci_dev *hdev); 443int hci_register_sysfs(struct hci_dev *hdev);
441void hci_unregister_sysfs(struct hci_dev *hdev); 444void hci_unregister_sysfs(struct hci_dev *hdev);
442void hci_conn_add_sysfs(struct hci_conn *conn); 445void hci_conn_add_sysfs(struct hci_conn *conn);