NSMBW-Decomp
A decompilation of New Super Mario Bros. Wii
Loading...
Searching...
No Matches
l2cdefs.h
1
/******************************************************************************
2
*
3
* Copyright (C) 1999-2012 Broadcom Corporation
4
*
5
* Licensed under the Apache License, Version 2.0 (the "License");
6
* you may not use this file except in compliance with the License.
7
* You may obtain a copy of the License at:
8
*
9
* http://www.apache.org/licenses/LICENSE-2.0
10
*
11
* Unless required by applicable law or agreed to in writing, software
12
* distributed under the License is distributed on an "AS IS" BASIS,
13
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
* See the License for the specific language governing permissions and
15
* limitations under the License.
16
*
17
******************************************************************************/
18
19
#ifndef L2CDEFS_H
20
#define L2CDEFS_H
21
22
/* L2CAP command codes
23
*/
24
#define L2CAP_CMD_REJECT 0x01
25
#define L2CAP_CMD_CONN_REQ 0x02
26
#define L2CAP_CMD_CONN_RSP 0x03
27
#define L2CAP_CMD_CONFIG_REQ 0x04
28
#define L2CAP_CMD_CONFIG_RSP 0x05
29
#define L2CAP_CMD_DISC_REQ 0x06
30
#define L2CAP_CMD_DISC_RSP 0x07
31
#define L2CAP_CMD_ECHO_REQ 0x08
32
#define L2CAP_CMD_ECHO_RSP 0x09
33
#define L2CAP_CMD_INFO_REQ 0x0A
34
#define L2CAP_CMD_INFO_RSP 0x0B
35
#define L2CAP_CMD_AMP_CONN_REQ 0x0C
36
#define L2CAP_CMD_AMP_CONN_RSP 0x0D
37
#define L2CAP_CMD_AMP_MOVE_REQ 0x0E
38
#define L2CAP_CMD_AMP_MOVE_RSP 0x0F
39
#define L2CAP_CMD_AMP_MOVE_CFM 0x10
40
#define L2CAP_CMD_AMP_MOVE_CFM_RSP 0x11
41
#define L2CAP_CMD_BLE_UPDATE_REQ 0x12
42
#define L2CAP_CMD_BLE_UPDATE_RSP 0x13
43
44
45
/* Define some packet and header lengths
46
*/
47
#define L2CAP_PKT_OVERHEAD 4
/* Length and CID */
48
#define L2CAP_CMD_OVERHEAD 4
/* Cmd code, Id and length */
49
#define L2CAP_CMD_REJECT_LEN 2
/* Reason (data is optional) */
50
#define L2CAP_CONN_REQ_LEN 4
/* PSM and source CID */
51
#define L2CAP_CONN_RSP_LEN 8
/* Dest CID, source CID, reason, status */
52
#define L2CAP_CONFIG_REQ_LEN 4
/* Dest CID, flags (data is optional) */
53
#define L2CAP_CONFIG_RSP_LEN 6
/* Dest CID, flags, result,data optional*/
54
#define L2CAP_DISC_REQ_LEN 4
/* Dest CID, source CID */
55
#define L2CAP_DISC_RSP_LEN 4
/* Dest CID, source CID */
56
#define L2CAP_ECHO_REQ_LEN 0
/* Data is optional */
57
#define L2CAP_ECHO_RSP_LEN 0
/* Data is optional */
58
#define L2CAP_INFO_REQ_LEN 2
/* Info type */
59
#define L2CAP_INFO_RSP_LEN 4
/* Info type, result (data is optional) */
60
#define L2CAP_BCST_OVERHEAD 2
/* Additional broadcast packet overhead */
61
#define L2CAP_UCD_OVERHEAD 2
/* Additional connectionless packet overhead */
62
63
#define L2CAP_AMP_CONN_REQ_LEN 5
/* PSM, CID, and remote controller ID */
64
#define L2CAP_AMP_MOVE_REQ_LEN 3
/* CID and remote controller ID */
65
#define L2CAP_AMP_MOVE_RSP_LEN 4
/* CID and result */
66
#define L2CAP_AMP_MOVE_CFM_LEN 4
/* CID and result */
67
#define L2CAP_AMP_MOVE_CFM_RSP_LEN 2
/* CID */
68
69
#define L2CAP_CMD_BLE_UPD_REQ_LEN 8
/* Min and max interval, latency, tout */
70
#define L2CAP_CMD_BLE_UPD_RSP_LEN 2
/* Result */
71
72
73
/* Define the packet boundary flags
74
*/
75
#if (L2CAP_NON_FLUSHABLE_PB_INCLUDED == TRUE)
76
#define L2CAP_PKT_START_FLUSHABLE 2
77
#define L2CAP_PKT_START_NON_FLUSHABLE 0
78
#endif
79
#define L2CAP_COMPLETE_AMP_PKT 3
/* complete L2CAP packet on AMP HCI */
80
#define L2CAP_PKT_START 2
81
#define L2CAP_PKT_CONTINUE 1
82
#define L2CAP_MASK_FLAG 0x0FFF
83
#define L2CAP_PKT_TYPE_SHIFT 12
84
#define L2CAP_PKT_TYPE_MASK 3
85
86
87
/* Define the L2CAP connection result codes
88
*/
89
#define L2CAP_CONN_OK 0
90
#define L2CAP_CONN_PENDING 1
91
#define L2CAP_CONN_NO_PSM 2
92
#define L2CAP_CONN_SECURITY_BLOCK 3
93
#define L2CAP_CONN_NO_RESOURCES 4
94
#define L2CAP_CONN_BAD_CTLR_ID 5
/* AMP related */
95
#define L2CAP_CONN_TIMEOUT 0xEEEE
96
#define L2CAP_CONN_AMP_FAILED 254
97
#define L2CAP_CONN_NO_LINK 255
/* Add a couple of our own for internal use */
98
#define L2CAP_CONN_CANCEL 256
/* L2CAP connection cancelled */
99
100
101
/* Define L2CAP Move Channel Response result codes
102
*/
103
#define L2CAP_MOVE_OK 0
104
#define L2CAP_MOVE_PENDING 1
105
#define L2CAP_MOVE_CTRL_ID_NOT_SUPPORT 2
106
#define L2CAP_MOVE_SAME_CTRLR_ID 3
107
#define L2CAP_MOVE_CONFIG_NOT_SUPPORTED 4
108
#define L2CAP_MOVE_CHAN_COLLISION 5
109
#define L2CAP_MOVE_NOT_ALLOWED 6
110
111
112
/* Define L2CAP Move Channel Confirmation result codes
113
*/
114
#define L2CAP_MOVE_CFM_OK 0
115
#define L2CAP_MOVE_CFM_REFUSED 1
116
117
118
/* Define the L2CAP command reject reason codes
119
*/
120
#define L2CAP_CMD_REJ_NOT_UNDERSTOOD 0
121
#define L2CAP_CMD_REJ_MTU_EXCEEDED 1
122
#define L2CAP_CMD_REJ_INVALID_CID 2
123
124
125
/* L2CAP Predefined CIDs (0x0004-0x003E Reserved)
126
*/
127
#define L2CAP_SIGNALLING_CID 1
128
#define L2CAP_CONNECTIONLESS_CID 2
129
#define L2CAP_AMP_CID 3
130
#define L2CAP_ATT_CID 4
131
#define L2CAP_BLE_SIGNALLING_CID 5
132
#define L2CAP_SMP_CID 6
133
#define L2CAP_AMP_TEST_CID 0x003F
134
#define L2CAP_BASE_APPL_CID 0x0040
135
136
/* Fixed Channels mask bits
137
*/
138
#define L2CAP_FIXED_CHNL_SIG_BIT (1 << L2CAP_SIGNALLING_CID)
/* Signal Channel Supported (Mandatory) */
139
#define L2CAP_FIXED_CHNL_CNCTLESS_BIT (1 << L2CAP_CONNECTIONLESS_CID)
/* Connectionless Reception */
140
#define L2CAP_FIXED_CHNL_AMP_BIT (1 << L2CAP_AMP_CID)
/* AMP Manager Supported */
141
#define L2CAP_FIXED_CHNL_ATT_BIT (1 << L2CAP_ATT_CID)
/* Attribute protocol Supported */
142
#define L2CAP_FIXED_CHNL_BLE_SIG_BIT (1 << L2CAP_BLE_SIGNALLING_CID)
/* BLE Signalling Supported */
143
#define L2CAP_FIXED_CHNL_SMP_BIT (1 << L2CAP_SMP_CID)
/* BLE Security Manager Supported */
144
145
146
147
/* Define the L2CAP configuration result codes
148
*/
149
#define L2CAP_CFG_OK 0
150
#define L2CAP_CFG_UNACCEPTABLE_PARAMS 1
151
#define L2CAP_CFG_FAILED_NO_REASON 2
152
#define L2CAP_CFG_UNKNOWN_OPTIONS 3
153
#define L2CAP_CFG_PENDING 4
154
#define L2CAP_CFG_FLOW_SPEC_REJECTED 5
155
156
157
/* Define the L2CAP configuration option types
158
*/
159
#define L2CAP_CFG_TYPE_MTU 0x01
160
#define L2CAP_CFG_TYPE_FLUSH_TOUT 0x02
161
#define L2CAP_CFG_TYPE_QOS 0x03
162
#define L2CAP_CFG_TYPE_FCR 0x04
163
#define L2CAP_CFG_TYPE_FCS 0x05
164
#define L2CAP_CFG_TYPE_EXT_FLOW 0x06
165
#define L2CAP_CFG_TYPE_EXT_WIN_SIZE 0x07
166
167
#define L2CAP_CFG_MTU_OPTION_LEN 2
/* MTU option length */
168
#define L2CAP_CFG_FLUSH_OPTION_LEN 2
/* Flush option len */
169
#define L2CAP_CFG_QOS_OPTION_LEN 22
/* QOS option length */
170
#define L2CAP_CFG_FCR_OPTION_LEN 9
/* FCR option length */
171
#define L2CAP_CFG_FCS_OPTION_LEN 1
/* FCR option length */
172
#define L2CAP_CFG_EXT_FLOW_OPTION_LEN 16
/* Extended Flow Spec */
173
#define L2CAP_CFG_EXT_WIN_SIZE_LEN 2
/* Ext window size length */
174
#define L2CAP_CFG_OPTION_OVERHEAD 2
/* Type and length */
175
176
/* Configuration Cmd/Rsp Flags mask
177
*/
178
#define L2CAP_CFG_FLAGS_MASK_CONT 0x0001
/* Flags mask: Continuation */
179
180
/* FCS Check Option values
181
*/
182
#define L2CAP_CFG_FCS_BYPASS 0
/* Bypass the FCS in streaming or ERTM modes */
183
#define L2CAP_CFG_FCS_USE 1
/* Use the FCS in streaming or ERTM modes [default] */
184
185
/* Default values for configuration
186
*/
187
#define L2CAP_NO_AUTOMATIC_FLUSH 0xFFFF
188
#define L2CAP_NO_RETRANSMISSION 0x0001
189
190
#define L2CAP_DEFAULT_MTU (672)
191
#define L2CAP_DEFAULT_FLUSH_TO L2CAP_NO_AUTOMATIC_FLUSH
192
#define L2CAP_DEFAULT_SERV_TYPE 1
193
#define L2CAP_DEFAULT_TOKEN_RATE 0
194
#define L2CAP_DEFAULT_BUCKET_SIZE 0
195
#define L2CAP_DEFAULT_PEAK_BANDWIDTH 0
196
#define L2CAP_DEFAULT_LATENCY 0xFFFFFFFF
197
#define L2CAP_DEFAULT_DELAY 0xFFFFFFFF
198
#define L2CAP_DEFAULT_FCS L2CAP_CFG_FCS_USE
199
200
201
/* Define the L2CAP disconnect result codes
202
*/
203
#define L2CAP_DISC_OK 0
204
#define L2CAP_DISC_TIMEOUT 0xEEEE
205
206
/* Define the L2CAP info resp result codes
207
*/
208
#define L2CAP_INFO_RESP_RESULT_SUCCESS 0
209
#define L2CAP_INFO_RESP_RESULT_NOT_SUPPORTED 1
210
211
/* Define the info-type fields of information request & response
212
*/
213
#define L2CAP_CONNLESS_MTU_INFO_TYPE 0x0001
214
#define L2CAP_EXTENDED_FEATURES_INFO_TYPE 0x0002
/* Used in Information Req/Response */
215
#define L2CAP_FIXED_CHANNELS_INFO_TYPE 0x0003
/* Used in AMP */
216
217
#define L2CAP_CONNLESS_MTU_INFO_SIZE 2
/* Connectionless MTU size */
218
#define L2CAP_EXTENDED_FEATURES_ARRAY_SIZE 4
/* Extended features array size */
219
#define L2CAP_FIXED_CHNL_ARRAY_SIZE 8
/* Fixed channel array size */
220
221
/* Extended features mask bits
222
*/
223
#define L2CAP_EXTFEA_RTRANS 0x00000001
/* Retransmission Mode (Not Supported) */
224
#define L2CAP_EXTFEA_FC 0x00000002
/* Flow Control Mode (Not Supported) */
225
#define L2CAP_EXTFEA_QOS 0x00000004
226
#define L2CAP_EXTFEA_ENH_RETRANS 0x00000008
/* Enhanced retransmission mode */
227
#define L2CAP_EXTFEA_STREAM_MODE 0x00000010
/* Streaming Mode */
228
#define L2CAP_EXTFEA_NO_CRC 0x00000020
/* Optional FCS (if set No FCS desired) */
229
#define L2CAP_EXTFEA_EXT_FLOW_SPEC 0x00000040
/* Extended flow spec */
230
#define L2CAP_EXTFEA_FIXED_CHNLS 0x00000080
/* Fixed channels */
231
#define L2CAP_EXTFEA_EXT_WINDOW 0x00000100
/* Extended Window Size */
232
#define L2CAP_EXTFEA_UCD_RECEPTION 0x00000200
/* Unicast Connectionless Data Reception */
233
234
/* Mask for locally supported features used in Information Response (default to none) */
235
#ifndef L2CAP_EXTFEA_SUPPORTED_MASK
236
#define L2CAP_EXTFEA_SUPPORTED_MASK 0
237
#endif
238
239
/* Mask for LE supported features used in Information Response (default to none) */
240
#ifndef L2CAP_BLE_EXTFEA_MASK
241
#define L2CAP_BLE_EXTFEA_MASK 0
242
#endif
243
244
/* Define a value that tells L2CAP to use the default HCI ACL buffer pool */
245
#define L2CAP_DEFAULT_ERM_POOL_ID 0xFF
246
/* Define a value that tells L2CAP to use the default MPS */
247
#define L2CAP_DEFAULT_ERM_MPS 0x0000
248
249
#define L2CAP_FCR_OVERHEAD 2
/* Control word */
250
#define L2CAP_FCS_LEN 2
/* FCS takes 2 bytes */
251
#define L2CAP_SDU_LEN_OVERHEAD 2
/* SDU length field is 2 bytes */
252
#define L2CAP_SDU_LEN_OFFSET 2
/* SDU length offset is 2 bytes */
253
#define L2CAP_EXT_CONTROL_OVERHEAD 4
/* Extended Control Field */
254
#define L2CAP_MAX_HEADER_FCS (L2CAP_PKT_OVERHEAD + L2CAP_EXT_CONTROL_OVERHEAD + L2CAP_SDU_LEN_OVERHEAD + L2CAP_FCS_LEN)
255
/* length(2), channel(2), control(4), SDU length(2) FCS(2) */
256
/* Part of L2CAP_MIN_OFFSET that is not part of L2CAP
257
*/
258
#define L2CAP_OFFSET_WO_L2HDR (L2CAP_MIN_OFFSET-(L2CAP_PKT_OVERHEAD+L2CAP_FCR_OVERHEAD))
259
260
/* SAR bits in the control word
261
*/
262
#define L2CAP_FCR_UNSEG_SDU 0x0000
/* Control word to begin with for unsegmented PDU*/
263
#define L2CAP_FCR_START_SDU 0x4000
/* ...for Starting PDU of a semented SDU */
264
#define L2CAP_FCR_END_SDU 0x8000
/* ...for ending PDU of a segmented SDU */
265
#define L2CAP_FCR_CONT_SDU 0xc000
/* ...for continuation PDU of a segmented SDU */
266
267
/* Supervisory frame types
268
*/
269
#define L2CAP_FCR_SUP_RR 0x0000
/* Supervisory frame - RR */
270
#define L2CAP_FCR_SUP_REJ 0x0001
/* Supervisory frame - REJ */
271
#define L2CAP_FCR_SUP_RNR 0x0002
/* Supervisory frame - RNR */
272
#define L2CAP_FCR_SUP_SREJ 0x0003
/* Supervisory frame - SREJ */
273
274
#define L2CAP_FCR_SAR_BITS 0xC000
/* Mask to get the SAR bits from control word */
275
#define L2CAP_FCR_SAR_BITS_SHIFT 14
/* Bits to shift right to get the SAR bits from ctrl-word */
276
277
#define L2CAP_FCR_S_FRAME_BIT 0x0001
/* Mask to check if a PDU is S-frame */
278
#define L2CAP_FCR_REQ_SEQ_BITS 0x3F00
/* Mask to get the req-seq from control word */
279
#define L2CAP_FCR_REQ_SEQ_BITS_SHIFT 8
/* Bits to shift right to get the req-seq from ctrl-word */
280
#define L2CAP_FCR_TX_SEQ_BITS 0x007E
/* Mask on get the tx-seq from control word */
281
#define L2CAP_FCR_TX_SEQ_BITS_SHIFT 1
/* Bits to shift right to get the tx-seq from ctrl-word */
282
283
#define L2CAP_FCR_F_BIT 0x0080
/* F-bit in the control word (Sup and I frames) */
284
#define L2CAP_FCR_P_BIT 0x0010
/* P-bit in the control word (Sup frames only) */
285
286
#define L2CAP_FCR_F_BIT_SHIFT 7
287
#define L2CAP_FCR_P_BIT_SHIFT 4
288
289
#define L2CAP_FCR_SEG_BITS 0xC000
/* Mask to get the segmentation bits from ctrl-word */
290
#define L2CAP_FCR_SUP_SHIFT 2
/* Bits to shift right to get the S-bits from ctrl-word */
291
#define L2CAP_FCR_SUP_BITS 0x000C
/* Mask to get the supervisory bits from ctrl-word */
292
293
#define L2CAP_FCR_INIT_CRC 0
/* Initial state of the CRC register */
294
#define L2CAP_FCR_SEQ_MODULO 0x3F
/* Mask for sequence numbers (range 0 - 63) */
295
296
/*************************************************************************************************
297
** The following definitions are only used for internal testing of ERTM at the application level
298
*************************************************************************************************/
299
/* L2CA_SetupErtmTest() corruption test types */
300
#define L2CAP_FCR_TTYPE_CORR_IFRAME 0
/* Corrupt one or more I-frames, based on count */
301
#define L2CAP_FCR_TTYPE_CORR_SFRAME 1
/* Corrupt an S-frame, (acknowledgement) */
302
#define L2CAP_FCR_TTYPE_STOP_TEST 2
/* Used when turning off a test */
303
#define L2CAP_FCR_TTYPE_GET_CID 3
/* Returns RFCOMM cid when '0' is passed in cid argument */
304
305
/* L2CA_SetupErtmTest() Freq */
306
#define L2CAP_FCR_FREQ_NORMAL 0
/* A single test is run */
307
#define L2CAP_FCR_FREQ_RANDOM 1
/* Randomly loses or corrupts a packet */
308
309
#endif
include
lib
revolution
BTE
stack
include
l2cdefs.h
Made with ❤️ by
CLF78
and
RootCubed
. Logos by
Chasical
and
B1
. Website generated by
Doxygen
1.13.2