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