diff options
Diffstat (limited to 'include/net/bluetooth/l2cap.h')
-rw-r--r-- | include/net/bluetooth/l2cap.h | 37 |
1 files changed, 30 insertions, 7 deletions
diff --git a/include/net/bluetooth/l2cap.h b/include/net/bluetooth/l2cap.h index 70e70f5d3dd6..73e115bc12dd 100644 --- a/include/net/bluetooth/l2cap.h +++ b/include/net/bluetooth/l2cap.h | |||
@@ -29,7 +29,8 @@ | |||
29 | #define L2CAP_DEFAULT_MTU 672 | 29 | #define L2CAP_DEFAULT_MTU 672 |
30 | #define L2CAP_DEFAULT_FLUSH_TO 0xFFFF | 30 | #define L2CAP_DEFAULT_FLUSH_TO 0xFFFF |
31 | 31 | ||
32 | #define L2CAP_CONN_TIMEOUT (HZ * 40) | 32 | #define L2CAP_CONN_TIMEOUT (40000) /* 40 seconds */ |
33 | #define L2CAP_INFO_TIMEOUT (4000) /* 4 seconds */ | ||
33 | 34 | ||
34 | /* L2CAP socket address */ | 35 | /* L2CAP socket address */ |
35 | struct sockaddr_l2 { | 36 | struct sockaddr_l2 { |
@@ -148,6 +149,19 @@ struct l2cap_conf_opt { | |||
148 | 149 | ||
149 | #define L2CAP_CONF_MAX_SIZE 22 | 150 | #define L2CAP_CONF_MAX_SIZE 22 |
150 | 151 | ||
152 | struct l2cap_conf_rfc { | ||
153 | __u8 mode; | ||
154 | __u8 txwin_size; | ||
155 | __u8 max_transmit; | ||
156 | __le16 retrans_timeout; | ||
157 | __le16 monitor_timeout; | ||
158 | __le16 max_pdu_size; | ||
159 | } __attribute__ ((packed)); | ||
160 | |||
161 | #define L2CAP_MODE_BASIC 0x00 | ||
162 | #define L2CAP_MODE_RETRANS 0x01 | ||
163 | #define L2CAP_MODE_FLOWCTL 0x02 | ||
164 | |||
151 | struct l2cap_disconn_req { | 165 | struct l2cap_disconn_req { |
152 | __le16 dcid; | 166 | __le16 dcid; |
153 | __le16 scid; | 167 | __le16 scid; |
@@ -160,7 +174,6 @@ struct l2cap_disconn_rsp { | |||
160 | 174 | ||
161 | struct l2cap_info_req { | 175 | struct l2cap_info_req { |
162 | __le16 type; | 176 | __le16 type; |
163 | __u8 data[0]; | ||
164 | } __attribute__ ((packed)); | 177 | } __attribute__ ((packed)); |
165 | 178 | ||
166 | struct l2cap_info_rsp { | 179 | struct l2cap_info_rsp { |
@@ -192,6 +205,13 @@ struct l2cap_conn { | |||
192 | 205 | ||
193 | unsigned int mtu; | 206 | unsigned int mtu; |
194 | 207 | ||
208 | __u32 feat_mask; | ||
209 | |||
210 | __u8 info_state; | ||
211 | __u8 info_ident; | ||
212 | |||
213 | struct timer_list info_timer; | ||
214 | |||
195 | spinlock_t lock; | 215 | spinlock_t lock; |
196 | 216 | ||
197 | struct sk_buff *rx_skb; | 217 | struct sk_buff *rx_skb; |
@@ -202,6 +222,9 @@ struct l2cap_conn { | |||
202 | struct l2cap_chan_list chan_list; | 222 | struct l2cap_chan_list chan_list; |
203 | }; | 223 | }; |
204 | 224 | ||
225 | #define L2CAP_INFO_CL_MTU_REQ_SENT 0x01 | ||
226 | #define L2CAP_INFO_FEAT_MASK_REQ_SENT 0x02 | ||
227 | |||
205 | /* ----- L2CAP channel and socket info ----- */ | 228 | /* ----- L2CAP channel and socket info ----- */ |
206 | #define l2cap_pi(sk) ((struct l2cap_pinfo *) sk) | 229 | #define l2cap_pi(sk) ((struct l2cap_pinfo *) sk) |
207 | 230 | ||
@@ -221,7 +244,6 @@ struct l2cap_pinfo { | |||
221 | __u8 conf_len; | 244 | __u8 conf_len; |
222 | __u8 conf_state; | 245 | __u8 conf_state; |
223 | __u8 conf_retry; | 246 | __u8 conf_retry; |
224 | __u16 conf_mtu; | ||
225 | 247 | ||
226 | __u8 ident; | 248 | __u8 ident; |
227 | 249 | ||
@@ -232,10 +254,11 @@ struct l2cap_pinfo { | |||
232 | struct sock *prev_c; | 254 | struct sock *prev_c; |
233 | }; | 255 | }; |
234 | 256 | ||
235 | #define L2CAP_CONF_REQ_SENT 0x01 | 257 | #define L2CAP_CONF_REQ_SENT 0x01 |
236 | #define L2CAP_CONF_INPUT_DONE 0x02 | 258 | #define L2CAP_CONF_INPUT_DONE 0x02 |
237 | #define L2CAP_CONF_OUTPUT_DONE 0x04 | 259 | #define L2CAP_CONF_OUTPUT_DONE 0x04 |
238 | #define L2CAP_CONF_MAX_RETRIES 2 | 260 | |
261 | #define L2CAP_CONF_MAX_RETRIES 2 | ||
239 | 262 | ||
240 | void l2cap_load(void); | 263 | void l2cap_load(void); |
241 | 264 | ||