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:
1458Size of the transmission window when using enhanced retransmission mode.
14591 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:
1466Number of transmission attempts for a single I-Frame before taking
1467Down the connection. Used In ERTM mode only. Value is Ignored in basic and
1468Streaming modes.
1469Range: 0, 1-0xFF
14700 - infinite retransmissions
14711 - 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
1478The AVRCP specification set a value in the range of 300 - 2000 ms
1479Timeout (in msecs) to detect Lost I-Frames. Only used in Enhanced retransmission mode.
1480Range: 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
1487The AVRCP specification set a value in the range of 300 - 2000 ms
1488Timeout (in msecs) to detect Lost S-Frames. Only used in Enhanced retransmission mode.
1489Range: 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.
1496The 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/******************************************************************************
1559**
1560** Wear
1561**
1562******************************************************************************/
1563
1564/* Enable/disable LE IO capability overriding to no-input-no-output on first bond */
1565#ifndef WEAR_LE_IO_CAP_OVERRIDE
1566#define WEAR_LE_IO_CAP_OVERRIDE FALSE
1567#endif
1568
1569#endif /* BT_TARGET_H */
1570