Bluetooth: Use macros for L2CAP channel identifiers
Use macros instead of hardcoded numbers to make the L2CAP source code more readable. Signed-off-by: Gustavo F. Padovan <gustavo@las.ic.unicamp.br> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
This commit is contained in:
parent
a1c1db3920
commit
8db4dc46dc
2 changed files with 15 additions and 9 deletions
|
@ -106,6 +106,12 @@ struct l2cap_conn_rsp {
|
||||||
__le16 status;
|
__le16 status;
|
||||||
} __attribute__ ((packed));
|
} __attribute__ ((packed));
|
||||||
|
|
||||||
|
/* channel indentifier */
|
||||||
|
#define L2CAP_CID_SIGNALING 0x0001
|
||||||
|
#define L2CAP_CID_CONN_LESS 0x0002
|
||||||
|
#define L2CAP_CID_DYN_START 0x0040
|
||||||
|
#define L2CAP_CID_DYN_END 0xffff
|
||||||
|
|
||||||
/* connect result */
|
/* connect result */
|
||||||
#define L2CAP_CR_SUCCESS 0x0000
|
#define L2CAP_CR_SUCCESS 0x0000
|
||||||
#define L2CAP_CR_PEND 0x0001
|
#define L2CAP_CR_PEND 0x0001
|
||||||
|
|
|
@ -161,9 +161,9 @@ static inline struct sock *l2cap_get_chan_by_ident(struct l2cap_chan_list *l, u8
|
||||||
|
|
||||||
static u16 l2cap_alloc_cid(struct l2cap_chan_list *l)
|
static u16 l2cap_alloc_cid(struct l2cap_chan_list *l)
|
||||||
{
|
{
|
||||||
u16 cid = 0x0040;
|
u16 cid = L2CAP_CID_DYN_START;
|
||||||
|
|
||||||
for (; cid < 0xffff; cid++) {
|
for (; cid < L2CAP_CID_DYN_END; cid++) {
|
||||||
if(!__l2cap_get_chan_by_scid(l, cid))
|
if(!__l2cap_get_chan_by_scid(l, cid))
|
||||||
return cid;
|
return cid;
|
||||||
}
|
}
|
||||||
|
@ -215,13 +215,13 @@ static void __l2cap_chan_add(struct l2cap_conn *conn, struct sock *sk, struct so
|
||||||
l2cap_pi(sk)->scid = l2cap_alloc_cid(l);
|
l2cap_pi(sk)->scid = l2cap_alloc_cid(l);
|
||||||
} else if (sk->sk_type == SOCK_DGRAM) {
|
} else if (sk->sk_type == SOCK_DGRAM) {
|
||||||
/* Connectionless socket */
|
/* Connectionless socket */
|
||||||
l2cap_pi(sk)->scid = 0x0002;
|
l2cap_pi(sk)->scid = L2CAP_CID_CONN_LESS;
|
||||||
l2cap_pi(sk)->dcid = 0x0002;
|
l2cap_pi(sk)->dcid = L2CAP_CID_CONN_LESS;
|
||||||
l2cap_pi(sk)->omtu = L2CAP_DEFAULT_MTU;
|
l2cap_pi(sk)->omtu = L2CAP_DEFAULT_MTU;
|
||||||
} else {
|
} else {
|
||||||
/* Raw socket can send/recv signalling messages only */
|
/* Raw socket can send/recv signalling messages only */
|
||||||
l2cap_pi(sk)->scid = 0x0001;
|
l2cap_pi(sk)->scid = L2CAP_CID_SIGNALING;
|
||||||
l2cap_pi(sk)->dcid = 0x0001;
|
l2cap_pi(sk)->dcid = L2CAP_CID_SIGNALING;
|
||||||
l2cap_pi(sk)->omtu = L2CAP_DEFAULT_MTU;
|
l2cap_pi(sk)->omtu = L2CAP_DEFAULT_MTU;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1598,7 +1598,7 @@ static struct sk_buff *l2cap_build_cmd(struct l2cap_conn *conn,
|
||||||
|
|
||||||
lh = (struct l2cap_hdr *) skb_put(skb, L2CAP_HDR_SIZE);
|
lh = (struct l2cap_hdr *) skb_put(skb, L2CAP_HDR_SIZE);
|
||||||
lh->len = cpu_to_le16(L2CAP_CMD_HDR_SIZE + dlen);
|
lh->len = cpu_to_le16(L2CAP_CMD_HDR_SIZE + dlen);
|
||||||
lh->cid = cpu_to_le16(0x0001);
|
lh->cid = cpu_to_le16(L2CAP_CID_SIGNALING);
|
||||||
|
|
||||||
cmd = (struct l2cap_cmd_hdr *) skb_put(skb, L2CAP_CMD_HDR_SIZE);
|
cmd = (struct l2cap_cmd_hdr *) skb_put(skb, L2CAP_CMD_HDR_SIZE);
|
||||||
cmd->code = code;
|
cmd->code = code;
|
||||||
|
@ -2420,11 +2420,11 @@ static void l2cap_recv_frame(struct l2cap_conn *conn, struct sk_buff *skb)
|
||||||
BT_DBG("len %d, cid 0x%4.4x", len, cid);
|
BT_DBG("len %d, cid 0x%4.4x", len, cid);
|
||||||
|
|
||||||
switch (cid) {
|
switch (cid) {
|
||||||
case 0x0001:
|
case L2CAP_CID_SIGNALING:
|
||||||
l2cap_sig_channel(conn, skb);
|
l2cap_sig_channel(conn, skb);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x0002:
|
case L2CAP_CID_CONN_LESS:
|
||||||
psm = get_unaligned((__le16 *) skb->data);
|
psm = get_unaligned((__le16 *) skb->data);
|
||||||
skb_pull(skb, 2);
|
skb_pull(skb, 2);
|
||||||
l2cap_conless_channel(conn, psm, skb);
|
l2cap_conless_channel(conn, psm, skb);
|
||||||
|
|
Loading…
Reference in a new issue