Home | History | Annotate | Download | only in include
      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