1 /******************************************************************************
2  *
3  *  Copyright (c) 2014 The Android Open Source Project
4  *  Copyright (C) 1999-2012 Broadcom Corporation
5  *
6  *  Licensed under the Apache License, Version 2.0 (the "License");
7  *  you may not use this file except in compliance with the License.
8  *  You may obtain a copy of the License at:
9  *
10  *  http://www.apache.org/licenses/LICENSE-2.0
11  *
12  *  Unless required by applicable law or agreed to in writing, software
13  *  distributed under the License is distributed on an "AS IS" BASIS,
14  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  *  See the License for the specific language governing permissions and
16  *  limitations under the License.
17  *
18  ******************************************************************************/
19 
20 #ifndef BT_TARGET_H
21 #define BT_TARGET_H
22 
23 #ifndef BUILDCFG
24 #define BUILDCFG
25 #endif
26 
27 #if !defined(HAS_BDROID_BUILDCFG) && !defined(HAS_NO_BDROID_BUILDCFG)
28 #error "An Android.mk file did not include bdroid_CFLAGS and possibly not bdorid_C_INCLUDES"
29 #endif
30 
31 #ifdef HAS_BDROID_BUILDCFG
32 #include "bdroid_buildcfg.h"
33 #endif
34 
35 #include "bt_types.h"   /* This must be defined AFTER buildcfg.h */
36 
37 /* Include common GKI definitions used by this platform */
38 #include "dyn_mem.h"    /* defines static and/or dynamic memory for components */
39 
40 //------------------Added from bdroid_buildcfg.h---------------------
41 #ifndef L2CAP_EXTFEA_SUPPORTED_MASK
42 #define L2CAP_EXTFEA_SUPPORTED_MASK (L2CAP_EXTFEA_ENH_RETRANS | L2CAP_EXTFEA_STREAM_MODE | L2CAP_EXTFEA_NO_CRC | L2CAP_EXTFEA_FIXED_CHNLS)
43 #endif
44 
45 #ifndef BTUI_OPS_FORMATS
46 #define BTUI_OPS_FORMATS (BTA_OP_VCARD21_MASK | BTA_OP_ANY_MASK)
47 #endif
48 
49 #ifndef BTA_RFC_MTU_SIZE
50 #define BTA_RFC_MTU_SIZE (L2CAP_MTU_SIZE-L2CAP_MIN_OFFSET-RFCOMM_DATA_OVERHEAD)
51 #endif
52 
53 #ifndef SBC_NO_PCM_CPY_OPTION
54 #define SBC_NO_PCM_CPY_OPTION FALSE
55 #endif
56 
57 #ifndef BTA_INCLUDED
58 #define BTA_INCLUDED TRUE
59 #endif
60 
61 #ifndef BTA_PAN_INCLUDED
62 #define BTA_PAN_INCLUDED TRUE
63 #endif
64 
65 #ifndef BTA_HH_INCLUDED
66 #define BTA_HH_INCLUDED TRUE
67 #endif
68 
69 #ifndef BTA_HH_ROLE
70 #define BTA_HH_ROLE BTA_MASTER_ROLE_PREF
71 #endif
72 
73 #ifndef BTA_HH_LE_INCLUDED
74 #define BTA_HH_LE_INCLUDED TRUE
75 #endif
76 
77 #ifndef BTA_AR_INCLUDED
78 #define BTA_AR_INCLUDED TRUE
79 #endif
80 
81 #ifndef BTA_AV_INCLUDED
82 #define BTA_AV_INCLUDED TRUE
83 #endif
84 
85 #ifndef BTA_GATT_INCLUDED
86 #define BTA_GATT_INCLUDED TRUE
87 #endif
88 
89 #ifndef BTA_AV_SINK_INCLUDED
90 #define BTA_AV_SINK_INCLUDED FALSE
91 #endif
92 
93 #ifndef BTA_DISABLE_DELAY
94 #define BTA_DISABLE_DELAY 200 /* in milliseconds */
95 #endif
96 
97 #ifndef SBC_FOR_EMBEDDED_LINUX
98 #define SBC_FOR_EMBEDDED_LINUX TRUE
99 #endif
100 
101 #ifndef AVDT_VERSION
102 #define AVDT_VERSION  0x0102
103 #endif
104 
105 #ifndef BTA_AG_AT_MAX_LEN
106 #define BTA_AG_AT_MAX_LEN  512
107 #endif
108 
109 #ifndef BTA_AVRCP_FF_RW_SUPPORT
110 #define BTA_AVRCP_FF_RW_SUPPORT TRUE
111 #endif
112 
113 #ifndef BTA_AG_SCO_PKT_TYPES
114 #define BTA_AG_SCO_PKT_TYPES  (BTM_SCO_LINK_ONLY_MASK | BTM_SCO_PKT_TYPES_MASK_EV3 |  BTM_SCO_PKT_TYPES_MASK_NO_3_EV3 | BTM_SCO_PKT_TYPES_MASK_NO_2_EV5 | BTM_SCO_PKT_TYPES_MASK_NO_3_EV5)
115 #endif
116 
117 #ifndef BTA_AV_RET_TOUT
118 #define BTA_AV_RET_TOUT 15
119 #endif
120 
121 #ifndef BTA_AV_CO_CP_SCMS_T
122 #define BTA_AV_CO_CP_SCMS_T  FALSE
123 #endif
124 
125 #ifndef BTIF_A2DP_SRC_SAMPLING_RATE
126 #define BTIF_A2DP_SRC_SAMPLING_RATE 44100
127 #endif
128 
129 #ifndef BTIF_A2DP_SRC_BIT_DEPTH
130 #define BTIF_A2DP_SRC_BIT_DEPTH 16
131 #endif
132 
133 #ifndef BTIF_A2DP_SRC_NUM_CHANNELS
134 #define BTIF_A2DP_SRC_NUM_CHANNELS 2
135 #endif
136 
137 /* This feature is used to enable interleaved scan */
138 #ifndef BTA_HOST_INTERLEAVE_SEARCH
139 #define BTA_HOST_INTERLEAVE_SEARCH FALSE
140 #endif
141 
142 #ifndef BT_USE_TRACES
143 #define BT_USE_TRACES  TRUE
144 #endif
145 
146 #ifndef BT_TRACE_VERBOSE
147 #define BT_TRACE_VERBOSE  FALSE
148 #endif
149 
150 #ifndef BTA_DM_SDP_DB_SIZE
151 #define BTA_DM_SDP_DB_SIZE  8000
152 #endif
153 
154 #ifndef HL_INCLUDED
155 #define HL_INCLUDED  TRUE
156 #endif
157 
158 #ifndef AG_VOICE_SETTINGS
159 #define AG_VOICE_SETTINGS  HCI_DEFAULT_VOICE_SETTINGS
160 #endif
161 
162 #ifndef BTIF_DM_OOB_TEST
163 #define BTIF_DM_OOB_TEST  TRUE
164 #endif
165 
166 // How long to wait before activating sniff mode after entering the
167 // idle state for FTS, OPS connections
168 #ifndef BTA_FTS_OPS_IDLE_TO_SNIFF_DELAY_MS
169 #define BTA_FTS_OPS_IDLE_TO_SNIFF_DELAY_MS 7000
170 #endif
171 
172 //------------------End added from bdroid_buildcfg.h---------------------
173 
174 
175 /******************************************************************************
176 **
177 ** Buffer sizes
178 **
179 ******************************************************************************/
180 
181 #ifndef BT_DEFAULT_BUFFER_SIZE
182 #define BT_DEFAULT_BUFFER_SIZE          (4096 + 16)
183 #endif
184 
185 #ifndef BT_SMALL_BUFFER_SIZE
186 #define BT_SMALL_BUFFER_SIZE            660
187 #endif
188 
189 /* Receives HCI events from the lower-layer. */
190 #ifndef HCI_CMD_BUF_SIZE
191 #define HCI_CMD_BUF_SIZE                BT_SMALL_BUFFER_SIZE
192 #endif
193 
194 /* Sends SDP data packets. */
195 #ifndef SDP_DATA_BUF_SIZE
196 #define SDP_DATA_BUF_SIZE               BT_DEFAULT_BUFFER_SIZE
197 #endif
198 
199 /* Sends RFCOMM command packets. */
200 #ifndef RFCOMM_CMD_BUF_SIZE
201 #define RFCOMM_CMD_BUF_SIZE             BT_SMALL_BUFFER_SIZE
202 #endif
203 
204 /* Sends RFCOMM data packets. */
205 #ifndef RFCOMM_DATA_BUF_SIZE
206 #define RFCOMM_DATA_BUF_SIZE            BT_DEFAULT_BUFFER_SIZE
207 #endif
208 
209 /* Sends L2CAP packets to the peer and HCI messages to the controller. */
210 #ifndef L2CAP_CMD_BUF_SIZE
211 #define L2CAP_CMD_BUF_SIZE              BT_SMALL_BUFFER_SIZE
212 #endif
213 
214 #ifndef L2CAP_USER_TX_BUF_SIZE
215 #define L2CAP_USER_TX_BUF_SIZE          BT_DEFAULT_BUFFER_SIZE
216 #endif
217 
218 #ifndef L2CAP_USER_RX_BUF_SIZE
219 #define L2CAP_USER_RX_BUF_SIZE          BT_DEFAULT_BUFFER_SIZE
220 #endif
221 
222 /* Sends L2CAP segmented packets in ERTM mode */
223 #ifndef L2CAP_FCR_TX_BUF_SIZE
224 #define L2CAP_FCR_TX_BUF_SIZE           BT_DEFAULT_BUFFER_SIZE
225 #endif
226 
227 /* Receives L2CAP segmented packets in ERTM mode */
228 #ifndef L2CAP_FCR_RX_BUF_SIZE
229 #define L2CAP_FCR_RX_BUF_SIZE           BT_DEFAULT_BUFFER_SIZE
230 #endif
231 
232 #ifndef L2CAP_FCR_ERTM_BUF_SIZE
233 #define L2CAP_FCR_ERTM_BUF_SIZE         (10240 + 24)
234 #endif
235 
236 /* Number of ACL buffers to assign to LE */
237 /*
238  * TODO: Do we need this?
239  * It was used when the HCI buffers were shared with BR/EDR.
240  */
241 #ifndef L2C_DEF_NUM_BLE_BUF_SHARED
242 #define L2C_DEF_NUM_BLE_BUF_SHARED      1
243 #endif
244 
245 /* Used by BTM when it sends HCI commands to the controller. */
246 #ifndef BTM_CMD_BUF_SIZE
247 #define BTM_CMD_BUF_SIZE                BT_SMALL_BUFFER_SIZE
248 #endif
249 
250 #ifndef OBX_LRG_DATA_BUF_SIZE
251 #define OBX_LRG_DATA_BUF_SIZE           (8080 + 26)
252 #endif
253 
254 /* Used to send data to L2CAP. */
255 #ifndef GAP_DATA_BUF_SIZE
256 #define GAP_DATA_BUF_SIZE               BT_DEFAULT_BUFFER_SIZE
257 #endif
258 
259 /* BNEP data and protocol messages. */
260 #ifndef BNEP_BUF_SIZE
261 #define BNEP_BUF_SIZE                   BT_DEFAULT_BUFFER_SIZE
262 #endif
263 
264 /* AVDTP buffer size for protocol messages */
265 #ifndef AVDT_CMD_BUF_SIZE
266 #define AVDT_CMD_BUF_SIZE               BT_SMALL_BUFFER_SIZE
267 #endif
268 
269 /* AVDTP buffer size for media packets in case of fragmentation */
270 #ifndef AVDT_DATA_BUF_SIZE
271 #define AVDT_DATA_BUF_SIZE              BT_DEFAULT_BUFFER_SIZE
272 #endif
273 
274 #ifndef PAN_BUF_SIZE
275 #define PAN_BUF_SIZE                    BT_DEFAULT_BUFFER_SIZE
276 #endif
277 
278 /* Maximum number of buffers to allocate for PAN */
279 #ifndef PAN_BUF_MAX
280 #define PAN_BUF_MAX                     100
281 #endif
282 
283 /* AVCTP buffer size for protocol messages */
284 #ifndef AVCT_CMD_BUF_SIZE
285 #define AVCT_CMD_BUF_SIZE               288
286 #endif
287 
288 /* AVRCP buffer size for protocol messages */
289 #ifndef AVRC_CMD_BUF_SIZE
290 #define AVRC_CMD_BUF_SIZE               288
291 #endif
292 
293 /* AVRCP Metadata buffer size for protocol messages */
294 #ifndef AVRC_META_CMD_BUF_SIZE
295 #define AVRC_META_CMD_BUF_SIZE          BT_SMALL_BUFFER_SIZE
296 #endif
297 
298 #ifndef BTA_HL_LRG_DATA_BUF_SIZE
299 #define BTA_HL_LRG_DATA_BUF_SIZE        (10240 + 24)
300 #endif
301 
302 /* GATT Server Database buffer size */
303 #ifndef GATT_DB_BUF_SIZE
304 #define GATT_DB_BUF_SIZE                128
305 #endif
306 
307 /* GATT Data sending buffer size */
308 #ifndef GATT_DATA_BUF_SIZE
309 #define GATT_DATA_BUF_SIZE              BT_DEFAULT_BUFFER_SIZE
310 #endif
311 
312 /******************************************************************************
313 **
314 ** BTM
315 **
316 ******************************************************************************/
317 
318 /* Cancel Inquiry on incoming SSP */
319 #ifndef BTM_NO_SSP_ON_INQUIRY
320 #define BTM_NO_SSP_ON_INQUIRY   FALSE
321 #endif
322 
323 /* Includes SCO if TRUE */
324 #ifndef BTM_SCO_INCLUDED
325 #define BTM_SCO_INCLUDED        TRUE    /* TRUE includes SCO code */
326 #endif
327 
328 /* Includes SCO if TRUE */
329 #ifndef BTM_SCO_HCI_INCLUDED
330 #define BTM_SCO_HCI_INCLUDED    FALSE   /* TRUE includes SCO over HCI code */
331 #endif
332 
333 /* Includes WBS if TRUE */
334 #ifndef BTM_WBS_INCLUDED
335 #define BTM_WBS_INCLUDED        FALSE   /* TRUE includes WBS code */
336 #endif
337 
338 /*  This is used to work around a controller bug that doesn't like Disconnect
339 **  issued while there is a role switch in progress
340 */
341 #ifndef BTM_DISC_DURING_RS
342 #define BTM_DISC_DURING_RS TRUE
343 #endif
344 
345 /**************************
346 ** Initial SCO TX credit
347 *************************/
348 /* max TX SCO data packet size */
349 #ifndef BTM_SCO_DATA_SIZE_MAX
350 #define BTM_SCO_DATA_SIZE_MAX       240
351 #endif
352 
353 /* The size in bytes of the BTM inquiry database. */
354 #ifndef BTM_INQ_DB_SIZE
355 #define BTM_INQ_DB_SIZE             40
356 #endif
357 
358 /* The default scan mode */
359 #ifndef BTM_DEFAULT_SCAN_TYPE
360 #define BTM_DEFAULT_SCAN_TYPE       BTM_SCAN_TYPE_INTERLACED
361 #endif
362 
363 /* Should connections to unknown devices be allowed when not discoverable? */
364 #ifndef BTM_ALLOW_CONN_IF_NONDISCOVER
365 #define BTM_ALLOW_CONN_IF_NONDISCOVER   TRUE
366 #endif
367 
368 /* Sets the Page_Scan_Window:  the length of time that the device is performing a page scan. */
369 #ifndef BTM_DEFAULT_CONN_WINDOW
370 #define BTM_DEFAULT_CONN_WINDOW     0x0012
371 #endif
372 
373 /* Sets the Page_Scan_Activity:  the interval between the start of two consecutive page scans. */
374 #ifndef BTM_DEFAULT_CONN_INTERVAL
375 #define BTM_DEFAULT_CONN_INTERVAL   0x0800
376 #endif
377 
378 /* When automatic inquiry scan is enabled, this sets the inquiry scan window. */
379 #ifndef BTM_DEFAULT_DISC_WINDOW
380 #define BTM_DEFAULT_DISC_WINDOW     0x0012
381 #endif
382 
383 /* When automatic inquiry scan is enabled, this sets the inquiry scan interval. */
384 #ifndef BTM_DEFAULT_DISC_INTERVAL
385 #define BTM_DEFAULT_DISC_INTERVAL   0x0800
386 #endif
387 
388 /* Default class of device
389 * {SERVICE_CLASS, MAJOR_CLASS, MINOR_CLASS}
390 *
391 * SERVICE_CLASS:0x5A (Bit17 -Networking,Bit19 - Capturing,Bit20 -Object Transfer,Bit22 -Telephony)
392 * MAJOR_CLASS:0x02 - PHONE
393 * MINOR_CLASS:0x0C - SMART_PHONE
394 *
395 */
396 #ifndef BTA_DM_COD
397 #define BTA_DM_COD {0x5A, 0x02, 0x0C}
398 #endif
399 
400 /* The number of SCO links. */
401 #ifndef BTM_MAX_SCO_LINKS
402 #define BTM_MAX_SCO_LINKS           3
403 #endif
404 
405 /* The preferred type of SCO links (2-eSCO, 0-SCO). */
406 #ifndef BTM_DEFAULT_SCO_MODE
407 #define BTM_DEFAULT_SCO_MODE        2
408 #endif
409 
410 /* The number of security records for peer devices. */
411 #ifndef BTM_SEC_MAX_DEVICE_RECORDS
412 #define BTM_SEC_MAX_DEVICE_RECORDS  100
413 #endif
414 
415 /* The number of security records for services. */
416 #ifndef BTM_SEC_MAX_SERVICE_RECORDS
417 #define BTM_SEC_MAX_SERVICE_RECORDS 32
418 #endif
419 
420 /* If True, force a retrieval of remote device name for each bond in case it's changed */
421 #ifndef BTM_SEC_FORCE_RNR_FOR_DBOND
422 #define BTM_SEC_FORCE_RNR_FOR_DBOND  FALSE
423 #endif
424 
425 /* Maximum device name length used in btm database. */
426 #ifndef BTM_MAX_REM_BD_NAME_LEN
427 #define BTM_MAX_REM_BD_NAME_LEN     248
428 #endif
429 
430 /* Maximum local device name length stored btm database.
431   '0' disables storage of the local name in BTM */
432 #ifndef BTM_MAX_LOC_BD_NAME_LEN
433 #define BTM_MAX_LOC_BD_NAME_LEN     248
434 #endif
435 
436 /* Fixed Default String. When this is defined as null string, the device's
437  * product model name is used as the default local name.
438  */
439 #ifndef BTM_DEF_LOCAL_NAME
440 #define BTM_DEF_LOCAL_NAME      ""
441 #endif
442 
443 /* Maximum service name stored with security authorization (0 if not needed) */
444 #ifndef BTM_SEC_SERVICE_NAME_LEN
445 #define BTM_SEC_SERVICE_NAME_LEN    BT_MAX_SERVICE_NAME_LEN
446 #endif
447 
448 /* Maximum length of the service name. */
449 #ifndef BT_MAX_SERVICE_NAME_LEN
450 #define BT_MAX_SERVICE_NAME_LEN     21
451 #endif
452 
453 /* The maximum number of clients that can register with the power manager. */
454 #ifndef BTM_MAX_PM_RECORDS
455 #define BTM_MAX_PM_RECORDS          2
456 #endif
457 
458 /* This is set to show debug trace messages for the power manager. */
459 #ifndef BTM_PM_DEBUG
460 #define BTM_PM_DEBUG                FALSE
461 #endif
462 
463 /* This is set to TRUE if link is to be unparked due to BTM_CreateSCO API. */
464 #ifndef BTM_SCO_WAKE_PARKED_LINK
465 #define BTM_SCO_WAKE_PARKED_LINK    TRUE
466 #endif
467 
468 /* If the user does not respond to security process requests within this many seconds,
469  * a negative response would be sent automatically.
470  * 30 is LMP response timeout value */
471 #ifndef BTM_SEC_TIMEOUT_VALUE
472 #define BTM_SEC_TIMEOUT_VALUE           35
473 #endif
474 
475 /* Maximum number of callbacks that can be registered using BTM_RegisterForVSEvents */
476 #ifndef BTM_MAX_VSE_CALLBACKS
477 #define BTM_MAX_VSE_CALLBACKS           3
478 #endif
479 
480 /******************************************
481 **    Lisbon Features
482 *******************************************/
483 /* This is set to TRUE if the FEC is required for EIR packet. */
484 #ifndef BTM_EIR_DEFAULT_FEC_REQUIRED
485 #define BTM_EIR_DEFAULT_FEC_REQUIRED    TRUE
486 #endif
487 
488 /* The IO capability of the local device (for Simple Pairing) */
489 #ifndef BTM_LOCAL_IO_CAPS
490 #define BTM_LOCAL_IO_CAPS               BTM_IO_CAP_IO
491 #endif
492 
493 #ifndef BTM_LOCAL_IO_CAPS_BLE
494 #define BTM_LOCAL_IO_CAPS_BLE           BTM_IO_CAP_KBDISP
495 #endif
496 
497 /* The default MITM Protection Requirement (for Simple Pairing)
498  * Possible values are BTM_AUTH_SP_YES or BTM_AUTH_SP_NO */
499 #ifndef BTM_DEFAULT_AUTH_REQ
500 #define BTM_DEFAULT_AUTH_REQ            BTM_AUTH_SP_NO
501 #endif
502 
503 /* The default MITM Protection Requirement for dedicated bonding using Simple Pairing
504  * Possible values are BTM_AUTH_AP_YES or BTM_AUTH_AP_NO */
505 #ifndef BTM_DEFAULT_DD_AUTH_REQ
506 #define BTM_DEFAULT_DD_AUTH_REQ            BTM_AUTH_AP_YES
507 #endif
508 
509 /* TRUE to include Sniff Subrating */
510 #ifndef BTM_SSR_INCLUDED
511 #define BTM_SSR_INCLUDED                TRUE
512 #endif
513 
514 /*************************
515 ** End of Lisbon Features
516 **************************/
517 
518 /* 4.1/4.2 secure connections feature */
519 #ifndef SC_MODE_INCLUDED
520 #define SC_MODE_INCLUDED                TRUE
521 #endif
522 
523 /* Used for conformance testing ONLY */
524 #ifndef BTM_BLE_CONFORMANCE_TESTING
525 #define BTM_BLE_CONFORMANCE_TESTING           FALSE
526 #endif
527 
528 /******************************************************************************
529 **
530 ** L2CAP
531 **
532 ******************************************************************************/
533 
534 /* The maximum number of simultaneous links that L2CAP can support. */
535 #ifndef MAX_ACL_CONNECTIONS
536 #define MAX_L2CAP_LINKS             7
537 #else
538 #define MAX_L2CAP_LINKS             MAX_ACL_CONNECTIONS
539 #endif
540 
541 /* The maximum number of simultaneous channels that L2CAP can support. */
542 #ifndef MAX_L2CAP_CHANNELS
543 #define MAX_L2CAP_CHANNELS          16
544 #endif
545 
546 /* The maximum number of simultaneous applications that can register with L2CAP. */
547 #ifndef MAX_L2CAP_CLIENTS
548 #define MAX_L2CAP_CLIENTS           15
549 #endif
550 
551 /* The number of seconds of link inactivity before a link is disconnected. */
552 #ifndef L2CAP_LINK_INACTIVITY_TOUT
553 #define L2CAP_LINK_INACTIVITY_TOUT  4
554 #endif
555 
556 /* The number of seconds of link inactivity after bonding before a link is disconnected. */
557 #ifndef L2CAP_BONDING_TIMEOUT
558 #define L2CAP_BONDING_TIMEOUT       3
559 #endif
560 
561 /* The time from the HCI connection complete to disconnect if no channel is established. */
562 #ifndef L2CAP_LINK_STARTUP_TOUT
563 #define L2CAP_LINK_STARTUP_TOUT     60
564 #endif
565 
566 /* The L2CAP MTU; must be in accord with the HCI ACL buffer size. */
567 #ifndef L2CAP_MTU_SIZE
568 #define L2CAP_MTU_SIZE              1691
569 #endif
570 
571 /*
572  * The L2CAP MPS over Bluetooth; must be in accord with the FCR tx buffer size
573  * and ACL down buffer size.
574  */
575 #ifndef L2CAP_MPS_OVER_BR_EDR
576 #define L2CAP_MPS_OVER_BR_EDR       1010
577 #endif
578 
579 /* If host flow control enabled, this is the number of buffers the controller can have unacknowledged. */
580 #ifndef L2CAP_HOST_FC_ACL_BUFS
581 #define L2CAP_HOST_FC_ACL_BUFS      20
582 #endif
583 
584 /* This is set to enable L2CAP to  take the ACL link out of park mode when ACL data is to be sent. */
585 #ifndef L2CAP_WAKE_PARKED_LINK
586 #define L2CAP_WAKE_PARKED_LINK      TRUE
587 #endif
588 
589 /* Whether link wants to be the master or the slave. */
590 #ifndef L2CAP_DESIRED_LINK_ROLE
591 #define L2CAP_DESIRED_LINK_ROLE     HCI_ROLE_SLAVE
592 #endif
593 
594 /* Include Non-Flushable Packet Boundary Flag feature of Lisbon */
595 #ifndef L2CAP_NON_FLUSHABLE_PB_INCLUDED
596 #define L2CAP_NON_FLUSHABLE_PB_INCLUDED     TRUE
597 #endif
598 
599 /* Minimum number of ACL credit for high priority link */
600 #ifndef L2CAP_HIGH_PRI_MIN_XMIT_QUOTA
601 #define L2CAP_HIGH_PRI_MIN_XMIT_QUOTA       5
602 #endif
603 
604 /* used for monitoring HCI ACL credit management */
605 #ifndef L2CAP_HCI_FLOW_CONTROL_DEBUG
606 #define L2CAP_HCI_FLOW_CONTROL_DEBUG        TRUE
607 #endif
608 
609 /* Unicast Connectionless Data */
610 #ifndef L2CAP_UCD_INCLUDED
611 #define L2CAP_UCD_INCLUDED                  FALSE
612 #endif
613 
614 /* Unicast Connectionless Data MTU */
615 #ifndef L2CAP_UCD_MTU
616 #define L2CAP_UCD_MTU                       L2CAP_MTU_SIZE
617 #endif
618 
619 /* Unicast Connectionless Data Idle Timeout */
620 #ifndef L2CAP_UCD_IDLE_TIMEOUT
621 #define L2CAP_UCD_IDLE_TIMEOUT              2
622 #endif
623 
624 /* Unicast Connectionless Data Idle Timeout */
625 #ifndef L2CAP_UCD_CH_PRIORITY
626 #define L2CAP_UCD_CH_PRIORITY               L2CAP_CHNL_PRIORITY_MEDIUM
627 #endif
628 
629 /* Used for features using fixed channels; set to zero if no fixed channels supported (BLE, etc.) */
630 /* Excluding L2CAP signaling channel and UCD */
631 #ifndef L2CAP_NUM_FIXED_CHNLS
632 #define L2CAP_NUM_FIXED_CHNLS               32
633 #endif
634 
635 /* First fixed channel supported */
636 #ifndef L2CAP_FIRST_FIXED_CHNL
637 #define L2CAP_FIRST_FIXED_CHNL              4
638 #endif
639 
640 #ifndef L2CAP_LAST_FIXED_CHNL
641 #define L2CAP_LAST_FIXED_CHNL           (L2CAP_FIRST_FIXED_CHNL + L2CAP_NUM_FIXED_CHNLS - 1)
642 #endif
643 
644 /* Round Robin service channels in link */
645 #ifndef L2CAP_ROUND_ROBIN_CHANNEL_SERVICE
646 #define L2CAP_ROUND_ROBIN_CHANNEL_SERVICE   TRUE
647 #endif
648 
649 /* used for monitoring eL2CAP data flow */
650 #ifndef L2CAP_ERTM_STATS
651 #define L2CAP_ERTM_STATS                    FALSE
652 #endif
653 
654 /* Used for conformance testing ONLY:  When TRUE lets scriptwrapper overwrite info response */
655 #ifndef L2CAP_CONFORMANCE_TESTING
656 #define L2CAP_CONFORMANCE_TESTING           FALSE
657 #endif
658 
659 /*
660  * Max bytes per connection to buffer locally before dropping the
661  * connection if local client does not receive it  - default is 1MB
662  */
663 #ifndef L2CAP_MAX_RX_BUFFER
664 #define L2CAP_MAX_RX_BUFFER                 0x100000
665 #endif
666 
667 
668 /******************************************************************************
669 **
670 ** BLE
671 **
672 ******************************************************************************/
673 
674 #ifndef BLE_INCLUDED
675 #define BLE_INCLUDED            TRUE
676 #endif
677 
678 #ifndef BLE_ANDROID_CONTROLLER_SCAN_FILTER
679 #define BLE_ANDROID_CONTROLLER_SCAN_FILTER            TRUE
680 #endif
681 
682 #ifndef LOCAL_BLE_CONTROLLER_ID
683 #define LOCAL_BLE_CONTROLLER_ID         (1)
684 #endif
685 
686 /*
687  * Toggles support for general LE privacy features such as remote address
688  * resolution, local address rotation etc.
689  */
690 #ifndef BLE_PRIVACY_SPT
691 #define BLE_PRIVACY_SPT         TRUE
692 #endif
693 
694 /*
695  * Enables or disables support for local privacy (ex. address rotation)
696  */
697 #ifndef BLE_LOCAL_PRIVACY_ENABLED
698 #define BLE_LOCAL_PRIVACY_ENABLED         TRUE
699 #endif
700 
701 /*
702  * Toggles support for vendor specific extensions such as RPA offloading,
703  * feature discovery, multi-adv etc.
704  */
705 #ifndef BLE_VND_INCLUDED
706 #define BLE_VND_INCLUDED        FALSE
707 #endif
708 
709 #ifndef BTM_BLE_ADV_TX_POWER
710 #define BTM_BLE_ADV_TX_POWER {-21, -15, -7, 1, 9}
711 #endif
712 
713 /* The maximum number of simultaneous applications that can register with LE L2CAP. */
714 #ifndef BLE_MAX_L2CAP_CLIENTS
715 #define BLE_MAX_L2CAP_CLIENTS           15
716 #endif
717 
718 /******************************************************************************
719 **
720 ** ATT/GATT Protocol/Profile Settings
721 **
722 ******************************************************************************/
723 #ifndef BTA_GATT_INCLUDED
724 #if BLE_INCLUDED == TRUE
725 #define BTA_GATT_INCLUDED TRUE
726 #else
727 #define BTA_GATT_INCLUDED FALSE
728 #endif
729 #endif
730 
731 #if BTA_GATT_INCLUDED == TRUE && BLE_INCLUDED == FALSE
732 #error "can't have GATT without BLE"
733 #endif
734 
735 #ifndef BLE_LLT_INCLUDED
736 #define BLE_LLT_INCLUDED    TRUE
737 #endif
738 
739 #ifndef ATT_INCLUDED
740 #define ATT_INCLUDED         TRUE
741 #endif
742 
743 #ifndef ATT_DEBUG
744 #define ATT_DEBUG           TRUE
745 #endif
746 
747 #ifndef BLE_PERIPHERAL_MODE_SUPPORT
748 #define BLE_PERIPHERAL_MODE_SUPPORT  TRUE
749 #endif
750 
751 #ifndef BLE_DELAY_REQUEST_ENC
752 /* This flag is to work around IPHONE problem, We need to wait for iPhone ready
753    before send encryption request to iPhone */
754 #define BLE_DELAY_REQUEST_ENC        FALSE
755 #endif
756 
757 #ifndef GAP_TRANSPORT_SUPPORTED
758 #define GAP_TRANSPORT_SUPPORTED      GATT_TRANSPORT_LE_BR_EDR
759 #endif
760 
761 #ifndef GATTP_TRANSPORT_SUPPORTED
762 #define GATTP_TRANSPORT_SUPPORTED    GATT_TRANSPORT_LE_BR_EDR
763 #endif
764 
765 #ifndef GATT_MAX_SR_PROFILES
766 #define GATT_MAX_SR_PROFILES        32 /* max is 32 */
767 #endif
768 
769 #ifndef GATT_MAX_APPS
770 #define GATT_MAX_APPS            32 /* note: 2 apps used internally GATT and GAP */
771 #endif
772 
773 #ifndef GATT_MAX_PHY_CHANNEL
774 #define GATT_MAX_PHY_CHANNEL        7
775 #endif
776 
777 /* Used for conformance testing ONLY */
778 #ifndef GATT_CONFORMANCE_TESTING
779 #define GATT_CONFORMANCE_TESTING           FALSE
780 #endif
781 
782 /* number of background connection device allowence, ideally to be the same as WL size
783 */
784 #ifndef GATT_MAX_BG_CONN_DEV
785 #define GATT_MAX_BG_CONN_DEV        32
786 #endif
787 
788 /******************************************************************************
789 **
790 ** SMP
791 **
792 ******************************************************************************/
793 #ifndef SMP_INCLUDED
794 #if BLE_INCLUDED == TRUE
795 #define SMP_INCLUDED         TRUE
796 #else
797 #define SMP_INCLUDED         FALSE
798 #endif
799 #endif
800 
801 #if SMP_INCLUDED == TRUE && BLE_INCLUDED == FALSE
802 #error "can't have SMP without BLE"
803 #endif
804 
805 #ifndef SMP_DEBUG
806 #define SMP_DEBUG            FALSE
807 #endif
808 
809 #ifndef SMP_DEFAULT_AUTH_REQ
810 #define SMP_DEFAULT_AUTH_REQ    SMP_AUTH_NB_ENC_ONLY
811 #endif
812 
813 #ifndef SMP_MAX_ENC_KEY_SIZE
814 #define SMP_MAX_ENC_KEY_SIZE    16
815 #endif
816 
817 /* minimum link timeout after SMP pairing is done, leave room for key exchange
818    and racing condition for the following service connection.
819    Prefer greater than 0 second, and no less than default inactivity link idle
820    timer(L2CAP_LINK_INACTIVITY_TOUT) in l2cap) */
821 #ifndef SMP_LINK_TOUT_MIN
822 #if (L2CAP_LINK_INACTIVITY_TOUT > 0)
823 #define SMP_LINK_TOUT_MIN               L2CAP_LINK_INACTIVITY_TOUT
824 #else
825 #define SMP_LINK_TOUT_MIN               2
826 #endif
827 #endif
828 /******************************************************************************
829 **
830 ** SDP
831 **
832 ******************************************************************************/
833 
834 /* This is set to enable SDP server functionality. */
835 #ifndef SDP_SERVER_ENABLED
836 #define SDP_SERVER_ENABLED          TRUE
837 #endif
838 
839 /* The maximum number of SDP records the server can support. */
840 #ifndef SDP_MAX_RECORDS
841 #define SDP_MAX_RECORDS             30
842 #endif
843 
844 /* The maximum number of attributes in each record. */
845 #ifndef SDP_MAX_REC_ATTR
846 #define SDP_MAX_REC_ATTR            25
847 #endif
848 
849 #ifndef SDP_MAX_PAD_LEN
850 #define SDP_MAX_PAD_LEN             600
851 #endif
852 
853 /* The maximum length, in bytes, of an attribute. */
854 #ifndef SDP_MAX_ATTR_LEN
855 #define SDP_MAX_ATTR_LEN            400
856 #endif
857 
858 /* The maximum number of attribute filters supported by SDP databases. */
859 #ifndef SDP_MAX_ATTR_FILTERS
860 #define SDP_MAX_ATTR_FILTERS        15
861 #endif
862 
863 /* The maximum number of UUID filters supported by SDP databases. */
864 #ifndef SDP_MAX_UUID_FILTERS
865 #define SDP_MAX_UUID_FILTERS        3
866 #endif
867 
868 /* This is set to enable SDP client functionality. */
869 #ifndef SDP_CLIENT_ENABLED
870 #define SDP_CLIENT_ENABLED          TRUE
871 #endif
872 
873 /* The maximum number of record handles retrieved in a search. */
874 #ifndef SDP_MAX_DISC_SERVER_RECS
875 #define SDP_MAX_DISC_SERVER_RECS    21
876 #endif
877 
878 /* The size of a scratchpad buffer, in bytes, for storing the response to an attribute request. */
879 #ifndef SDP_MAX_LIST_BYTE_COUNT
880 #define SDP_MAX_LIST_BYTE_COUNT     4096
881 #endif
882 
883 /* The maximum number of parameters in an SDP protocol element. */
884 #ifndef SDP_MAX_PROTOCOL_PARAMS
885 #define SDP_MAX_PROTOCOL_PARAMS     2
886 #endif
887 
888 /* The maximum number of simultaneous client and server connections. */
889 #ifndef SDP_MAX_CONNECTIONS
890 #define SDP_MAX_CONNECTIONS         4
891 #endif
892 
893 /* The MTU size for the L2CAP configuration. */
894 #ifndef SDP_MTU_SIZE
895 #define SDP_MTU_SIZE                672
896 #endif
897 
898 /* The flush timeout for the L2CAP configuration. */
899 #ifndef SDP_FLUSH_TO
900 #define SDP_FLUSH_TO                0xFFFF
901 #endif
902 
903 /* The name for security authorization. */
904 #ifndef SDP_SERVICE_NAME
905 #define SDP_SERVICE_NAME            "Service Discovery"
906 #endif
907 
908 /* The security level for BTM. */
909 #ifndef SDP_SECURITY_LEVEL
910 #define SDP_SECURITY_LEVEL          BTM_SEC_NONE
911 #endif
912 
913 /******************************************************************************
914 **
915 ** RFCOMM
916 **
917 ******************************************************************************/
918 
919 /* The maximum number of ports supported. */
920 #ifndef MAX_RFC_PORTS
921 #define MAX_RFC_PORTS               30
922 #endif
923 
924 /* The maximum simultaneous links to different devices. */
925 #ifndef MAX_ACL_CONNECTIONS
926 #define MAX_BD_CONNECTIONS          7
927 #else
928 #define MAX_BD_CONNECTIONS          MAX_ACL_CONNECTIONS
929 #endif
930 
931 /* The port receive queue low watermark level, in bytes. */
932 #ifndef PORT_RX_LOW_WM
933 #define PORT_RX_LOW_WM              (BTA_RFC_MTU_SIZE * PORT_RX_BUF_LOW_WM)
934 #endif
935 
936 /* The port receive queue high watermark level, in bytes. */
937 #ifndef PORT_RX_HIGH_WM
938 #define PORT_RX_HIGH_WM             (BTA_RFC_MTU_SIZE * PORT_RX_BUF_HIGH_WM)
939 #endif
940 
941 /* The port receive queue critical watermark level, in bytes. */
942 #ifndef PORT_RX_CRITICAL_WM
943 #define PORT_RX_CRITICAL_WM         (BTA_RFC_MTU_SIZE * PORT_RX_BUF_CRITICAL_WM)
944 #endif
945 
946 /* The port receive queue low watermark level, in number of buffers. */
947 #ifndef PORT_RX_BUF_LOW_WM
948 #define PORT_RX_BUF_LOW_WM          4
949 #endif
950 
951 /* The port receive queue high watermark level, in number of buffers. */
952 #ifndef PORT_RX_BUF_HIGH_WM
953 #define PORT_RX_BUF_HIGH_WM         10
954 #endif
955 
956 /* The port receive queue critical watermark level, in number of buffers. */
957 #ifndef PORT_RX_BUF_CRITICAL_WM
958 #define PORT_RX_BUF_CRITICAL_WM     15
959 #endif
960 
961 /* The port transmit queue high watermark level, in bytes. */
962 #ifndef PORT_TX_HIGH_WM
963 #define PORT_TX_HIGH_WM             (BTA_RFC_MTU_SIZE * PORT_TX_BUF_HIGH_WM)
964 #endif
965 
966 /* The port transmit queue critical watermark level, in bytes. */
967 #ifndef PORT_TX_CRITICAL_WM
968 #define PORT_TX_CRITICAL_WM         (BTA_RFC_MTU_SIZE * PORT_TX_BUF_CRITICAL_WM)
969 #endif
970 
971 /* The port transmit queue high watermark level, in number of buffers. */
972 #ifndef PORT_TX_BUF_HIGH_WM
973 #define PORT_TX_BUF_HIGH_WM         10
974 #endif
975 
976 /* The port transmit queue high watermark level, in number of buffers. */
977 #ifndef PORT_TX_BUF_CRITICAL_WM
978 #define PORT_TX_BUF_CRITICAL_WM     15
979 #endif
980 
981 /* The RFCOMM multiplexer preferred flow control mechanism. */
982 #ifndef PORT_FC_DEFAULT
983 #define PORT_FC_DEFAULT             PORT_FC_CREDIT
984 #endif
985 
986 /* The maximum number of credits receiver sends to peer when using credit-based flow control. */
987 #ifndef PORT_CREDIT_RX_MAX
988 #define PORT_CREDIT_RX_MAX          16
989 #endif
990 
991 /* The credit low watermark level. */
992 #ifndef PORT_CREDIT_RX_LOW
993 #define PORT_CREDIT_RX_LOW          8
994 #endif
995 
996 /******************************************************************************
997 **
998 ** OBEX
999 **
1000 ******************************************************************************/
1001 
1002 /*
1003  * Buffer size to reassemble the SDU.
1004  * It will allow buffers to be used that are larger than the L2CAP_MAX_MTU.
1005  */
1006 #ifndef OBX_USER_RX_BUF_SIZE
1007 #define OBX_USER_RX_BUF_SIZE    OBX_LRG_DATA_BUF_SIZE
1008 #endif
1009 
1010 /*
1011  * Buffer size to hold the SDU.
1012  * It will allow buffers to be used that are larger than the L2CAP_MAX_MTU.
1013  */
1014 #ifndef OBX_USER_TX_BUF_SIZE
1015 #define OBX_USER_TX_BUF_SIZE    OBX_LRG_DATA_BUF_SIZE
1016 #endif
1017 
1018 /* Buffer size used to hold MPS segments during SDU reassembly. */
1019 #ifndef OBX_FCR_RX_BUF_SIZE
1020 #define OBX_FCR_RX_BUF_SIZE     BT_DEFAULT_BUFFER_SIZE
1021 #endif
1022 
1023 /*
1024  * Buffer size used to hold MPS segments used in (re)transmissions.
1025  * The size of each buffer must be able to hold the maximum MPS segment size
1026  * passed in L2CA_SetFCROptions plus BT_HDR (8) + HCI preamble (4) +
1027  * L2CAP_MIN_OFFSET (11 - as of BT 2.1 + EDR Spec).
1028  */
1029 #ifndef OBX_FCR_TX_BUF_SIZE
1030 #define OBX_FCR_TX_BUF_SIZE     BT_DEFAULT_BUFFER_SIZE
1031 #endif
1032 
1033 /*
1034  * Size of the transmission window when using enhanced retransmission mode.
1035  * Not used in basic and streaming modes. Range: 1 - 63
1036  */
1037 #ifndef OBX_FCR_OPT_TX_WINDOW_SIZE_BR_EDR
1038 #define OBX_FCR_OPT_TX_WINDOW_SIZE_BR_EDR       20
1039 #endif
1040 
1041 /*
1042  * Number of transmission attempts for a single I-Frame before taking
1043  * Down the connection. Used In ERTM mode only. Value is Ignored in basic and
1044  * Streaming modes.
1045  * Range: 0, 1-0xFF
1046  * 0 - infinite retransmissions
1047  * 1 - single transmission
1048  */
1049 #ifndef OBX_FCR_OPT_MAX_TX_B4_DISCNT
1050 #define OBX_FCR_OPT_MAX_TX_B4_DISCNT    20
1051 #endif
1052 
1053 /*
1054  * Retransmission Timeout
1055  * Range: Minimum 2000 (2 secs) on BR/EDR when supporting PBF.
1056  */
1057 #ifndef OBX_FCR_OPT_RETX_TOUT
1058 #define OBX_FCR_OPT_RETX_TOUT           2000
1059 #endif
1060 
1061 /*
1062  * Monitor Timeout
1063  * Range: Minimum 12000 (12 secs) on BR/EDR when supporting PBF.
1064  */
1065 #ifndef OBX_FCR_OPT_MONITOR_TOUT
1066 #define OBX_FCR_OPT_MONITOR_TOUT        12000
1067 #endif
1068 
1069 /*
1070  * Maximum PDU payload size.
1071  * Suggestion: The maximum amount of data that will fit into a 3-DH5 packet.
1072  * Range: 2 octets
1073  */
1074 #ifndef OBX_FCR_OPT_MAX_PDU_SIZE
1075 #define OBX_FCR_OPT_MAX_PDU_SIZE        L2CAP_MPS_OVER_BR_EDR
1076 #endif
1077 
1078 
1079 /******************************************************************************
1080 **
1081 ** BNEP
1082 **
1083 ******************************************************************************/
1084 
1085 #ifndef BNEP_INCLUDED
1086 #define BNEP_INCLUDED               TRUE
1087 #endif
1088 
1089 /* BNEP status API call is used mainly to get the L2CAP handle */
1090 #ifndef BNEP_SUPPORTS_STATUS_API
1091 #define BNEP_SUPPORTS_STATUS_API            TRUE
1092 #endif
1093 
1094 /*
1095 ** When BNEP connection changes roles after the connection is established
1096 ** we will do an authentication check again on the new role
1097 */
1098 #ifndef BNEP_DO_AUTH_FOR_ROLE_SWITCH
1099 #define BNEP_DO_AUTH_FOR_ROLE_SWITCH        TRUE
1100 #endif
1101 
1102 
1103 /* Maximum number of protocol filters supported. */
1104 #ifndef BNEP_MAX_PROT_FILTERS
1105 #define BNEP_MAX_PROT_FILTERS       5
1106 #endif
1107 
1108 /* Maximum number of multicast filters supported. */
1109 #ifndef BNEP_MAX_MULTI_FILTERS
1110 #define BNEP_MAX_MULTI_FILTERS      5
1111 #endif
1112 
1113 /* Minimum MTU size. */
1114 #ifndef BNEP_MIN_MTU_SIZE
1115 #define BNEP_MIN_MTU_SIZE           L2CAP_MTU_SIZE
1116 #endif
1117 
1118 /* Preferred MTU size. */
1119 #ifndef BNEP_MTU_SIZE
1120 #define BNEP_MTU_SIZE               BNEP_MIN_MTU_SIZE
1121 #endif
1122 
1123 /* Maximum number of buffers allowed in transmit data queue. */
1124 #ifndef BNEP_MAX_XMITQ_DEPTH
1125 #define BNEP_MAX_XMITQ_DEPTH        20
1126 #endif
1127 
1128 /* Maximum number BNEP of connections supported. */
1129 #ifndef BNEP_MAX_CONNECTIONS
1130 #define BNEP_MAX_CONNECTIONS        7
1131 #endif
1132 
1133 
1134 /******************************************************************************
1135 **
1136 ** AVDTP
1137 **
1138 ******************************************************************************/
1139 
1140 #ifndef AVDT_INCLUDED
1141 #define AVDT_INCLUDED               TRUE
1142 #endif
1143 
1144 /* Include reporting capability in AVDTP */
1145 #ifndef AVDT_REPORTING
1146 #define AVDT_REPORTING              TRUE
1147 #endif
1148 
1149 /* Include multiplexing capability in AVDTP */
1150 #ifndef AVDT_MULTIPLEXING
1151 #define AVDT_MULTIPLEXING           TRUE
1152 #endif
1153 
1154 /* Number of simultaneous links to different peer devices. */
1155 #ifndef AVDT_NUM_LINKS
1156 #define AVDT_NUM_LINKS              2
1157 #endif
1158 
1159 /* Number of simultaneous stream endpoints. */
1160 #ifndef AVDT_NUM_SEPS
1161 #define AVDT_NUM_SEPS               3
1162 #endif
1163 
1164 /* Number of transport channels setup by AVDT for all media streams */
1165 #ifndef AVDT_NUM_TC_TBL
1166 #define AVDT_NUM_TC_TBL             6
1167 #endif
1168 
1169 /* Maximum size in bytes of the codec capabilities information element. */
1170 #ifndef AVDT_CODEC_SIZE
1171 #define AVDT_CODEC_SIZE             10
1172 #endif
1173 
1174 /* Maximum size in bytes of the content protection information element. */
1175 #ifndef AVDT_PROTECT_SIZE
1176 #define AVDT_PROTECT_SIZE           90
1177 #endif
1178 
1179 /* Maximum number of buffers in the fragment queue (for video frames). */
1180 #ifndef AVDT_MAX_FRAG_COUNT
1181 #define AVDT_MAX_FRAG_COUNT         15
1182 #endif
1183 
1184 /******************************************************************************
1185 **
1186 ** PAN
1187 **
1188 ******************************************************************************/
1189 
1190 #ifndef PAN_INCLUDED
1191 #define PAN_INCLUDED                     TRUE
1192 #endif
1193 
1194 /* This will enable the PANU role */
1195 #ifndef PAN_SUPPORTS_ROLE_PANU
1196 #define PAN_SUPPORTS_ROLE_PANU              TRUE
1197 #endif
1198 
1199 /* This will enable the GN role */
1200 #ifndef PAN_SUPPORTS_ROLE_GN
1201 #define PAN_SUPPORTS_ROLE_GN                TRUE
1202 #endif
1203 
1204 /* This will enable the NAP role */
1205 #ifndef PAN_SUPPORTS_ROLE_NAP
1206 #define PAN_SUPPORTS_ROLE_NAP               TRUE
1207 #endif
1208 
1209 /* This is just for debugging purposes */
1210 #ifndef PAN_SUPPORTS_DEBUG_DUMP
1211 #define PAN_SUPPORTS_DEBUG_DUMP             TRUE
1212 #endif
1213 
1214 /* Maximum number of PAN connections allowed */
1215 #ifndef MAX_PAN_CONNS
1216 #define MAX_PAN_CONNS                    7
1217 #endif
1218 
1219 /* Default service name for NAP role */
1220 #ifndef PAN_NAP_DEFAULT_SERVICE_NAME
1221 #define PAN_NAP_DEFAULT_SERVICE_NAME    "Network Access Point Service"
1222 #endif
1223 
1224 /* Default service name for GN role */
1225 #ifndef PAN_GN_DEFAULT_SERVICE_NAME
1226 #define PAN_GN_DEFAULT_SERVICE_NAME     "Group Network Service"
1227 #endif
1228 
1229 /* Default service name for PANU role */
1230 #ifndef PAN_PANU_DEFAULT_SERVICE_NAME
1231 #define PAN_PANU_DEFAULT_SERVICE_NAME   "PAN User Service"
1232 #endif
1233 
1234 /* Default description for NAP role service */
1235 #ifndef PAN_NAP_DEFAULT_DESCRIPTION
1236 #define PAN_NAP_DEFAULT_DESCRIPTION     "NAP"
1237 #endif
1238 
1239 /* Default description for GN role service */
1240 #ifndef PAN_GN_DEFAULT_DESCRIPTION
1241 #define PAN_GN_DEFAULT_DESCRIPTION      "GN"
1242 #endif
1243 
1244 /* Default description for PANU role service */
1245 #ifndef PAN_PANU_DEFAULT_DESCRIPTION
1246 #define PAN_PANU_DEFAULT_DESCRIPTION    "PANU"
1247 #endif
1248 
1249 /* Default Security level for PANU role. */
1250 #ifndef PAN_PANU_SECURITY_LEVEL
1251 #define PAN_PANU_SECURITY_LEVEL          0
1252 #endif
1253 
1254 /* Default Security level for GN role. */
1255 #ifndef PAN_GN_SECURITY_LEVEL
1256 #define PAN_GN_SECURITY_LEVEL            0
1257 #endif
1258 
1259 /* Default Security level for NAP role. */
1260 #ifndef PAN_NAP_SECURITY_LEVEL
1261 #define PAN_NAP_SECURITY_LEVEL           0
1262 #endif
1263 
1264 /******************************************************************************
1265 **
1266 ** GAP
1267 **
1268 ******************************************************************************/
1269 
1270 #ifndef GAP_INCLUDED
1271 #define GAP_INCLUDED                TRUE
1272 #endif
1273 
1274 /* This is set to enable use of GAP L2CAP connections. */
1275 #ifndef GAP_CONN_INCLUDED
1276 #define GAP_CONN_INCLUDED           TRUE
1277 #endif
1278 
1279 /* This is set to enable posting event for data write */
1280 #ifndef GAP_CONN_POST_EVT_INCLUDED
1281 #define GAP_CONN_POST_EVT_INCLUDED  FALSE
1282 #endif
1283 
1284 /* The maximum number of simultaneous GAP L2CAP connections. */
1285 #ifndef GAP_MAX_CONNECTIONS
1286 #define GAP_MAX_CONNECTIONS         30
1287 #endif
1288 
1289 /* keep the raw data received from SDP server in database. */
1290 #ifndef SDP_RAW_DATA_INCLUDED
1291 #define SDP_RAW_DATA_INCLUDED       TRUE
1292 #endif
1293 
1294 /* Inquiry duration in 1.28 second units. */
1295 #ifndef SDP_DEBUG
1296 #define SDP_DEBUG                   TRUE
1297 #endif
1298 
1299 /******************************************************************************
1300 **
1301 ** HID
1302 **
1303 ******************************************************************************/
1304 
1305 #ifndef HID_CONTROL_BUF_SIZE
1306 #define HID_CONTROL_BUF_SIZE            BT_DEFAULT_BUFFER_SIZE
1307 #endif
1308 
1309 #ifndef HID_INTERRUPT_BUF_SIZE
1310 #define HID_INTERRUPT_BUF_SIZE          BT_DEFAULT_BUFFER_SIZE
1311 #endif
1312 
1313 /*************************************************************************
1314 ** Definitions for Both HID-Host & Device
1315 */
1316 #ifndef HID_MAX_SVC_NAME_LEN
1317 #define HID_MAX_SVC_NAME_LEN  32
1318 #endif
1319 
1320 #ifndef HID_MAX_SVC_DESCR_LEN
1321 #define HID_MAX_SVC_DESCR_LEN 32
1322 #endif
1323 
1324 #ifndef HID_MAX_PROV_NAME_LEN
1325 #define HID_MAX_PROV_NAME_LEN 32
1326 #endif
1327 
1328 /*************************************************************************
1329 ** Definitions for HID-Host
1330 */
1331 #ifndef  HID_HOST_INCLUDED
1332 #define HID_HOST_INCLUDED           TRUE
1333 #endif
1334 
1335 #ifndef HID_HOST_MAX_DEVICES
1336 #define HID_HOST_MAX_DEVICES        7
1337 #endif
1338 
1339 #ifndef HID_HOST_MTU
1340 #define HID_HOST_MTU                640
1341 #endif
1342 
1343 #ifndef HID_HOST_FLUSH_TO
1344 #define HID_HOST_FLUSH_TO                 0xffff
1345 #endif
1346 
1347 #ifndef HID_HOST_MAX_CONN_RETRY
1348 #define HID_HOST_MAX_CONN_RETRY     (1)
1349 #endif
1350 
1351 #ifndef HID_HOST_REPAGE_WIN
1352 #define HID_HOST_REPAGE_WIN          (2)
1353 #endif
1354 
1355 /*************************************************************************
1356  * A2DP Definitions
1357  */
1358 #ifndef A2D_INCLUDED
1359 #define A2D_INCLUDED            TRUE
1360 #endif
1361 
1362 /******************************************************************************
1363 **
1364 ** AVCTP
1365 **
1366 ******************************************************************************/
1367 
1368 /* Number of simultaneous ACL links to different peer devices. */
1369 #ifndef AVCT_NUM_LINKS
1370 #define AVCT_NUM_LINKS              2
1371 #endif
1372 
1373 /* Number of simultaneous AVCTP connections. */
1374 #ifndef AVCT_NUM_CONN
1375 #define AVCT_NUM_CONN               3
1376 #endif
1377 
1378 /******************************************************************************
1379 **
1380 ** AVRCP
1381 **
1382 ******************************************************************************/
1383 
1384 #ifndef AVRC_METADATA_INCLUDED
1385 #define AVRC_METADATA_INCLUDED      TRUE
1386 #endif
1387 
1388 #ifndef AVRC_ADV_CTRL_INCLUDED
1389 #define AVRC_ADV_CTRL_INCLUDED      TRUE
1390 #endif
1391 
1392 #ifndef AVRC_CTLR_INCLUDED
1393 #define AVRC_CTLR_INCLUDED          TRUE
1394 #endif
1395 
1396 /******************************************************************************
1397 **
1398 ** MCAP
1399 **
1400 ******************************************************************************/
1401 #ifndef MCA_INCLUDED
1402 #define MCA_INCLUDED                FALSE
1403 #endif
1404 
1405 /* The MTU size for the L2CAP configuration on control channel. 48 is the minimal */
1406 #ifndef MCA_CTRL_MTU
1407 #define MCA_CTRL_MTU    60
1408 #endif
1409 
1410 /* The maximum number of registered MCAP instances. */
1411 #ifndef MCA_NUM_REGS
1412 #define MCA_NUM_REGS    12
1413 #endif
1414 
1415 /* The maximum number of control channels (to difference devices) per registered MCAP instances. */
1416 #ifndef MCA_NUM_LINKS
1417 #define MCA_NUM_LINKS   3
1418 #endif
1419 
1420 /* The maximum number of MDEP (including HDP echo) per registered MCAP instances. */
1421 #ifndef MCA_NUM_DEPS
1422 #define MCA_NUM_DEPS    13
1423 #endif
1424 
1425 /* The maximum number of MDL link per control channel. */
1426 #ifndef MCA_NUM_MDLS
1427 #define MCA_NUM_MDLS    4
1428 #endif
1429 
1430 /* Buffer size to reassemble the SDU. */
1431 #ifndef MCA_USER_RX_BUF_SIZE
1432 #define MCA_USER_RX_BUF_SIZE    BT_DEFAULT_BUFFER_SIZE
1433 #endif
1434 
1435 /* Buffer size to hold the SDU. */
1436 #ifndef MCA_USER_TX_BUF_SIZE
1437 #define MCA_USER_TX_BUF_SIZE    BT_DEFAULT_BUFFER_SIZE
1438 #endif
1439 
1440 /*
1441  * Buffer size used to hold MPS segments during SDU reassembly
1442  */
1443 #ifndef MCA_FCR_RX_BUF_SIZE
1444 #define MCA_FCR_RX_BUF_SIZE     BT_DEFAULT_BUFFER_SIZE
1445 #endif
1446 
1447 /*
1448  * Default buffer size used to hold MPS segments used in (re)transmissions.
1449  * The size of each buffer must be able to hold the maximum MPS segment size
1450  * passed in tL2CAP_FCR_OPTIONS plus BT_HDR (8) + HCI preamble (4) +
1451  * L2CAP_MIN_OFFSET (11 - as of BT 2.1 + EDR Spec).
1452  */
1453 #ifndef MCA_FCR_TX_BUF_SIZE
1454 #define MCA_FCR_TX_BUF_SIZE     BT_DEFAULT_BUFFER_SIZE
1455 #endif
1456 
1457 /* MCAP control channel FCR Option:
1458 Size of the transmission window when using enhanced retransmission mode.
1459 1 is defined by HDP specification for control channel.
1460 */
1461 #ifndef MCA_FCR_OPT_TX_WINDOW_SIZE
1462 #define MCA_FCR_OPT_TX_WINDOW_SIZE      1
1463 #endif
1464 
1465 /* MCAP control channel FCR Option:
1466 Number of transmission attempts for a single I-Frame before taking
1467 Down the connection. Used In ERTM mode only. Value is Ignored in basic and
1468 Streaming modes.
1469 Range: 0, 1-0xFF
1470 0 - infinite retransmissions
1471 1 - single transmission
1472 */
1473 #ifndef MCA_FCR_OPT_MAX_TX_B4_DISCNT
1474 #define MCA_FCR_OPT_MAX_TX_B4_DISCNT    20
1475 #endif
1476 
1477 /* MCAP control channel FCR Option: Retransmission Timeout
1478 The AVRCP specification set a value in the range of 300 - 2000 ms
1479 Timeout (in msecs) to detect Lost I-Frames. Only used in Enhanced retransmission mode.
1480 Range: Minimum 2000 (2 secs) when supporting PBF.
1481  */
1482 #ifndef MCA_FCR_OPT_RETX_TOUT
1483 #define MCA_FCR_OPT_RETX_TOUT           2000
1484 #endif
1485 
1486 /* MCAP control channel FCR Option: Monitor Timeout
1487 The AVRCP specification set a value in the range of 300 - 2000 ms
1488 Timeout (in msecs) to detect Lost S-Frames. Only used in Enhanced retransmission mode.
1489 Range: Minimum 12000 (12 secs) when supporting PBF.
1490 */
1491 #ifndef MCA_FCR_OPT_MONITOR_TOUT
1492 #define MCA_FCR_OPT_MONITOR_TOUT        12000
1493 #endif
1494 
1495 /* MCAP control channel FCR Option: Maximum PDU payload size.
1496 The maximum number of payload octets that the local device can receive in a single PDU.
1497 */
1498 #ifndef MCA_FCR_OPT_MPS_SIZE
1499 #define MCA_FCR_OPT_MPS_SIZE            1000
1500 #endif
1501 
1502 /******************************************************************************
1503 **
1504 ** Sleep Mode (Low Power Mode)
1505 **
1506 ******************************************************************************/
1507 
1508 #ifndef HCILP_INCLUDED
1509 #define HCILP_INCLUDED                  TRUE
1510 #endif
1511 
1512 /******************************************************************************
1513 **
1514 ** BTA
1515 **
1516 ******************************************************************************/
1517 /* BTA EIR canned UUID list (default is dynamic) */
1518 #ifndef BTA_EIR_CANNED_UUID_LIST
1519 #define BTA_EIR_CANNED_UUID_LIST FALSE
1520 #endif
1521 
1522 /* Number of supported customer UUID in EIR */
1523 #ifndef BTA_EIR_SERVER_NUM_CUSTOM_UUID
1524 #define BTA_EIR_SERVER_NUM_CUSTOM_UUID     8
1525 #endif
1526 
1527 /* CHLD override */
1528 #ifndef BTA_AG_CHLD_VAL_ECC
1529 #define BTA_AG_CHLD_VAL_ECC  "(0,1,1x,2,2x,3)"
1530 #endif
1531 
1532 #ifndef BTA_AG_CHLD_VAL
1533 #define BTA_AG_CHLD_VAL  "(0,1,2,3)"
1534 #endif
1535 
1536 /* Set the CIND to match HFP 1.5 */
1537 #ifndef BTA_AG_CIND_INFO
1538 #define BTA_AG_CIND_INFO "(\"call\",(0,1)),(\"callsetup\",(0-3)),(\"service\",(0-1)),(\"signal\",(0-5)),(\"roam\",(0,1)),(\"battchg\",(0-5)),(\"callheld\",(0-2))"
1539 #endif
1540 
1541 #ifndef BTA_DM_AVOID_A2DP_ROLESWITCH_ON_INQUIRY
1542 #define BTA_DM_AVOID_A2DP_ROLESWITCH_ON_INQUIRY TRUE
1543 #endif
1544 
1545 /******************************************************************************
1546 **
1547 ** Tracing:  Include trace header file here.
1548 **
1549 ******************************************************************************/
1550 
1551 /* Enable/disable BTSnoop memory logging */
1552 #ifndef BTSNOOP_MEM
1553 #define BTSNOOP_MEM TRUE
1554 #endif
1555 
1556 #include "bt_trace.h"
1557 
1558 #endif /* BT_TARGET_H */
1559