summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMat Martineau <mathewm@codeaurora.org>2012-03-23 16:56:56 -0700
committerGustavo Padovan <gustavo@padovan.org>2012-05-09 00:41:35 -0300
commit00e3112c5a90963bb7b56e0648d22fc51ed17d23 (patch)
tree97707023c5e51df24adf574cb727e9a28f569289
parentd5f7ac38102c12069de247890cfdd357bf845a77 (diff)
downloadblackbird-op-linux-00e3112c5a90963bb7b56e0648d22fc51ed17d23.tar.gz
blackbird-op-linux-00e3112c5a90963bb7b56e0648d22fc51ed17d23.zip
Bluetooth: Add a structure to carry ERTM data in skb control blocks
Every field from ERTM control headers is now carried in the control block so it only has to be parsed or generated once, and can be efficiently accessed throughout the ERTM code. Signed-off-by: Mat Martineau <mathewm@codeaurora.org> Acked-by: Marcel Holtmann <marcel@holtmann.org> Signed-off-by: Gustavo Padovan <gustavo@padovan.org>
-rw-r--r--include/net/bluetooth/bluetooth.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/net/bluetooth/bluetooth.h b/include/net/bluetooth/bluetooth.h
index 262ebd1747d4..f2c8bdf08061 100644
--- a/include/net/bluetooth/bluetooth.h
+++ b/include/net/bluetooth/bluetooth.h
@@ -215,6 +215,18 @@ void bt_accept_unlink(struct sock *sk);
struct sock *bt_accept_dequeue(struct sock *parent, struct socket *newsock);
/* Skb helpers */
+struct l2cap_ctrl {
+ unsigned int sframe : 1,
+ poll : 1,
+ final : 1,
+ fcs : 1,
+ sar : 2,
+ super : 2;
+ __u16 reqseq;
+ __u16 txseq;
+ __u8 retries;
+};
+
struct bt_skb_cb {
__u8 pkt_type;
__u8 incoming;
@@ -223,6 +235,7 @@ struct bt_skb_cb {
__u8 retries;
__u8 sar;
__u8 force_active;
+ struct l2cap_ctrl control;
};
#define bt_cb(skb) ((struct bt_skb_cb *)((skb)->cb))
OpenPOWER on IntegriCloud