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 #include "data_types.h"
     27 
     28 
     29 #ifndef BTIF_HSAG_SERVICE_NAME
     30 #define BTIF_HSAG_SERVICE_NAME  ("Headset Gateway")
     31 #endif
     32 
     33 #ifndef BTIF_HFAG_SERVICE_NAME
     34 #define BTIF_HFAG_SERVICE_NAME  ("Handsfree Gateway")
     35 #endif
     36 
     37 #ifndef BTIF_HF_CLIENT_SERVICE_NAME
     38 #define BTIF_HF_CLIENT_SERVICE_NAME  ("Handsfree")
     39 #endif
     40 
     41 #ifdef BUILDCFG
     42 
     43 #if !defined(HAS_BDROID_BUILDCFG) && !defined(HAS_NO_BDROID_BUILDCFG)
     44 #error "An Android.mk file did not include bdroid_CFLAGS and possibly not bdorid_C_INCLUDES"
     45 #endif
     46 
     47 #ifdef HAS_BDROID_BUILDCFG
     48 #include "bdroid_buildcfg.h"
     49 #endif
     50 
     51 #endif
     52 
     53 /* Include common GKI definitions used by this platform */
     54 #include "gki_target.h"
     55 
     56 #include "bt_types.h"   /* This must be defined AFTER buildcfg.h */
     57 #include "dyn_mem.h"    /* defines static and/or dynamic memory for components */
     58 
     59 
     60 //------------------Added from bdroid_buildcfg.h---------------------
     61 #ifndef UNV_INCLUDED
     62 #define UNV_INCLUDED FALSE
     63 #endif
     64 
     65 #ifndef GATT_PTS
     66 #define GATT_PTS FALSE
     67 #endif
     68 
     69 #ifndef L2CAP_INCLUDED
     70 #define L2CAP_INCLUDED TRUE
     71 #endif
     72 
     73 #ifndef L2CAP_EXTFEA_SUPPORTED_MASK
     74 #define L2CAP_EXTFEA_SUPPORTED_MASK (L2CAP_EXTFEA_ENH_RETRANS | L2CAP_EXTFEA_STREAM_MODE | L2CAP_EXTFEA_NO_CRC | L2CAP_EXTFEA_FIXED_CHNLS)
     75 #endif
     76 
     77 #ifndef BTUI_OPS_FORMATS
     78 #define BTUI_OPS_FORMATS (BTA_OP_VCARD21_MASK | BTA_OP_ANY_MASK)
     79 #endif
     80 
     81 #ifndef BTA_RFC_MTU_SIZE
     82 #define BTA_RFC_MTU_SIZE (L2CAP_MTU_SIZE-L2CAP_MIN_OFFSET-RFCOMM_DATA_OVERHEAD)
     83 #endif
     84 
     85 #ifndef BTA_DUN_MTU
     86 #define BTA_DUN_MTU BTA_RFC_MTU_SIZE
     87 #endif
     88 
     89 #ifndef BTA_SPP_MTU
     90 #define BTA_SPP_MTU BTA_RFC_MTU_SIZE
     91 #endif
     92 
     93 #ifndef BTA_FAX_MTU
     94 #define BTA_FAX_MTU BTA_RFC_MTU_SIZE
     95 #endif
     96 
     97 #ifndef SDP_RAW_PDU_INCLUDED
     98 #define SDP_RAW_PDU_INCLUDED  TRUE
     99 #endif
    100 
    101 #ifndef GATTS_APPU_USE_GATT_TRACE
    102 #define GATTS_APPU_USE_GATT_TRACE FALSE
    103 #endif
    104 
    105 #ifndef SMP_HOST_ENCRYPT_INCLUDED
    106 #define SMP_HOST_ENCRYPT_INCLUDED FALSE
    107 #endif
    108 
    109 #ifndef SBC_NO_PCM_CPY_OPTION
    110 #define SBC_NO_PCM_CPY_OPTION FALSE
    111 #endif
    112 
    113 #ifndef BTA_INCLUDED
    114 #define BTA_INCLUDED TRUE
    115 #endif
    116 
    117 #ifndef BTA_AG_INCLUDED
    118 #define BTA_AG_INCLUDED  TRUE
    119 #endif
    120 
    121 #ifndef BTA_DM_INCLUDED
    122 #define BTA_DM_INCLUDED TRUE
    123 #endif
    124 
    125 
    126 #ifndef BTA_DI_INCLUDED
    127 #define BTA_DI_INCLUDED FALSE
    128 #endif
    129 
    130 #ifndef BTA_BI_INCLUDED
    131 #define BTA_BI_INCLUDED FALSE
    132 #endif
    133 
    134 #ifndef BTA_SC_INCLUDED
    135 #define BTA_SC_INCLUDED FALSE
    136 #endif
    137 
    138 #ifndef BTA_PAN_INCLUDED
    139 #define BTA_PAN_INCLUDED TRUE
    140 #endif
    141 
    142 #ifndef BTA_FS_INCLUDED
    143 #define BTA_FS_INCLUDED TRUE
    144 #endif
    145 
    146 #ifndef BTA_HH_INCLUDED
    147 #define BTA_HH_INCLUDED TRUE
    148 #endif
    149 
    150 #ifndef BTA_HH_ROLE
    151 #define BTA_HH_ROLE BTA_MASTER_ROLE_PREF
    152 #endif
    153 
    154 #ifndef BTA_HH_LE_INCLUDED
    155 #define BTA_HH_LE_INCLUDED TRUE
    156 #endif
    157 
    158 #ifndef BTA_AR_INCLUDED
    159 #define BTA_AR_INCLUDED TRUE
    160 #endif
    161 
    162 #ifndef BTA_AV_INCLUDED
    163 #define BTA_AV_INCLUDED TRUE
    164 #endif
    165 
    166 #ifndef BTA_GATT_INCLUDED
    167 #define BTA_GATT_INCLUDED TRUE
    168 #endif
    169 
    170 #ifndef BTA_AV_SINK_INCLUDED
    171 #define BTA_AV_SINK_INCLUDED FALSE
    172 #endif
    173 
    174 #ifndef BTA_DISABLE_DELAY
    175 #define BTA_DISABLE_DELAY 200 /* in milliseconds */
    176 #endif
    177 
    178 #ifndef RPC_TRACE_ONLY
    179 #define RPC_TRACE_ONLY  FALSE
    180 #endif
    181 
    182 #ifndef ANDROID_APP_INCLUDED
    183 #define ANDROID_APP_INCLUDED  TRUE
    184 #endif
    185 
    186 #ifndef ANDROID_USE_LOGCAT
    187 #define ANDROID_USE_LOGCAT  TRUE
    188 #endif
    189 
    190 #ifndef LINUX_GKI_INCLUDED
    191 #define LINUX_GKI_INCLUDED  TRUE
    192 #endif
    193 
    194 // If the next wakeup time is less than this threshold, we should acquire
    195 // a wakelock instead of setting a wake alarm so we're not bouncing in
    196 // and out of suspend frequently.
    197 // in millisecond
    198 #ifndef GKI_TIMER_INTERVAL_FOR_WAKELOCK
    199 #define GKI_TIMER_INTERVAL_FOR_WAKELOCK 3000
    200 #endif
    201 
    202 #ifndef BTA_SYS_TIMER_PERIOD
    203 #define BTA_SYS_TIMER_PERIOD  100
    204 #endif
    205 
    206 #ifndef GKI_SHUTDOWN_EVT
    207 #define GKI_SHUTDOWN_EVT  APPL_EVT_7
    208 #endif
    209 
    210 #ifndef GKI_PTHREAD_JOINABLE
    211 #define GKI_PTHREAD_JOINABLE  TRUE
    212 #endif
    213 
    214 #ifndef LINUX_DRV_INCLUDED
    215 #define LINUX_DRV_INCLUDED  TRUE
    216 #endif
    217 
    218 #ifndef LINUX_OS
    219 #define LINUX_OS  TRUE
    220 #endif
    221 
    222 #ifndef BTM_APP_DEV_INIT
    223 #define BTM_APP_DEV_INIT  bte_main_post_reset_init
    224 #endif
    225 
    226 #ifndef SBC_FOR_EMBEDDED_LINUX
    227 #define SBC_FOR_EMBEDDED_LINUX TRUE
    228 #endif
    229 
    230 #ifndef BTA_DM_REMOTE_DEVICE_NAME_LENGTH
    231 #define BTA_DM_REMOTE_DEVICE_NAME_LENGTH 248
    232 #endif
    233 
    234 #ifndef AVDT_VERSION
    235 #define AVDT_VERSION  0x0102
    236 #endif
    237 
    238 #ifndef BTA_AG_AT_MAX_LEN
    239 #define BTA_AG_AT_MAX_LEN  512
    240 #endif
    241 
    242 #ifndef BTA_AVRCP_FF_RW_SUPPORT
    243 #define BTA_AVRCP_FF_RW_SUPPORT TRUE
    244 #endif
    245 
    246 #ifndef BTA_AG_SCO_PKT_TYPES
    247 #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)
    248 #endif
    249 
    250 #ifndef BTA_AV_RET_TOUT
    251 #define BTA_AV_RET_TOUT 15
    252 #endif
    253 
    254 #ifndef PORCHE_PAIRING_CONFLICT
    255 #define PORCHE_PAIRING_CONFLICT  TRUE
    256 #endif
    257 
    258 #ifndef BTA_AV_CO_CP_SCMS_T
    259 #define BTA_AV_CO_CP_SCMS_T  FALSE
    260 #endif
    261 
    262 #ifndef AVDT_CONNECT_CP_ONLY
    263 #define AVDT_CONNECT_CP_ONLY  FALSE
    264 #endif
    265 
    266 /* This feature is used to eanble interleaved scan*/
    267 #ifndef BTA_HOST_INTERLEAVE_SEARCH
    268 #define BTA_HOST_INTERLEAVE_SEARCH FALSE
    269 #endif
    270 
    271 #ifndef BT_TRACE_PROTOCOL
    272 #define BT_TRACE_PROTOCOL  TRUE
    273 #endif
    274 
    275 #ifndef BT_USE_TRACES
    276 #define BT_USE_TRACES  TRUE
    277 #endif
    278 
    279 #ifndef BT_TRACE_BTIF
    280 #define BT_TRACE_BTIF  TRUE
    281 #endif
    282 
    283 #ifndef BTTRC_INCLUDED
    284 #define BTTRC_INCLUDED  FALSE
    285 #endif
    286 
    287 #ifndef BT_TRACE_VERBOSE
    288 #define BT_TRACE_VERBOSE  FALSE
    289 #endif
    290 
    291 #ifndef BTTRC_PARSER_INCLUDED
    292 #define BTTRC_PARSER_INCLUDED  FALSE
    293 #endif
    294 
    295 #ifndef MAX_TRACE_RAM_SIZE
    296 #define MAX_TRACE_RAM_SIZE  10000
    297 #endif
    298 
    299 #ifndef OBX_INITIAL_TRACE_LEVEL
    300 #define OBX_INITIAL_TRACE_LEVEL  BT_TRACE_LEVEL_ERROR
    301 #endif
    302 
    303 #ifndef PBAP_ZERO_VCARD_IN_DB
    304 #define PBAP_ZERO_VCARD_IN_DB  FALSE
    305 #endif
    306 
    307 #ifndef BTA_DM_SDP_DB_SIZE
    308 #define BTA_DM_SDP_DB_SIZE  8000
    309 #endif
    310 
    311 #ifndef HL_INCLUDED
    312 #define HL_INCLUDED  TRUE
    313 #endif
    314 
    315 #ifndef AG_VOICE_SETTINGS
    316 #define AG_VOICE_SETTINGS  HCI_DEFAULT_VOICE_SETTINGS
    317 #endif
    318 
    319 #ifndef BTIF_DM_OOB_TEST
    320 #define BTIF_DM_OOB_TEST  TRUE
    321 #endif
    322 
    323 // How long to wait before activating sniff mode after entering the
    324 // idle state for FTS, OPS connections
    325 #ifndef BTA_FTS_OPS_IDLE_TO_SNIFF_DELAY_MS
    326 #define BTA_FTS_OPS_IDLE_TO_SNIFF_DELAY_MS 7000
    327 #endif
    328 
    329 //------------------End added from bdroid_buildcfg.h---------------------
    330 
    331 
    332 
    333 /******************************************************************************
    334 **
    335 ** Platform-Specific
    336 **
    337 ******************************************************************************/
    338 
    339 /* API macros for simulator */
    340 
    341 #define BTAPI
    342 
    343 #ifndef BTE_BSE_WRAPPER
    344 #ifdef  BTE_SIM_APP
    345 #undef  BTAPI
    346 #define BTAPI         __declspec(dllexport)
    347 #endif
    348 #endif
    349 
    350 #define BT_API          BTAPI
    351 #define BTU_API         BTAPI
    352 #define A2D_API         BTAPI
    353 #define VDP_API         BTAPI
    354 #define AVDT_API        BTAPI
    355 #define AVCT_API        BTAPI
    356 #define AVRC_API        BTAPI
    357 #define BIP_API         BTAPI
    358 #define BNEP_API        BTAPI
    359 #define BPP_API         BTAPI
    360 #define BTM_API         BTAPI
    361 #define CTP_API         BTAPI
    362 #define DUN_API         BTAPI
    363 #define FTP_API         BTAPI
    364 #define GAP_API         BTAPI
    365 #define GOEP_API        BTAPI
    366 #define HCI_API         BTAPI
    367 #define HCRP_API        BTAPI
    368 #define HID_API         BTAPI
    369 #define HFP_API         BTAPI
    370 #define HSP2_API        BTAPI
    371 #define ICP_API         BTAPI
    372 #define L2C_API         BTAPI
    373 #define OBX_API         BTAPI
    374 #define OPP_API         BTAPI
    375 #define PAN_API         BTAPI
    376 #define RFC_API         BTAPI
    377 #define RPC_API         BTAPI
    378 #define SDP_API         BTAPI
    379 #define SPP_API         BTAPI
    380 #define TCS_API         BTAPI
    381 #define XML_API         BTAPI
    382 #define BTA_API         BTAPI
    383 #define SBC_API         BTAPI
    384 #define MCE_API         BTAPI
    385 #define MCA_API         BTAPI
    386 #define GATT_API        BTAPI
    387 #define SMP_API         BTAPI
    388 
    389 
    390 /******************************************************************************
    391 **
    392 ** GKI Buffer Pools
    393 **
    394 ******************************************************************************/
    395 
    396 /* Receives HCI events from the lower-layer. */
    397 #ifndef HCI_CMD_POOL_ID
    398 #define HCI_CMD_POOL_ID             GKI_POOL_ID_2
    399 #endif
    400 
    401 #ifndef HCI_CMD_POOL_BUF_SIZE
    402 #define HCI_CMD_POOL_BUF_SIZE       GKI_BUF2_SIZE
    403 #endif
    404 
    405 /* Receives ACL data packets from thelower-layer. */
    406 #ifndef HCI_ACL_POOL_ID
    407 #define HCI_ACL_POOL_ID             GKI_POOL_ID_3
    408 #endif
    409 
    410 #ifndef HCI_ACL_POOL_BUF_SIZE
    411 #define HCI_ACL_POOL_BUF_SIZE       GKI_BUF3_SIZE
    412 #endif
    413 
    414 /* Maximum number of buffers available for ACL receive data. */
    415 #ifndef HCI_ACL_BUF_MAX
    416 #define HCI_ACL_BUF_MAX             GKI_BUF3_MAX
    417 #endif
    418 
    419 /* Receives SCO data packets from the lower-layer. */
    420 #ifndef HCI_SCO_POOL_ID
    421 #define HCI_SCO_POOL_ID             GKI_POOL_ID_6
    422 #endif
    423 
    424 /* Not used. */
    425 #ifndef HCI_DATA_DESCR_POOL_ID
    426 #define HCI_DATA_DESCR_POOL_ID      GKI_POOL_ID_0
    427 #endif
    428 
    429 /* Sends SDP data packets. */
    430 #ifndef SDP_POOL_ID
    431 #define SDP_POOL_ID                 3
    432 #endif
    433 
    434 /* Sends RFCOMM command packets. */
    435 #ifndef RFCOMM_CMD_POOL_ID
    436 #define RFCOMM_CMD_POOL_ID          GKI_POOL_ID_2
    437 #endif
    438 
    439 #ifndef RFCOMM_CMD_POOL_BUF_SIZE
    440 #define RFCOMM_CMD_POOL_BUF_SIZE    GKI_BUF2_SIZE
    441 #endif
    442 
    443 /* Sends RFCOMM data packets. */
    444 #ifndef RFCOMM_DATA_POOL_ID
    445 #define RFCOMM_DATA_POOL_ID         GKI_POOL_ID_3
    446 #endif
    447 
    448 #ifndef RFCOMM_DATA_POOL_BUF_SIZE
    449 #define RFCOMM_DATA_POOL_BUF_SIZE   GKI_BUF3_SIZE
    450 #endif
    451 
    452 /* Sends L2CAP packets to the peer and HCI messages to the controller. */
    453 #ifndef L2CAP_CMD_POOL_ID
    454 #define L2CAP_CMD_POOL_ID           GKI_POOL_ID_2
    455 #endif
    456 
    457 /* Sends L2CAP segmented packets in ERTM mode */
    458 #ifndef L2CAP_FCR_TX_POOL_ID
    459 #define L2CAP_FCR_TX_POOL_ID        HCI_ACL_POOL_ID
    460 #endif
    461 
    462 /* Receives L2CAP segmented packets in ERTM mode */
    463 #ifndef L2CAP_FCR_RX_POOL_ID
    464 #define L2CAP_FCR_RX_POOL_ID        HCI_ACL_POOL_ID
    465 #endif
    466 
    467 /* Number of ACL buffers to assign to LE
    468    if the HCI buffer pool is shared with BR/EDR */
    469 #ifndef L2C_DEF_NUM_BLE_BUF_SHARED
    470 #define L2C_DEF_NUM_BLE_BUF_SHARED      1
    471 #endif
    472 
    473 /* Used by BTM when it sends HCI commands to the controller. */
    474 #ifndef BTM_CMD_POOL_ID
    475 #define BTM_CMD_POOL_ID             GKI_POOL_ID_2
    476 #endif
    477 
    478 #ifndef OBX_CMD_POOL_SIZE
    479 #define OBX_CMD_POOL_SIZE           GKI_BUF2_SIZE
    480 #endif
    481 
    482 #ifndef OBX_LRG_DATA_POOL_SIZE
    483 #define OBX_LRG_DATA_POOL_SIZE      GKI_BUF4_SIZE
    484 #endif
    485 
    486 #ifndef OBX_LRG_DATA_POOL_ID
    487 #define OBX_LRG_DATA_POOL_ID        GKI_POOL_ID_4
    488 #endif
    489 
    490 /* Used for CTP discovery database. */
    491 #ifndef CTP_SDP_DB_POOL_ID
    492 #define CTP_SDP_DB_POOL_ID          GKI_POOL_ID_3
    493 #endif
    494 
    495 /* Used to send data to L2CAP. */
    496 #ifndef GAP_DATA_POOL_ID
    497 #define GAP_DATA_POOL_ID            GKI_POOL_ID_3
    498 #endif
    499 
    500 /* Used for SPP inquiry and discovery databases. */
    501 #ifndef SPP_DB_POOL_ID
    502 #define SPP_DB_POOL_ID              GKI_POOL_ID_3
    503 #endif
    504 
    505 #ifndef SPP_DB_SIZE
    506 #define SPP_DB_SIZE                 GKI_BUF3_SIZE
    507 #endif
    508 
    509 /* BNEP data and protocol messages. */
    510 #ifndef BNEP_POOL_ID
    511 #define BNEP_POOL_ID                GKI_POOL_ID_3
    512 #endif
    513 
    514 /* RPC pool for temporary trace message buffers. */
    515 #ifndef RPC_SCRATCH_POOL_ID
    516 #define RPC_SCRATCH_POOL_ID         GKI_POOL_ID_2
    517 #endif
    518 
    519 /* RPC scratch buffer size (not related to RPC_SCRATCH_POOL_ID) */
    520 #ifndef RPC_SCRATCH_BUF_SIZE
    521 #define RPC_SCRATCH_BUF_SIZE        GKI_BUF3_SIZE
    522 #endif
    523 
    524 /* RPC pool for protocol messages */
    525 #ifndef RPC_MSG_POOL_ID
    526 #define RPC_MSG_POOL_ID             GKI_POOL_ID_3
    527 #endif
    528 
    529 #ifndef RPC_MSG_POOL_SIZE
    530 #define RPC_MSG_POOL_SIZE           GKI_BUF3_SIZE
    531 #endif
    532 
    533 /* AVDTP pool for protocol messages */
    534 #ifndef AVDT_CMD_POOL_ID
    535 #define AVDT_CMD_POOL_ID            GKI_POOL_ID_2
    536 #endif
    537 
    538 /* AVDTP pool size for media packets in case of fragmentation */
    539 #ifndef AVDT_DATA_POOL_SIZE
    540 #define AVDT_DATA_POOL_SIZE         GKI_BUF3_SIZE
    541 #endif
    542 
    543 #ifndef PAN_POOL_ID
    544 #define PAN_POOL_ID                 GKI_POOL_ID_3
    545 /* Maximum amount of the shared buffer to allocate for PAN */
    546 #define PAN_POOL_MAX                (GKI_BUF3_MAX / 4)
    547 #endif
    548 
    549 /* UNV pool for read/write serialization */
    550 #ifndef UNV_MSG_POOL_ID
    551 #define UNV_MSG_POOL_ID             GKI_POOL_ID_2
    552 #endif
    553 
    554 #ifndef UNV_MSG_POOL_SIZE
    555 #define UNV_MSG_POOL_SIZE           GKI_BUF2_SIZE
    556 #endif
    557 
    558 /* AVCTP pool for protocol messages */
    559 #ifndef AVCT_CMD_POOL_ID
    560 #define AVCT_CMD_POOL_ID            GKI_POOL_ID_1
    561 #endif
    562 
    563 #ifndef AVCT_META_CMD_POOL_ID
    564 #define AVCT_META_CMD_POOL_ID       GKI_POOL_ID_2
    565 #endif
    566 
    567 /* AVRCP pool for protocol messages */
    568 #ifndef AVRC_CMD_POOL_ID
    569 #define AVRC_CMD_POOL_ID            GKI_POOL_ID_1
    570 #endif
    571 
    572 /* AVRCP pool size for protocol messages */
    573 #ifndef AVRC_CMD_POOL_SIZE
    574 #define AVRC_CMD_POOL_SIZE          GKI_BUF1_SIZE
    575 #endif
    576 
    577 /* AVRCP Metadata pool for protocol messages */
    578 #ifndef AVRC_META_CMD_POOL_ID
    579 #define AVRC_META_CMD_POOL_ID       GKI_POOL_ID_2
    580 #endif
    581 
    582 /* AVRCP Metadata pool size for protocol messages */
    583 #ifndef AVRC_META_CMD_POOL_SIZE
    584 #define AVRC_META_CMD_POOL_SIZE     GKI_BUF2_SIZE
    585 #endif
    586 
    587 
    588 /* AVRCP buffer size for browsing channel messages */
    589 #ifndef AVRC_BROWSE_POOL_SIZE
    590 #define AVRC_BROWSE_POOL_SIZE     GKI_MAX_BUF_SIZE
    591 #endif
    592 
    593 /*  HDP buffer size for the Pulse Oximeter  */
    594 #ifndef BTA_HL_LRG_DATA_POOL_SIZE
    595 #define BTA_HL_LRG_DATA_POOL_SIZE      GKI_BUF7_SIZE
    596 #endif
    597 
    598 #ifndef BTA_HL_LRG_DATA_POOL_ID
    599 #define BTA_HL_LRG_DATA_POOL_ID        GKI_POOL_ID_7
    600 #endif
    601 
    602 /* GATT Server Database pool ID */
    603 #ifndef GATT_DB_POOL_ID
    604 #define GATT_DB_POOL_ID                 GKI_POOL_ID_8
    605 #endif
    606 
    607 /* GATT Data sending buffer pool ID, use default ACL pool for fix channel data */
    608 #ifndef GATT_BUF_POOL_ID
    609 #define GATT_BUF_POOL_ID                HCI_ACL_POOL_ID
    610 #endif
    611 
    612 /******************************************************************************
    613 **
    614 ** Lower Layer Interface
    615 **
    616 ******************************************************************************/
    617 
    618 /* Sends ACL data received over HCI to the upper stack. */
    619 #ifndef HCI_ACL_DATA_TO_UPPER
    620 #define HCI_ACL_DATA_TO_UPPER(p)    {((BT_HDR *)p)->event = BT_EVT_TO_BTU_HCI_ACL; GKI_send_msg (BTU_TASK, BTU_HCI_RCV_MBOX, p);}
    621 #endif
    622 
    623 /* Sends SCO data received over HCI to the upper stack. */
    624 #ifndef HCI_SCO_DATA_TO_UPPER
    625 #define HCI_SCO_DATA_TO_UPPER(p)    {((BT_HDR *)p)->event = BT_EVT_TO_BTU_HCI_SCO; GKI_send_msg (BTU_TASK, BTU_HCI_RCV_MBOX, p);}
    626 #endif
    627 
    628 /* Sends an HCI event received over HCI to theupper stack. */
    629 #ifndef HCI_EVT_TO_UPPER
    630 #define HCI_EVT_TO_UPPER(p)         {((BT_HDR *)p)->event = BT_EVT_TO_BTU_HCI_EVT; GKI_send_msg (BTU_TASK, BTU_HCI_RCV_MBOX, p);}
    631 #endif
    632 
    633 /* Macro for allocating buffer for HCI commands */
    634 #ifndef HCI_GET_CMD_BUF
    635 #if (!defined(HCI_USE_VARIABLE_SIZE_CMD_BUF) || (HCI_USE_VARIABLE_SIZE_CMD_BUF == FALSE))
    636 /* Allocate fixed-size buffer from HCI_CMD_POOL (default case) */
    637 #define HCI_GET_CMD_BUF(paramlen)    ((BT_HDR *)GKI_getpoolbuf (HCI_CMD_POOL_ID))
    638 #else
    639 /* Allocate smallest possible buffer (for platforms with limited RAM) */
    640 #define HCI_GET_CMD_BUF(paramlen)    ((BT_HDR *)GKI_getbuf ((UINT16)(BT_HDR_SIZE + HCIC_PREAMBLE_SIZE + (paramlen))))
    641 #endif
    642 #endif  /* HCI_GET_CMD_BUF */
    643 
    644 /******************************************************************************
    645 **
    646 ** HCI Services (H4)
    647 **
    648 ******************************************************************************/
    649 #ifndef HCISU_H4_INCLUDED
    650 #define HCISU_H4_INCLUDED               TRUE
    651 #endif
    652 
    653 #ifdef __cplusplus
    654 extern "C" {
    655 #endif
    656 
    657 BT_API extern void bte_main_hci_send (BT_HDR *p_msg, UINT16 event);
    658 #if (HCISU_H4_INCLUDED == TRUE)
    659 BT_API extern void bte_main_lpm_allow_bt_device_sleep(void);
    660 #endif
    661 
    662 #ifdef __cplusplus
    663 }
    664 #endif
    665 
    666 /* Sends ACL data received from the upper stack to the BD/EDR HCI transport. */
    667 #ifndef HCI_ACL_DATA_TO_LOWER
    668 #define HCI_ACL_DATA_TO_LOWER(p)    bte_main_hci_send((BT_HDR *)(p), BT_EVT_TO_LM_HCI_ACL);
    669 #endif
    670 
    671 #ifndef HCI_BLE_ACL_DATA_TO_LOWER
    672 #define HCI_BLE_ACL_DATA_TO_LOWER(p)    bte_main_hci_send((BT_HDR *)(p), (UINT16)(BT_EVT_TO_LM_HCI_ACL|LOCAL_BLE_CONTROLLER_ID));
    673 #endif
    674 
    675 /* Sends SCO data received from the upper stack to the HCI transport. */
    676 #ifndef HCI_SCO_DATA_TO_LOWER
    677 #define HCI_SCO_DATA_TO_LOWER(p)    bte_main_hci_send((BT_HDR *)(p), BT_EVT_TO_LM_HCI_SCO);
    678 #endif
    679 
    680 /* Sends an HCI command received from the upper stack to the BD/EDR HCI transport. */
    681 #ifndef HCI_CMD_TO_LOWER
    682 #define HCI_CMD_TO_LOWER(p)         bte_main_hci_send((BT_HDR *)(p), BT_EVT_TO_LM_HCI_CMD);
    683 #endif
    684 
    685 /* Sends an LM Diagnosic command received from the upper stack to the HCI transport. */
    686 #ifndef HCI_LM_DIAG_TO_LOWER
    687 #define HCI_LM_DIAG_TO_LOWER(p)     bte_main_hci_send((BT_HDR *)(p), BT_EVT_TO_LM_DIAG);
    688 #endif
    689 
    690 /* Send HCISU a message to allow BT sleep */
    691 #ifndef HCI_LP_ALLOW_BT_DEVICE_SLEEP
    692 #define HCI_LP_ALLOW_BT_DEVICE_SLEEP()       bte_main_lpm_allow_bt_device_sleep()
    693 #endif
    694 
    695 /* If nonzero, the upper-layer sends at most this number of HCI commands to the lower-layer. */
    696 #ifndef HCI_MAX_SIMUL_CMDS
    697 #define HCI_MAX_SIMUL_CMDS          0
    698 #endif
    699 
    700 /* Timeout for receiving response to HCI command */
    701 #ifndef BTU_CMD_CMPL_TIMEOUT
    702 #define BTU_CMD_CMPL_TIMEOUT        8
    703 #endif
    704 
    705 /* If TRUE, BTU task will check HCISU again when HCI command timer expires */
    706 #ifndef BTU_CMD_CMPL_TOUT_DOUBLE_CHECK
    707 #define BTU_CMD_CMPL_TOUT_DOUBLE_CHECK      FALSE
    708 #endif
    709 
    710 /* Use 2 second for low-resolution systems, override to 1 for high-resolution systems */
    711 #ifndef BT_1SEC_TIMEOUT
    712 #define BT_1SEC_TIMEOUT             (2)
    713 #endif
    714 
    715 /* Quick Timer */
    716 /* if L2CAP_FCR_INCLUDED is TRUE then it should have 100 millisecond resolution */
    717 /* if none of them is included then QUICK_TIMER_TICKS_PER_SEC is set to 0 to exclude quick timer */
    718 #ifndef QUICK_TIMER_TICKS_PER_SEC
    719 #define QUICK_TIMER_TICKS_PER_SEC   10       /* 10ms timer */
    720 #endif
    721 
    722 /******************************************************************************
    723 **
    724 ** BTM
    725 **
    726 ******************************************************************************/
    727 /* if set to TRUE, stack will automatically send an HCI reset at start-up. To be
    728 set to FALSE for advanced start-up / shut-down procedures using USER_HW_ENABLE_API
    729 and USER_HW_DISABLE_API macros */
    730 #ifndef BTM_AUTOMATIC_HCI_RESET
    731 #define BTM_AUTOMATIC_HCI_RESET      FALSE
    732 #endif
    733 
    734 /* Include BTM Discovery database and code. */
    735 #ifndef BTM_DISCOVERY_INCLUDED
    736 #define BTM_DISCOVERY_INCLUDED      TRUE
    737 #endif
    738 
    739 /* Include inquiry code. */
    740 #ifndef BTM_INQUIRY_INCLUDED
    741 #define BTM_INQUIRY_INCLUDED        TRUE
    742 #endif
    743 
    744 /* Cancel Inquiry on incoming SSP */
    745 #ifndef BTM_NO_SSP_ON_INQUIRY
    746 #define BTM_NO_SSP_ON_INQUIRY       FALSE
    747 #endif
    748 
    749 /* Include periodic inquiry code (used when BTM_INQUIRY_INCLUDED is TRUE). */
    750 #ifndef BTM_PERIODIC_INQ_INCLUDED
    751 #define BTM_PERIODIC_INQ_INCLUDED   TRUE
    752 #endif
    753 
    754 /* Include security authorization code */
    755 #ifndef BTM_AUTHORIZATION_INCLUDED
    756 #define BTM_AUTHORIZATION_INCLUDED  TRUE
    757 #endif
    758 
    759 /* Includes SCO if TRUE */
    760 #ifndef BTM_SCO_INCLUDED
    761 #define BTM_SCO_INCLUDED            TRUE       /* TRUE includes SCO code */
    762 #endif
    763 
    764 /* Includes SCO if TRUE */
    765 #ifndef BTM_SCO_HCI_INCLUDED
    766 #define BTM_SCO_HCI_INCLUDED            FALSE       /* TRUE includes SCO over HCI code */
    767 #endif
    768 
    769 /* Includes WBS if TRUE */
    770 #ifndef BTM_WBS_INCLUDED
    771 #define BTM_WBS_INCLUDED            FALSE       /* TRUE includes WBS code */
    772 #endif
    773 
    774 /* Includes PCM2 support if TRUE */
    775 #ifndef BTM_PCM2_INCLUDED
    776 #define BTM_PCM2_INCLUDED           FALSE
    777 #endif
    778 
    779 /*  This is used to work around a controller bug that doesn't like Disconnect
    780 **  issued while there is a role switch in progress
    781 */
    782 #ifndef BTM_DISC_DURING_RS
    783 #define BTM_DISC_DURING_RS TRUE
    784 #endif
    785 
    786 /**************************
    787 ** Initial SCO TX credit
    788 *************************/
    789 /* max TX SCO data packet size */
    790 #ifndef BTM_SCO_DATA_SIZE_MAX
    791 #define BTM_SCO_DATA_SIZE_MAX       240
    792 #endif
    793 
    794 /* maximum BTM buffering capacity */
    795 #ifndef BTM_SCO_MAX_BUF_CAP
    796 #define BTM_SCO_MAX_BUF_CAP     (BTM_SCO_INIT_XMIT_CREDIT * 4)
    797 #endif
    798 
    799 /* The size in bytes of the BTM inquiry database. */
    800 #ifndef BTM_INQ_DB_SIZE
    801 #define BTM_INQ_DB_SIZE             40
    802 #endif
    803 
    804 /* This is set to enable automatic periodic inquiry at startup. */
    805 #ifndef BTM_ENABLE_AUTO_INQUIRY
    806 #define BTM_ENABLE_AUTO_INQUIRY     FALSE
    807 #endif
    808 
    809 /* This is set to always try to acquire the remote device name. */
    810 #ifndef BTM_INQ_GET_REMOTE_NAME
    811 #define BTM_INQ_GET_REMOTE_NAME     FALSE
    812 #endif
    813 
    814 /* The inquiry duration in 1.28 second units when auto inquiry is enabled. */
    815 #ifndef BTM_DEFAULT_INQ_DUR
    816 #define BTM_DEFAULT_INQ_DUR         5
    817 #endif
    818 
    819 /* The inquiry mode when auto inquiry is enabled. */
    820 #ifndef BTM_DEFAULT_INQ_MODE
    821 #define BTM_DEFAULT_INQ_MODE        BTM_GENERAL_INQUIRY
    822 #endif
    823 
    824 /* The default periodic inquiry maximum delay when auto inquiry is enabled, in 1.28 second units. */
    825 #ifndef BTM_DEFAULT_INQ_MAX_DELAY
    826 #define BTM_DEFAULT_INQ_MAX_DELAY   30
    827 #endif
    828 
    829 /* The default periodic inquiry minimum delay when auto inquiry is enabled, in 1.28 second units. */
    830 #ifndef BTM_DEFAULT_INQ_MIN_DELAY
    831 #define BTM_DEFAULT_INQ_MIN_DELAY   20
    832 #endif
    833 
    834 /* The maximum age of entries in inquiry database in seconds ('0' disables feature). */
    835 #ifndef BTM_INQ_MAX_AGE
    836 #define BTM_INQ_MAX_AGE             0
    837 #endif
    838 
    839 /* The maximum age of entries in inquiry database based on inquiry response failure ('0' disables feature). */
    840 #ifndef BTM_INQ_AGE_BY_COUNT
    841 #define BTM_INQ_AGE_BY_COUNT        0
    842 #endif
    843 
    844 /* TRUE if controller does not support inquiry event filtering. */
    845 #ifndef BTM_BYPASS_EVENT_FILTERING
    846 #define BTM_BYPASS_EVENT_FILTERING  FALSE
    847 #endif
    848 
    849 /* TRUE if inquiry filtering is desired from BTM. */
    850 #ifndef BTM_USE_INQ_RESULTS_FILTER
    851 #define BTM_USE_INQ_RESULTS_FILTER  TRUE
    852 #endif
    853 
    854 /* The default scan mode */
    855 #ifndef BTM_DEFAULT_SCAN_TYPE
    856 #define BTM_DEFAULT_SCAN_TYPE       BTM_SCAN_TYPE_INTERLACED
    857 #endif
    858 
    859 /* Should connections to unknown devices be allowed when not discoverable? */
    860 #ifndef BTM_ALLOW_CONN_IF_NONDISCOVER
    861 #define BTM_ALLOW_CONN_IF_NONDISCOVER   TRUE
    862 #endif
    863 
    864 /* When connectable mode is set to TRUE, the device will respond to paging. */
    865 #ifndef BTM_IS_CONNECTABLE
    866 #define BTM_IS_CONNECTABLE          FALSE
    867 #endif
    868 
    869 /* Sets the Page_Scan_Window:  the length of time that the device is performing a page scan. */
    870 #ifndef BTM_DEFAULT_CONN_WINDOW
    871 #define BTM_DEFAULT_CONN_WINDOW     0x0012
    872 #endif
    873 
    874 /* Sets the Page_Scan_Activity:  the interval between the start of two consecutive page scans. */
    875 #ifndef BTM_DEFAULT_CONN_INTERVAL
    876 #define BTM_DEFAULT_CONN_INTERVAL   0x0800
    877 #endif
    878 
    879 /* This is set to automatically perform inquiry scan on startup. */
    880 #ifndef BTM_IS_DISCOVERABLE
    881 #define BTM_IS_DISCOVERABLE         FALSE
    882 #endif
    883 
    884 /* When automatic inquiry scan is enabled, this sets the discovery mode. */
    885 #ifndef BTM_DEFAULT_DISC_MODE
    886 #define BTM_DEFAULT_DISC_MODE       BTM_GENERAL_DISCOVERABLE
    887 #endif
    888 
    889 /* When automatic inquiry scan is enabled, this sets the inquiry scan window. */
    890 #ifndef BTM_DEFAULT_DISC_WINDOW
    891 #define BTM_DEFAULT_DISC_WINDOW     0x0012
    892 #endif
    893 
    894 /* When automatic inquiry scan is enabled, this sets the inquiry scan interval. */
    895 #ifndef BTM_DEFAULT_DISC_INTERVAL
    896 #define BTM_DEFAULT_DISC_INTERVAL   0x0800
    897 #endif
    898 
    899 /* Sets the period, in seconds, to automatically perform service discovery. */
    900 #ifndef BTM_AUTO_DISCOVERY_PERIOD
    901 #define BTM_AUTO_DISCOVERY_PERIOD   0
    902 #endif
    903 
    904 /* The size in bytes of the BTM discovery database (if discovery is included). */
    905 #ifndef BTM_DISCOVERY_DB_SIZE
    906 #define BTM_DISCOVERY_DB_SIZE       4000
    907 #endif
    908 
    909 /* Number of milliseconds to delay BTU task startup upon device initialization. */
    910 #ifndef BTU_STARTUP_DELAY
    911 #define BTU_STARTUP_DELAY           0
    912 #endif
    913 
    914 /* Whether BTA is included in BTU task. */
    915 #ifndef BTU_BTA_INCLUDED
    916 #define BTU_BTA_INCLUDED            TRUE
    917 #endif
    918 
    919 /* Number of seconds to wait to send an HCI Reset command upon device initialization. */
    920 #ifndef BTM_FIRST_RESET_DELAY
    921 #define BTM_FIRST_RESET_DELAY       0
    922 #endif
    923 
    924 /* The number of seconds to wait for controller module to reset after issuing an HCI Reset command. */
    925 #ifndef BTM_AFTER_RESET_TIMEOUT
    926 #define BTM_AFTER_RESET_TIMEOUT     0
    927 #endif
    928 
    929 /* Default class of device
    930 * {SERVICE_CLASS, MAJOR_CLASS, MINOR_CLASS}
    931 *
    932 * SERVICE_CLASS:0x5A (Bit17 -Networking,Bit19 - Capturing,Bit20 -Object Transfer,Bit22 -Telephony)
    933 * MAJOR_CLASS:0x02 - PHONE
    934 * MINOR_CLASS:0x0C - SMART_PHONE
    935 *
    936 */
    937 #ifndef BTA_DM_COD
    938 #define BTA_DM_COD {0x5A, 0x02, 0x0C}
    939 #endif
    940 
    941 /* The number of SCO links. */
    942 #ifndef BTM_MAX_SCO_LINKS
    943 #define BTM_MAX_SCO_LINKS           3
    944 #endif
    945 
    946 /* The preferred type of SCO links (2-eSCO, 0-SCO). */
    947 #ifndef BTM_DEFAULT_SCO_MODE
    948 #define BTM_DEFAULT_SCO_MODE        2
    949 #endif
    950 
    951 /* The number of security records for peer devices. */
    952 #ifndef BTM_SEC_MAX_DEVICE_RECORDS
    953 #define BTM_SEC_MAX_DEVICE_RECORDS  100
    954 #endif
    955 
    956 /* The number of security records for services. */
    957 #ifndef BTM_SEC_MAX_SERVICE_RECORDS
    958 #define BTM_SEC_MAX_SERVICE_RECORDS 32
    959 #endif
    960 
    961 /* If True, force a retrieval of remote device name for each bond in case it's changed */
    962 #ifndef BTM_SEC_FORCE_RNR_FOR_DBOND
    963 #define BTM_SEC_FORCE_RNR_FOR_DBOND  FALSE
    964 #endif
    965 
    966 /* Maximum device name length used in btm database. */
    967 #ifndef BTM_MAX_REM_BD_NAME_LEN
    968 #define BTM_MAX_REM_BD_NAME_LEN     248
    969 #endif
    970 
    971 /* Maximum local device name length stored btm database.
    972   '0' disables storage of the local name in BTM */
    973 #ifndef BTM_MAX_LOC_BD_NAME_LEN
    974 #define BTM_MAX_LOC_BD_NAME_LEN     248
    975 #endif
    976 
    977 /* Fixed Default String. When this is defined as null string, the device's
    978  * product model name is used as the default local name.
    979  */
    980 #ifndef BTM_DEF_LOCAL_NAME
    981 #define BTM_DEF_LOCAL_NAME      ""
    982 #endif
    983 
    984 /* Maximum service name stored with security authorization (0 if not needed) */
    985 #ifndef BTM_SEC_SERVICE_NAME_LEN
    986 #define BTM_SEC_SERVICE_NAME_LEN    BT_MAX_SERVICE_NAME_LEN
    987 #endif
    988 
    989 /* Maximum number of pending security callback */
    990 #ifndef BTM_SEC_MAX_CALLBACKS
    991 #define BTM_SEC_MAX_CALLBACKS       7
    992 #endif
    993 
    994 /* Maximum length of the service name. */
    995 #ifndef BT_MAX_SERVICE_NAME_LEN
    996 #define BT_MAX_SERVICE_NAME_LEN     21
    997 #endif
    998 
    999 /* ACL buffer size in HCI Host Buffer Size command. */
   1000 #ifndef BTM_ACL_BUF_SIZE
   1001 #define BTM_ACL_BUF_SIZE            0
   1002 #endif
   1003 
   1004 /* This is set to use the BTM power manager. */
   1005 #ifndef BTM_PWR_MGR_INCLUDED
   1006 #define BTM_PWR_MGR_INCLUDED        TRUE
   1007 #endif
   1008 
   1009 /* The maximum number of clients that can register with the power manager. */
   1010 #ifndef BTM_MAX_PM_RECORDS
   1011 #define BTM_MAX_PM_RECORDS          2
   1012 #endif
   1013 
   1014 /* This is set to show debug trace messages for the power manager. */
   1015 #ifndef BTM_PM_DEBUG
   1016 #define BTM_PM_DEBUG                FALSE
   1017 #endif
   1018 
   1019 /* This is set to TRUE if link is to be unparked due to BTM_CreateSCO API. */
   1020 #ifndef BTM_SCO_WAKE_PARKED_LINK
   1021 #define BTM_SCO_WAKE_PARKED_LINK    TRUE
   1022 #endif
   1023 
   1024 /* May be set to the the name of a function used for vendor specific chip initialization */
   1025 #ifndef BTM_APP_DEV_INIT
   1026 /* #define BTM_APP_DEV_INIT         myInitFunction() */
   1027 #endif
   1028 
   1029 /* This is set to TRUE if the busy level change event is desired. (replace ACL change event) */
   1030 #ifndef BTM_BUSY_LEVEL_CHANGE_INCLUDED
   1031 #define BTM_BUSY_LEVEL_CHANGE_INCLUDED  TRUE
   1032 #endif
   1033 
   1034 /* If the user does not respond to security process requests within this many seconds,
   1035  * a negative response would be sent automatically.
   1036  * It's recommended to use a value between 30 and OBX_TIMEOUT_VALUE
   1037  * 30 is LMP response timeout value */
   1038 #ifndef BTM_SEC_TIMEOUT_VALUE
   1039 #define BTM_SEC_TIMEOUT_VALUE           35
   1040 #endif
   1041 
   1042 /* Maximum number of callbacks that can be registered using BTM_RegisterForVSEvents */
   1043 #ifndef BTM_MAX_VSE_CALLBACKS
   1044 #define BTM_MAX_VSE_CALLBACKS           3
   1045 #endif
   1046 
   1047 /******************************************
   1048 **    Lisbon Features
   1049 *******************************************/
   1050 /* This is set to TRUE if the server Extended Inquiry Response feature is desired. */
   1051 /* server sends EIR to client */
   1052 #ifndef BTM_EIR_SERVER_INCLUDED
   1053 #define BTM_EIR_SERVER_INCLUDED         TRUE
   1054 #endif
   1055 
   1056 /* This is set to TRUE if the client Extended Inquiry Response feature is desired. */
   1057 /* client inquiry to server */
   1058 #ifndef BTM_EIR_CLIENT_INCLUDED
   1059 #define BTM_EIR_CLIENT_INCLUDED         TRUE
   1060 #endif
   1061 
   1062 /* This is set to TRUE if the FEC is required for EIR packet. */
   1063 #ifndef BTM_EIR_DEFAULT_FEC_REQUIRED
   1064 #define BTM_EIR_DEFAULT_FEC_REQUIRED    TRUE
   1065 #endif
   1066 
   1067 /* User defined UUID look up table */
   1068 #ifndef BTM_EIR_UUID_LKUP_TBL
   1069 #endif
   1070 
   1071 /* The IO capability of the local device (for Simple Pairing) */
   1072 #ifndef BTM_LOCAL_IO_CAPS
   1073 #define BTM_LOCAL_IO_CAPS               BTM_IO_CAP_IO
   1074 #endif
   1075 
   1076 #ifndef BTM_LOCAL_IO_CAPS_BLE
   1077 #define BTM_LOCAL_IO_CAPS_BLE           BTM_IO_CAP_KBDISP
   1078 #endif
   1079 
   1080 /* The default MITM Protection Requirement (for Simple Pairing)
   1081  * Possible values are BTM_AUTH_SP_YES or BTM_AUTH_SP_NO */
   1082 #ifndef BTM_DEFAULT_AUTH_REQ
   1083 #define BTM_DEFAULT_AUTH_REQ            BTM_AUTH_SP_NO
   1084 #endif
   1085 
   1086 /* The default MITM Protection Requirement for dedicated bonding using Simple Pairing
   1087  * Possible values are BTM_AUTH_AP_YES or BTM_AUTH_AP_NO */
   1088 #ifndef BTM_DEFAULT_DD_AUTH_REQ
   1089 #define BTM_DEFAULT_DD_AUTH_REQ            BTM_AUTH_AP_YES
   1090 #endif
   1091 
   1092 /* Include Out-of-Band implementation for Simple Pairing */
   1093 #ifndef BTM_OOB_INCLUDED
   1094 #define BTM_OOB_INCLUDED                TRUE
   1095 #endif
   1096 
   1097 /* TRUE to include Sniff Subrating */
   1098 #ifndef BTM_SSR_INCLUDED
   1099 #define BTM_SSR_INCLUDED                TRUE
   1100 #endif
   1101 
   1102 /*************************
   1103 ** End of Lisbon Features
   1104 **************************/
   1105 
   1106 /* Used for conformance testing ONLY */
   1107 #ifndef BTM_BLE_CONFORMANCE_TESTING
   1108 #define BTM_BLE_CONFORMANCE_TESTING           FALSE
   1109 #endif
   1110 
   1111 /* Maximum number of consecutive HCI commands  that can time out
   1112 * before  it gets treated as H/w error*/
   1113 #ifndef BTM_MAX_HCI_CMD_TOUT_BEFORE_RESTART
   1114 #define BTM_MAX_HCI_CMD_TOUT_BEFORE_RESTART 2
   1115 #endif
   1116 
   1117 /******************************************************************************
   1118 **
   1119 ** L2CAP
   1120 **
   1121 ******************************************************************************/
   1122 
   1123 /* Flow control and retransmission mode */
   1124 
   1125 #ifndef L2CAP_FCR_INCLUDED
   1126 #define L2CAP_FCR_INCLUDED TRUE
   1127 #endif
   1128 
   1129 /* The maximum number of simultaneous links that L2CAP can support. */
   1130 #ifndef MAX_ACL_CONNECTIONS
   1131 #define MAX_L2CAP_LINKS             7
   1132 #else
   1133 #define MAX_L2CAP_LINKS             MAX_ACL_CONNECTIONS
   1134 #endif
   1135 
   1136 /* The maximum number of simultaneous channels that L2CAP can support. */
   1137 #ifndef MAX_L2CAP_CHANNELS
   1138 #define MAX_L2CAP_CHANNELS          16
   1139 #endif
   1140 
   1141 /* The maximum number of simultaneous applications that can register with L2CAP. */
   1142 #ifndef MAX_L2CAP_CLIENTS
   1143 #define MAX_L2CAP_CLIENTS           15
   1144 #endif
   1145 
   1146 /* The number of seconds of link inactivity before a link is disconnected. */
   1147 #ifndef L2CAP_LINK_INACTIVITY_TOUT
   1148 #define L2CAP_LINK_INACTIVITY_TOUT  4
   1149 #endif
   1150 
   1151 /* The number of seconds of link inactivity after bonding before a link is disconnected. */
   1152 #ifndef L2CAP_BONDING_TIMEOUT
   1153 #define L2CAP_BONDING_TIMEOUT       3
   1154 #endif
   1155 
   1156 /* The time from the HCI connection complete to disconnect if no channel is established. */
   1157 #ifndef L2CAP_LINK_STARTUP_TOUT
   1158 #define L2CAP_LINK_STARTUP_TOUT     60
   1159 #endif
   1160 
   1161 /* The L2CAP MTU; must be in accord with the HCI ACL pool size. */
   1162 #ifndef L2CAP_MTU_SIZE
   1163 #define L2CAP_MTU_SIZE              1691
   1164 #endif
   1165 
   1166 /* The L2CAP MPS over Bluetooth; must be in accord with the FCR tx pool size and ACL down buffer size. */
   1167 #ifndef L2CAP_MPS_OVER_BR_EDR
   1168 #define L2CAP_MPS_OVER_BR_EDR       1010
   1169 #endif
   1170 
   1171 /* This is set to enable host flow control. */
   1172 #ifndef L2CAP_HOST_FLOW_CTRL
   1173 #define L2CAP_HOST_FLOW_CTRL        FALSE
   1174 #endif
   1175 
   1176 /* If host flow control enabled, this is the number of buffers the controller can have unacknowledged. */
   1177 #ifndef L2CAP_HOST_FC_ACL_BUFS
   1178 #define L2CAP_HOST_FC_ACL_BUFS      20
   1179 #endif
   1180 
   1181 /* The percentage of the queue size allowed before a congestion event is sent to the L2CAP client (typically 120%). */
   1182 #ifndef L2CAP_FWD_CONG_THRESH
   1183 #define L2CAP_FWD_CONG_THRESH       120
   1184 #endif
   1185 
   1186 /* This is set to enable L2CAP to  take the ACL link out of park mode when ACL data is to be sent. */
   1187 #ifndef L2CAP_WAKE_PARKED_LINK
   1188 #define L2CAP_WAKE_PARKED_LINK      TRUE
   1189 #endif
   1190 
   1191 /* Whether link wants to be the master or the slave. */
   1192 #ifndef L2CAP_DESIRED_LINK_ROLE
   1193 #define L2CAP_DESIRED_LINK_ROLE     HCI_ROLE_SLAVE
   1194 #endif
   1195 
   1196 /* Include Non-Flushable Packet Boundary Flag feature of Lisbon */
   1197 #ifndef L2CAP_NON_FLUSHABLE_PB_INCLUDED
   1198 #define L2CAP_NON_FLUSHABLE_PB_INCLUDED     TRUE
   1199 #endif
   1200 
   1201 /* Minimum number of ACL credit for high priority link */
   1202 #ifndef L2CAP_HIGH_PRI_MIN_XMIT_QUOTA
   1203 #define L2CAP_HIGH_PRI_MIN_XMIT_QUOTA       5
   1204 #endif
   1205 
   1206 /* used for monitoring HCI ACL credit management */
   1207 #ifndef L2CAP_HCI_FLOW_CONTROL_DEBUG
   1208 #define L2CAP_HCI_FLOW_CONTROL_DEBUG        TRUE
   1209 #endif
   1210 
   1211 /* Used for calculating transmit buffers off of */
   1212 #ifndef L2CAP_NUM_XMIT_BUFFS
   1213 #define L2CAP_NUM_XMIT_BUFFS                HCI_ACL_BUF_MAX
   1214 #endif
   1215 
   1216 /* Unicast Connectionless Data */
   1217 #ifndef L2CAP_UCD_INCLUDED
   1218 #define L2CAP_UCD_INCLUDED                  FALSE
   1219 #endif
   1220 
   1221 /* Unicast Connectionless Data MTU */
   1222 #ifndef L2CAP_UCD_MTU
   1223 #define L2CAP_UCD_MTU                       L2CAP_MTU_SIZE
   1224 #endif
   1225 
   1226 /* Unicast Connectionless Data Idle Timeout */
   1227 #ifndef L2CAP_UCD_IDLE_TIMEOUT
   1228 #define L2CAP_UCD_IDLE_TIMEOUT              2
   1229 #endif
   1230 
   1231 /* Unicast Connectionless Data Idle Timeout */
   1232 #ifndef L2CAP_UCD_CH_PRIORITY
   1233 #define L2CAP_UCD_CH_PRIORITY               L2CAP_CHNL_PRIORITY_MEDIUM
   1234 #endif
   1235 
   1236 /* Max clients on Unicast Connectionless Data */
   1237 #ifndef L2CAP_MAX_UCD_CLIENTS
   1238 #define L2CAP_MAX_UCD_CLIENTS               5
   1239 #endif
   1240 
   1241 /* Used for features using fixed channels; set to zero if no fixed channels supported (BLE, etc.) */
   1242 /* Excluding L2CAP signaling channel and UCD */
   1243 #ifndef L2CAP_NUM_FIXED_CHNLS
   1244 #define L2CAP_NUM_FIXED_CHNLS               4
   1245 #endif
   1246 
   1247 /* First fixed channel supported */
   1248 #ifndef L2CAP_FIRST_FIXED_CHNL
   1249 #define L2CAP_FIRST_FIXED_CHNL              3
   1250 #endif
   1251 
   1252 #ifndef L2CAP_LAST_FIXED_CHNL
   1253 #define L2CAP_LAST_FIXED_CHNL           (L2CAP_FIRST_FIXED_CHNL + L2CAP_NUM_FIXED_CHNLS - 1)
   1254 #endif
   1255 
   1256 /* Round Robin service channels in link */
   1257 #ifndef L2CAP_ROUND_ROBIN_CHANNEL_SERVICE
   1258 #define L2CAP_ROUND_ROBIN_CHANNEL_SERVICE   TRUE
   1259 #endif
   1260 
   1261 /* Used for calculating transmit buffers off of */
   1262 #ifndef L2CAP_NUM_XMIT_BUFFS
   1263 #define L2CAP_NUM_XMIT_BUFFS                HCI_ACL_BUF_MAX
   1264 #endif
   1265 
   1266 /* Used for features using fixed channels; set to zero if no fixed channels supported (BLE, etc.) */
   1267 #ifndef L2CAP_NUM_FIXED_CHNLS
   1268 #define L2CAP_NUM_FIXED_CHNLS               1
   1269 #endif
   1270 
   1271 /* First fixed channel supported */
   1272 #ifndef L2CAP_FIRST_FIXED_CHNL
   1273 #define L2CAP_FIRST_FIXED_CHNL              3
   1274 #endif
   1275 
   1276 #ifndef L2CAP_LAST_FIXED_CHNL
   1277 #define L2CAP_LAST_FIXED_CHNL           (L2CAP_FIRST_FIXED_CHNL + L2CAP_NUM_FIXED_CHNLS - 1)
   1278 #endif
   1279 
   1280 /* used for monitoring eL2CAP data flow */
   1281 #ifndef L2CAP_ERTM_STATS
   1282 #define L2CAP_ERTM_STATS                    FALSE
   1283 #endif
   1284 
   1285 /* USED FOR FCR TEST ONLY:  When TRUE generates bad tx and rx packets */
   1286 #ifndef L2CAP_CORRUPT_ERTM_PKTS
   1287 #define L2CAP_CORRUPT_ERTM_PKTS             FALSE
   1288 #endif
   1289 
   1290 /* Used for conformance testing ONLY:  When TRUE lets scriptwrapper overwrite info response */
   1291 #ifndef L2CAP_CONFORMANCE_TESTING
   1292 #define L2CAP_CONFORMANCE_TESTING           FALSE
   1293 #endif
   1294 
   1295 
   1296 #ifndef TIMER_PARAM_TYPE
   1297 #ifdef  WIN2000
   1298 #define TIMER_PARAM_TYPE    void *
   1299 #else
   1300 #define TIMER_PARAM_TYPE    UINT32
   1301 #endif
   1302 #endif
   1303 
   1304 /******************************************************************************
   1305 **
   1306 ** BLE
   1307 **
   1308 ******************************************************************************/
   1309 
   1310 #ifndef BLE_INCLUDED
   1311 #define BLE_INCLUDED            TRUE
   1312 #endif
   1313 
   1314 #ifndef BLE_ANDROID_CONTROLLER_SCAN_FILTER
   1315 #define BLE_ANDROID_CONTROLLER_SCAN_FILTER            TRUE
   1316 #endif
   1317 
   1318 #ifndef LOCAL_BLE_CONTROLLER_ID
   1319 #define LOCAL_BLE_CONTROLLER_ID         (1)
   1320 #endif
   1321 
   1322 /*
   1323  * Toggles support for general LE privacy features such as remote address
   1324  * resolution, local address rotation etc.
   1325  */
   1326 #ifndef BLE_PRIVACY_SPT
   1327 #define BLE_PRIVACY_SPT         TRUE
   1328 #endif
   1329 
   1330 /*
   1331  * Enables or disables support for local privacy (ex. address rotation)
   1332  */
   1333 #ifndef BLE_LOCAL_PRIVACY_ENABLED
   1334 #define BLE_LOCAL_PRIVACY_ENABLED         TRUE
   1335 #endif
   1336 
   1337 /*
   1338  * Toggles support for vendor specific extensions such as RPA offloading,
   1339  * feature discovery, multi-adv etc.
   1340  */
   1341 #ifndef BLE_VND_INCLUDED
   1342 #define BLE_VND_INCLUDED        FALSE
   1343 #endif
   1344 
   1345 #ifndef BTM_BLE_ADV_TX_POWER
   1346 #define BTM_BLE_ADV_TX_POWER {-21, -15, -7, 1, 9}
   1347 #endif
   1348 
   1349 
   1350 #ifndef BLE_BATCH_SCAN_INCLUDED
   1351 #define BLE_BATCH_SCAN_INCLUDED  TRUE
   1352 #endif
   1353 
   1354 /******************************************************************************
   1355 **
   1356 ** ATT/GATT Protocol/Profile Settings
   1357 **
   1358 ******************************************************************************/
   1359 #ifndef BTA_GATT_INCLUDED
   1360 #if BLE_INCLUDED == TRUE
   1361 #define BTA_GATT_INCLUDED TRUE
   1362 #else
   1363 #define BTA_GATT_INCLUDED FALSE
   1364 #endif
   1365 #endif
   1366 
   1367 #if BTA_GATT_INCLUDED == TRUE && BLE_INCLUDED == FALSE
   1368 #error "can't have GATT without BLE"
   1369 #endif
   1370 
   1371 #ifndef BLE_LLT_INCLUDED
   1372 #define BLE_LLT_INCLUDED    TRUE
   1373 #endif
   1374 #ifndef BTM_DUMO_ADDR_CENTRAL_ENABLED
   1375 #define BTM_DUMO_ADDR_CENTRAL_ENABLED    FALSE
   1376 #endif
   1377 #ifndef ATT_INCLUDED
   1378 #define ATT_INCLUDED         TRUE
   1379 #endif
   1380 
   1381 #ifndef ATT_DEBUG
   1382 #define ATT_DEBUG           TRUE
   1383 #endif
   1384 
   1385 #ifndef GATT_SERVER_ENABLED
   1386 #define GATT_SERVER_ENABLED          TRUE
   1387 #endif
   1388 
   1389 #ifndef GATT_CLIENT_ENABLED
   1390 #define GATT_CLIENT_ENABLED          TRUE
   1391 #endif
   1392 
   1393 #ifndef BLE_PERIPHERAL_MODE_SUPPORT
   1394 #define BLE_PERIPHERAL_MODE_SUPPORT  TRUE
   1395 #endif
   1396 
   1397 #ifndef BLE_PERIPHERAL_ADV_NAME
   1398 #define BLE_PERIPHERAL_ADV_NAME      FALSE
   1399 #endif
   1400 
   1401 #ifndef BLE_DELAY_REQUEST_ENC
   1402 /* This flag is to work around IPHONE problem, We need to wait for iPhone ready
   1403    before send encryption request to iPhone */
   1404 #define BLE_DELAY_REQUEST_ENC        FALSE
   1405 #endif
   1406 
   1407 #ifndef GAP_TRANSPORT_SUPPORTED
   1408 #define GAP_TRANSPORT_SUPPORTED      GATT_TRANSPORT_LE_BR_EDR
   1409 #endif
   1410 
   1411 #ifndef GATTP_TRANSPORT_SUPPORTED
   1412 #define GATTP_TRANSPORT_SUPPORTED    GATT_TRANSPORT_LE_BR_EDR
   1413 #endif
   1414 
   1415 #ifndef GATT_MAX_SR_PROFILES
   1416 #define GATT_MAX_SR_PROFILES        32 /* max is 32 */
   1417 #endif
   1418 
   1419 #ifndef GATT_MAX_APPS
   1420 #define GATT_MAX_APPS            32 /* note: 2 apps used internally GATT and GAP */
   1421 #endif
   1422 
   1423 #ifndef GATT_MAX_CL_PROFILES
   1424 #define GATT_MAX_CL_PROFILES        4
   1425 #endif
   1426 
   1427 #ifndef GATT_MAX_PHY_CHANNEL
   1428 #define GATT_MAX_PHY_CHANNEL        7
   1429 #endif
   1430 
   1431 /* Used for conformance testing ONLY */
   1432 #ifndef GATT_CONFORMANCE_TESTING
   1433 #define GATT_CONFORMANCE_TESTING           FALSE
   1434 #endif
   1435 
   1436 /* number of background connection device allowence, ideally to be the same as WL size
   1437 */
   1438 #ifndef GATT_MAX_BG_CONN_DEV
   1439 #define GATT_MAX_BG_CONN_DEV        32
   1440 #endif
   1441 
   1442 /******************************************************************************
   1443 **
   1444 ** SMP
   1445 **
   1446 ******************************************************************************/
   1447 #ifndef SMP_INCLUDED
   1448 #if BLE_INCLUDED == TRUE
   1449 #define SMP_INCLUDED         TRUE
   1450 #else
   1451 #define SMP_INCLUDED         FALSE
   1452 #endif
   1453 #endif
   1454 
   1455 #if SMP_INCLUDED == TRUE && BLE_INCLUDED == FALSE
   1456 #error "can't have SMP without BLE"
   1457 #endif
   1458 
   1459 #ifndef SMP_DEBUG
   1460 #define SMP_DEBUG            FALSE
   1461 #endif
   1462 
   1463 #ifndef SMP_DEFAULT_AUTH_REQ
   1464 #define SMP_DEFAULT_AUTH_REQ    SMP_AUTH_NB_ENC_ONLY
   1465 #endif
   1466 
   1467 #ifndef SMP_MAX_ENC_KEY_SIZE
   1468 #define SMP_MAX_ENC_KEY_SIZE    16
   1469 #endif
   1470 
   1471 #ifndef SMP_MIN_ENC_KEY_SIZE
   1472 #define SMP_MIN_ENC_KEY_SIZE    7
   1473 #endif
   1474 
   1475 /* Used for conformance testing ONLY */
   1476 #ifndef SMP_CONFORMANCE_TESTING
   1477 #define SMP_CONFORMANCE_TESTING           FALSE
   1478 #endif
   1479 
   1480 /******************************************************************************
   1481 **
   1482 ** SDP
   1483 **
   1484 ******************************************************************************/
   1485 
   1486 /* This is set to enable SDP server functionality. */
   1487 #ifndef SDP_SERVER_ENABLED
   1488 #define SDP_SERVER_ENABLED          TRUE
   1489 #endif
   1490 
   1491 /* The maximum number of SDP records the server can support. */
   1492 #ifndef SDP_MAX_RECORDS
   1493 #define SDP_MAX_RECORDS             20
   1494 #endif
   1495 
   1496 /* The maximum number of attributes in each record. */
   1497 #ifndef SDP_MAX_REC_ATTR
   1498 //#if defined(HID_DEV_INCLUDED) && (HID_DEV_INCLUDED==TRUE)
   1499 #define SDP_MAX_REC_ATTR            25
   1500 //#else
   1501 //#define SDP_MAX_REC_ATTR            13
   1502 //#endif
   1503 #endif
   1504 
   1505 #ifndef SDP_MAX_PAD_LEN
   1506 #define SDP_MAX_PAD_LEN             600
   1507 #endif
   1508 
   1509 /* The maximum length, in bytes, of an attribute. */
   1510 #ifndef SDP_MAX_ATTR_LEN
   1511 //#if defined(HID_DEV_INCLUDED) && (HID_DEV_INCLUDED==TRUE)
   1512 //#define SDP_MAX_ATTR_LEN            80
   1513 //#else
   1514 //#define SDP_MAX_ATTR_LEN            100
   1515 //#endif
   1516 #define SDP_MAX_ATTR_LEN            400
   1517 #endif
   1518 
   1519 /* The maximum number of attribute filters supported by SDP databases. */
   1520 #ifndef SDP_MAX_ATTR_FILTERS
   1521 #define SDP_MAX_ATTR_FILTERS        15
   1522 #endif
   1523 
   1524 /* The maximum number of UUID filters supported by SDP databases. */
   1525 #ifndef SDP_MAX_UUID_FILTERS
   1526 #define SDP_MAX_UUID_FILTERS        3
   1527 #endif
   1528 
   1529 /* This is set to enable SDP client functionality. */
   1530 #ifndef SDP_CLIENT_ENABLED
   1531 #define SDP_CLIENT_ENABLED          TRUE
   1532 #endif
   1533 
   1534 /* The maximum number of record handles retrieved in a search. */
   1535 #ifndef SDP_MAX_DISC_SERVER_RECS
   1536 #define SDP_MAX_DISC_SERVER_RECS    21
   1537 #endif
   1538 
   1539 /* The size of a scratchpad buffer, in bytes, for storing the response to an attribute request. */
   1540 #ifndef SDP_MAX_LIST_BYTE_COUNT
   1541 #define SDP_MAX_LIST_BYTE_COUNT     4096
   1542 #endif
   1543 
   1544 /* The maximum number of parameters in an SDP protocol element. */
   1545 #ifndef SDP_MAX_PROTOCOL_PARAMS
   1546 #define SDP_MAX_PROTOCOL_PARAMS     2
   1547 #endif
   1548 
   1549 /* The maximum number of simultaneous client and server connections. */
   1550 #ifndef SDP_MAX_CONNECTIONS
   1551 #define SDP_MAX_CONNECTIONS         4
   1552 #endif
   1553 
   1554 /* The MTU size for the L2CAP configuration. */
   1555 #ifndef SDP_MTU_SIZE
   1556 #define SDP_MTU_SIZE                672
   1557 #endif
   1558 
   1559 /* The flush timeout for the L2CAP configuration. */
   1560 #ifndef SDP_FLUSH_TO
   1561 #define SDP_FLUSH_TO                0xFFFF
   1562 #endif
   1563 
   1564 /* The name for security authorization. */
   1565 #ifndef SDP_SERVICE_NAME
   1566 #define SDP_SERVICE_NAME            "Service Discovery"
   1567 #endif
   1568 
   1569 /* The security level for BTM. */
   1570 #ifndef SDP_SECURITY_LEVEL
   1571 #define SDP_SECURITY_LEVEL          BTM_SEC_NONE
   1572 #endif
   1573 
   1574 /* Device identification feature. */
   1575 #ifndef SDP_DI_INCLUDED
   1576 #define SDP_DI_INCLUDED             TRUE
   1577 #endif
   1578 
   1579 /******************************************************************************
   1580 **
   1581 ** RFCOMM
   1582 **
   1583 ******************************************************************************/
   1584 
   1585 #ifndef RFCOMM_INCLUDED
   1586 #define RFCOMM_INCLUDED             TRUE
   1587 #endif
   1588 
   1589 /* The maximum number of ports supported. */
   1590 #ifndef MAX_RFC_PORTS
   1591 #define MAX_RFC_PORTS               30
   1592 #endif
   1593 
   1594 /* The maximum simultaneous links to different devices. */
   1595 #ifndef MAX_ACL_CONNECTIONS
   1596 #define MAX_BD_CONNECTIONS          7
   1597 #else
   1598 #define MAX_BD_CONNECTIONS          MAX_ACL_CONNECTIONS
   1599 #endif
   1600 
   1601 /* The port receive queue low watermark level, in bytes. */
   1602 #ifndef PORT_RX_LOW_WM
   1603 #define PORT_RX_LOW_WM              (BTA_RFC_MTU_SIZE * PORT_RX_BUF_LOW_WM)
   1604 #endif
   1605 
   1606 /* The port receive queue high watermark level, in bytes. */
   1607 #ifndef PORT_RX_HIGH_WM
   1608 #define PORT_RX_HIGH_WM             (BTA_RFC_MTU_SIZE * PORT_RX_BUF_HIGH_WM)
   1609 #endif
   1610 
   1611 /* The port receive queue critical watermark level, in bytes. */
   1612 #ifndef PORT_RX_CRITICAL_WM
   1613 #define PORT_RX_CRITICAL_WM         (BTA_RFC_MTU_SIZE * PORT_RX_BUF_CRITICAL_WM)
   1614 #endif
   1615 
   1616 /* The port receive queue low watermark level, in number of buffers. */
   1617 #ifndef PORT_RX_BUF_LOW_WM
   1618 #define PORT_RX_BUF_LOW_WM          4
   1619 #endif
   1620 
   1621 /* The port receive queue high watermark level, in number of buffers. */
   1622 #ifndef PORT_RX_BUF_HIGH_WM
   1623 #define PORT_RX_BUF_HIGH_WM         10
   1624 #endif
   1625 
   1626 /* The port receive queue critical watermark level, in number of buffers. */
   1627 #ifndef PORT_RX_BUF_CRITICAL_WM
   1628 #define PORT_RX_BUF_CRITICAL_WM     15
   1629 #endif
   1630 
   1631 /* The port transmit queue high watermark level, in bytes. */
   1632 #ifndef PORT_TX_HIGH_WM
   1633 #define PORT_TX_HIGH_WM             (BTA_RFC_MTU_SIZE * PORT_TX_BUF_HIGH_WM)
   1634 #endif
   1635 
   1636 /* The port transmit queue critical watermark level, in bytes. */
   1637 #ifndef PORT_TX_CRITICAL_WM
   1638 #define PORT_TX_CRITICAL_WM         (BTA_RFC_MTU_SIZE * PORT_TX_BUF_CRITICAL_WM)
   1639 #endif
   1640 
   1641 /* The port transmit queue high watermark level, in number of buffers. */
   1642 #ifndef PORT_TX_BUF_HIGH_WM
   1643 #define PORT_TX_BUF_HIGH_WM         10
   1644 #endif
   1645 
   1646 /* The port transmit queue high watermark level, in number of buffers. */
   1647 #ifndef PORT_TX_BUF_CRITICAL_WM
   1648 #define PORT_TX_BUF_CRITICAL_WM     15
   1649 #endif
   1650 
   1651 /* The RFCOMM multiplexer preferred flow control mechanism. */
   1652 #ifndef PORT_FC_DEFAULT
   1653 #define PORT_FC_DEFAULT             PORT_FC_CREDIT
   1654 #endif
   1655 
   1656 /* The maximum number of credits receiver sends to peer when using credit-based flow control. */
   1657 #ifndef PORT_CREDIT_RX_MAX
   1658 #define PORT_CREDIT_RX_MAX          16
   1659 #endif
   1660 
   1661 /* The credit low watermark level. */
   1662 #ifndef PORT_CREDIT_RX_LOW
   1663 #define PORT_CREDIT_RX_LOW          8
   1664 #endif
   1665 
   1666 /* Test code allowing l2cap FEC on RFCOMM.*/
   1667 #ifndef PORT_ENABLE_L2CAP_FCR_TEST
   1668 #define PORT_ENABLE_L2CAP_FCR_TEST  FALSE
   1669 #endif
   1670 
   1671 /* if application like BTA, Java or script test engine is running on other than BTU thread, */
   1672 /* PORT_SCHEDULE_LOCK shall be defined as GKI_sched_lock() or GKI_disable() */
   1673 #ifndef PORT_SCHEDULE_LOCK
   1674 #define PORT_SCHEDULE_LOCK          GKI_disable()
   1675 #endif
   1676 
   1677 /* if application like BTA, Java or script test engine is running on other than BTU thread, */
   1678 /* PORT_SCHEDULE_LOCK shall be defined as GKI_sched_unlock() or GKI_enable() */
   1679 #ifndef PORT_SCHEDULE_UNLOCK
   1680 #define PORT_SCHEDULE_UNLOCK        GKI_enable()
   1681 #endif
   1682 
   1683 /******************************************************************************
   1684 **
   1685 ** TCS
   1686 **
   1687 ******************************************************************************/
   1688 
   1689 #ifndef TCS_INCLUDED
   1690 #define TCS_INCLUDED                FALSE
   1691 #endif
   1692 
   1693 /* If set to TRUE, gives lean TCS state machine configuration. */
   1694 #ifndef TCS_LEAN
   1695 #define TCS_LEAN                    FALSE
   1696 #endif
   1697 
   1698 /* To include/exclude point-to-multipoint broadcast SETUP configuration. */
   1699 #ifndef TCS_BCST_SETUP_INCLUDED
   1700 #define TCS_BCST_SETUP_INCLUDED     TRUE
   1701 #endif
   1702 
   1703 /* To include/exclude supplementary services. */
   1704 #ifndef TCS_SUPP_SVCS_INCLUDED
   1705 #define TCS_SUPP_SVCS_INCLUDED      TRUE
   1706 #endif
   1707 
   1708 /* To include/exclude WUG master role. */
   1709 #ifndef TCS_WUG_MASTER_INCLUDED
   1710 #define TCS_WUG_MASTER_INCLUDED     TRUE
   1711 #endif
   1712 
   1713 /* To include/exclude WUG member role. */
   1714 #ifndef TCS_WUG_MEMBER_INCLUDED
   1715 #define TCS_WUG_MEMBER_INCLUDED     TRUE
   1716 #endif
   1717 
   1718 /* Maximum number of WUG members. */
   1719 #ifndef TCS_MAX_WUG_MEMBERS
   1720 #define TCS_MAX_WUG_MEMBERS         7
   1721 #endif
   1722 
   1723 /* Broadcom specific acknowledgement message to ensure fast and robust operation of WUG FIMA procedure. */
   1724 #ifndef TCS_WUG_LISTEN_ACPT_ACK_INCLUDED
   1725 #define TCS_WUG_LISTEN_ACPT_ACK_INCLUDED TRUE
   1726 #endif
   1727 
   1728 /* The number of simultaneous calls supported. */
   1729 #ifndef TCS_MAX_NUM_SIMUL_CALLS
   1730 #define TCS_MAX_NUM_SIMUL_CALLS     3
   1731 #endif
   1732 
   1733 /* The number of devices the device can connect to. */
   1734 #ifndef TCS_MAX_NUM_ACL_CONNS
   1735 #define TCS_MAX_NUM_ACL_CONNS       7
   1736 #endif
   1737 
   1738 /* The maximum length, in bytes, of the company specific information element. */
   1739 #ifndef TCS_MAX_CO_SPEC_LEN
   1740 #define TCS_MAX_CO_SPEC_LEN         40
   1741 #endif
   1742 
   1743 /* The maximum length, in bytes, of the audio control information element . */
   1744 #ifndef TCS_MAX_AUDIO_CTL_LEN
   1745 #define TCS_MAX_AUDIO_CTL_LEN       40
   1746 #endif
   1747 
   1748 /* (Dis)allow EDR ESCO */
   1749 #ifndef TCS_AUDIO_USE_ESCO_EDR
   1750 #define TCS_AUDIO_USE_ESCO_EDR      FALSE
   1751 #endif
   1752 
   1753 /******************************************************************************
   1754 **
   1755 ** OBX
   1756 **
   1757 ******************************************************************************/
   1758 #ifndef OBX_INCLUDED
   1759 #define OBX_INCLUDED               FALSE
   1760 #endif
   1761 
   1762 #ifndef OBX_CLIENT_INCLUDED
   1763 #define OBX_CLIENT_INCLUDED        TRUE
   1764 #endif
   1765 
   1766 #ifndef OBX_SERVER_INCLUDED
   1767 #define OBX_SERVER_INCLUDED        TRUE
   1768 #endif
   1769 
   1770 /* TRUE to include OBEX authentication/MD5 code */
   1771 #ifndef OBX_MD5_INCLUDED
   1772 #define OBX_MD5_INCLUDED           TRUE
   1773 #endif
   1774 
   1775 /* TRUE to include OBEX authentication/MD5 test code */
   1776 #ifndef OBX_MD5_TEST_INCLUDED
   1777 #define OBX_MD5_TEST_INCLUDED       FALSE
   1778 #endif
   1779 
   1780 /* TRUE to include OBEX 1.4 enhancement (including Obex Over L2CAP) */
   1781 #ifndef OBX_14_INCLUDED
   1782 #define OBX_14_INCLUDED             FALSE
   1783 #endif
   1784 /* MD5 code is required to use OBEX 1.4 features (Reliable session) */
   1785 #if (OBX_MD5_INCLUDED == FALSE)
   1786 #undef OBX_14_INCLUDED
   1787 #define OBX_14_INCLUDED             FALSE
   1788 #endif
   1789 
   1790 /* L2CAP FCR/eRTM mode is required to use OBEX Over L2CAP */
   1791 #if (L2CAP_FCR_INCLUDED == FALSE)
   1792 #undef OBX_14_INCLUDED
   1793 #define OBX_14_INCLUDED             FALSE
   1794 #endif
   1795 
   1796 /* The timeout value (in seconds) for reliable sessions to remain in suspend. 0xFFFFFFFF for no timeout event. */
   1797 #ifndef OBX_SESS_TIMEOUT_VALUE
   1798 #define OBX_SESS_TIMEOUT_VALUE      600
   1799 #endif
   1800 
   1801 /* The idle timeout value. 0 for no timeout event. */
   1802 #ifndef OBX_TIMEOUT_VALUE
   1803 #define OBX_TIMEOUT_VALUE           60
   1804 #endif
   1805 
   1806 /* Timeout value used for disconnect */
   1807 #ifndef OBX_DISC_TOUT_VALUE
   1808 #define OBX_DISC_TOUT_VALUE         5
   1809 #endif
   1810 
   1811 /* The maximum number of registered servers. */
   1812 #ifndef OBX_NUM_SERVERS
   1813 #define OBX_NUM_SERVERS             12
   1814 #endif
   1815 
   1816 /* The maximum number of sessions per registered server. */
   1817 #ifndef OBX_MAX_SR_SESSION
   1818 #define OBX_MAX_SR_SESSION          4
   1819 #endif
   1820 
   1821 /* The maximum number of sessions for all registered servers.
   1822  * (must be equal or bigger than OBX_NUM_SERVERS) */
   1823 #ifndef OBX_NUM_SR_SESSIONS
   1824 #define OBX_NUM_SR_SESSIONS         26
   1825 #endif
   1826 
   1827 /* The maximum number of sessions per registered server.
   1828  * must be less than MAX_BD_CONNECTIONS */
   1829 #ifndef OBX_MAX_SR_SESSION
   1830 #define OBX_MAX_SR_SESSION          4
   1831 #endif
   1832 
   1833 /* The maximum number of suspended sessions per registered servers. */
   1834 #ifndef OBX_MAX_SUSPEND_SESSIONS
   1835 #define OBX_MAX_SUSPEND_SESSIONS    4
   1836 #endif
   1837 
   1838 /* The maximum number of active clients. */
   1839 #ifndef OBX_NUM_CLIENTS
   1840 #define OBX_NUM_CLIENTS             8
   1841 #endif
   1842 
   1843 /* The maximum length of OBEX target header.*/
   1844 #ifndef OBX_MAX_TARGET_LEN
   1845 #define OBX_MAX_TARGET_LEN          16
   1846 #endif
   1847 
   1848 /* The maximum length of authentication challenge realm.*/
   1849 #ifndef OBX_MAX_REALM_LEN
   1850 #define OBX_MAX_REALM_LEN           30
   1851 #endif
   1852 
   1853 /* The maximum of GKI buffer queued at OBX before flow control L2CAP */
   1854 #ifndef OBX_MAX_RX_QUEUE_COUNT
   1855 #define OBX_MAX_RX_QUEUE_COUNT      3
   1856 #endif
   1857 
   1858 /* This option is application when OBX_14_INCLUDED=TRUE
   1859    Pool ID where to reassemble the SDU.
   1860    This Pool will allow buffers to be used that are larger than
   1861    the L2CAP_MAX_MTU. */
   1862 #ifndef OBX_USER_RX_POOL_ID
   1863 #define OBX_USER_RX_POOL_ID     OBX_LRG_DATA_POOL_ID
   1864 #endif
   1865 
   1866 /* This option is application when OBX_14_INCLUDED=TRUE
   1867    Pool ID where to hold the SDU.
   1868    This Pool will allow buffers to be used that are larger than
   1869    the L2CAP_MAX_MTU. */
   1870 #ifndef OBX_USER_TX_POOL_ID
   1871 #define OBX_USER_TX_POOL_ID     OBX_LRG_DATA_POOL_ID
   1872 #endif
   1873 
   1874 /* This option is application when OBX_14_INCLUDED=TRUE
   1875 GKI Buffer Pool ID used to hold MPS segments during SDU reassembly
   1876 */
   1877 #ifndef OBX_FCR_RX_POOL_ID
   1878 #define OBX_FCR_RX_POOL_ID      HCI_ACL_POOL_ID
   1879 #endif
   1880 
   1881 /* This option is application when OBX_14_INCLUDED=TRUE
   1882 GKI Buffer Pool ID used to hold MPS segments used in (re)transmissions.
   1883 L2CAP_DEFAULT_ERM_POOL_ID is specified to use the HCI ACL data pool.
   1884 Note:  This pool needs to have enough buffers to hold two times the window size negotiated
   1885  in the L2CA_SetFCROptions (2 * tx_win_size)  to allow for retransmissions.
   1886  The size of each buffer must be able to hold the maximum MPS segment size passed in
   1887  L2CA_SetFCROptions plus BT_HDR (8) + HCI preamble (4) + L2CAP_MIN_OFFSET (11 - as of BT 2.1 + EDR Spec).
   1888 */
   1889 #ifndef OBX_FCR_TX_POOL_ID
   1890 #define OBX_FCR_TX_POOL_ID      HCI_ACL_POOL_ID
   1891 #endif
   1892 
   1893 /* This option is application when OBX_14_INCLUDED=TRUE
   1894 Size of the transmission window when using enhanced retransmission mode. Not used
   1895 in basic and streaming modes. Range: 1 - 63
   1896 */
   1897 #ifndef OBX_FCR_OPT_TX_WINDOW_SIZE_BR_EDR
   1898 #define OBX_FCR_OPT_TX_WINDOW_SIZE_BR_EDR       20
   1899 #endif
   1900 
   1901 /* This option is application when OBX_14_INCLUDED=TRUE
   1902 Number of transmission attempts for a single I-Frame before taking
   1903 Down the connection. Used In ERTM mode only. Value is Ignored in basic and
   1904 Streaming modes.
   1905 Range: 0, 1-0xFF
   1906 0 - infinite retransmissions
   1907 1 - single transmission
   1908 */
   1909 #ifndef OBX_FCR_OPT_MAX_TX_B4_DISCNT
   1910 #define OBX_FCR_OPT_MAX_TX_B4_DISCNT    20
   1911 #endif
   1912 
   1913 /* This option is application when OBX_14_INCLUDED=TRUE
   1914 Retransmission Timeout
   1915 Range: Minimum 2000 (2 secs) on BR/EDR when supporting PBF.
   1916  */
   1917 #ifndef OBX_FCR_OPT_RETX_TOUT
   1918 #define OBX_FCR_OPT_RETX_TOUT           2000
   1919 #endif
   1920 
   1921 /* This option is application when OBX_14_INCLUDED=TRUE
   1922 Monitor Timeout
   1923 Range: Minimum 12000 (12 secs) on BR/EDR when supporting PBF.
   1924 */
   1925 #ifndef OBX_FCR_OPT_MONITOR_TOUT
   1926 #define OBX_FCR_OPT_MONITOR_TOUT        12000
   1927 #endif
   1928 
   1929 /******************************************************************************
   1930 **
   1931 ** BNEP
   1932 **
   1933 ******************************************************************************/
   1934 
   1935 #ifndef BNEP_INCLUDED
   1936 #define BNEP_INCLUDED               TRUE
   1937 #endif
   1938 
   1939 /* Protocol filtering is an optional feature. Bydefault it will be turned on */
   1940 #ifndef BNEP_SUPPORTS_PROT_FILTERS
   1941 #define BNEP_SUPPORTS_PROT_FILTERS          TRUE
   1942 #endif
   1943 
   1944 /* Multicast filtering is an optional feature. Bydefault it will be turned on */
   1945 #ifndef BNEP_SUPPORTS_MULTI_FILTERS
   1946 #define BNEP_SUPPORTS_MULTI_FILTERS         TRUE
   1947 #endif
   1948 
   1949 /* BNEP status API call is used mainly to get the L2CAP handle */
   1950 #ifndef BNEP_SUPPORTS_STATUS_API
   1951 #define BNEP_SUPPORTS_STATUS_API            TRUE
   1952 #endif
   1953 
   1954 /* This is just a debug function */
   1955 #ifndef BNEP_SUPPORTS_DEBUG_DUMP
   1956 #define BNEP_SUPPORTS_DEBUG_DUMP            TRUE
   1957 #endif
   1958 
   1959 #ifndef BNEP_SUPPORTS_ALL_UUID_LENGTHS
   1960 #define BNEP_SUPPORTS_ALL_UUID_LENGTHS      TRUE    /* Otherwise it will support only 16bit UUIDs */
   1961 #endif
   1962 
   1963 /*
   1964 ** When BNEP connection changes roles after the connection is established
   1965 ** we will do an authentication check again on the new role
   1966 */
   1967 #ifndef BNEP_DO_AUTH_FOR_ROLE_SWITCH
   1968 #define BNEP_DO_AUTH_FOR_ROLE_SWITCH        TRUE
   1969 #endif
   1970 
   1971 
   1972 /* Maximum number of protocol filters supported. */
   1973 #ifndef BNEP_MAX_PROT_FILTERS
   1974 #define BNEP_MAX_PROT_FILTERS       5
   1975 #endif
   1976 
   1977 /* Maximum number of multicast filters supported. */
   1978 #ifndef BNEP_MAX_MULTI_FILTERS
   1979 #define BNEP_MAX_MULTI_FILTERS      5
   1980 #endif
   1981 
   1982 /* Minimum MTU size. */
   1983 #ifndef BNEP_MIN_MTU_SIZE
   1984 #define BNEP_MIN_MTU_SIZE           L2CAP_MTU_SIZE
   1985 #endif
   1986 
   1987 /* Preferred MTU size. */
   1988 #ifndef BNEP_MTU_SIZE
   1989 #define BNEP_MTU_SIZE               BNEP_MIN_MTU_SIZE
   1990 #endif
   1991 
   1992 /* Maximum size of user data, in bytes.  */
   1993 #ifndef BNEP_MAX_USER_DATA_SIZE
   1994 #define BNEP_MAX_USER_DATA_SIZE     1500
   1995 #endif
   1996 
   1997 /* Maximum number of buffers allowed in transmit data queue. */
   1998 #ifndef BNEP_MAX_XMITQ_DEPTH
   1999 #define BNEP_MAX_XMITQ_DEPTH        20
   2000 #endif
   2001 
   2002 /* Maximum number BNEP of connections supported. */
   2003 #ifndef BNEP_MAX_CONNECTIONS
   2004 #define BNEP_MAX_CONNECTIONS        7
   2005 #endif
   2006 
   2007 
   2008 /******************************************************************************
   2009 **
   2010 ** AVDTP
   2011 **
   2012 ******************************************************************************/
   2013 
   2014 #ifndef AVDT_INCLUDED
   2015 #define AVDT_INCLUDED               TRUE
   2016 #endif
   2017 
   2018 /* Include reporting capability in AVDTP */
   2019 #ifndef AVDT_REPORTING
   2020 #define AVDT_REPORTING              TRUE
   2021 #endif
   2022 
   2023 /* Include multiplexing capability in AVDTP */
   2024 #ifndef AVDT_MULTIPLEXING
   2025 #define AVDT_MULTIPLEXING           TRUE
   2026 #endif
   2027 
   2028 /* Number of simultaneous links to different peer devices. */
   2029 #ifndef AVDT_NUM_LINKS
   2030 #define AVDT_NUM_LINKS              2
   2031 #endif
   2032 
   2033 /* Number of simultaneous stream endpoints. */
   2034 #ifndef AVDT_NUM_SEPS
   2035 #define AVDT_NUM_SEPS               3
   2036 #endif
   2037 
   2038 /* Number of transport channels setup per media stream(audio or video) */
   2039 #ifndef AVDT_NUM_CHANNELS
   2040 
   2041 #if AVDT_REPORTING == TRUE
   2042 /* signaling, media and reporting channels */
   2043 #define AVDT_NUM_CHANNELS   3
   2044 #else
   2045 /* signaling and media channels */
   2046 #define AVDT_NUM_CHANNELS   2
   2047 #endif
   2048 
   2049 #endif
   2050 
   2051 /* Number of transport channels setup by AVDT for all media streams
   2052  * AVDT_NUM_CHANNELS * Number of simultaneous streams.
   2053  */
   2054 #ifndef AVDT_NUM_TC_TBL
   2055 #define AVDT_NUM_TC_TBL             6
   2056 #endif
   2057 
   2058 
   2059 /* Maximum size in bytes of the codec capabilities information element. */
   2060 #ifndef AVDT_CODEC_SIZE
   2061 #define AVDT_CODEC_SIZE             10
   2062 #endif
   2063 
   2064 /* Maximum size in bytes of the content protection information element. */
   2065 #ifndef AVDT_PROTECT_SIZE
   2066 #define AVDT_PROTECT_SIZE           90
   2067 #endif
   2068 
   2069 /* Maximum number of GKI buffers in the fragment queue (for video frames).
   2070  * Must be less than the number of buffers in the buffer pool of size AVDT_DATA_POOL_SIZE */
   2071 #ifndef AVDT_MAX_FRAG_COUNT
   2072 #define AVDT_MAX_FRAG_COUNT         15
   2073 #endif
   2074 
   2075 /******************************************************************************
   2076 **
   2077 ** PAN
   2078 **
   2079 ******************************************************************************/
   2080 
   2081 #ifndef PAN_INCLUDED
   2082 #define PAN_INCLUDED                     TRUE
   2083 #endif
   2084 
   2085 /* This will enable the PANU role */
   2086 #ifndef PAN_SUPPORTS_ROLE_PANU
   2087 #define PAN_SUPPORTS_ROLE_PANU              TRUE
   2088 #endif
   2089 
   2090 /* This will enable the GN role */
   2091 #ifndef PAN_SUPPORTS_ROLE_GN
   2092 #define PAN_SUPPORTS_ROLE_GN                TRUE
   2093 #endif
   2094 
   2095 /* This will enable the NAP role */
   2096 #ifndef PAN_SUPPORTS_ROLE_NAP
   2097 #define PAN_SUPPORTS_ROLE_NAP               TRUE
   2098 #endif
   2099 
   2100 /* This is just for debugging purposes */
   2101 #ifndef PAN_SUPPORTS_DEBUG_DUMP
   2102 #define PAN_SUPPORTS_DEBUG_DUMP             TRUE
   2103 #endif
   2104 
   2105 
   2106 /* Maximum number of PAN connections allowed */
   2107 #ifndef MAX_PAN_CONNS
   2108 #define MAX_PAN_CONNS                    7
   2109 #endif
   2110 
   2111 /* Default service name for NAP role */
   2112 #ifndef PAN_NAP_DEFAULT_SERVICE_NAME
   2113 #define PAN_NAP_DEFAULT_SERVICE_NAME    "Network Access Point Service"
   2114 #endif
   2115 
   2116 /* Default service name for GN role */
   2117 #ifndef PAN_GN_DEFAULT_SERVICE_NAME
   2118 #define PAN_GN_DEFAULT_SERVICE_NAME     "Group Network Service"
   2119 #endif
   2120 
   2121 /* Default service name for PANU role */
   2122 #ifndef PAN_PANU_DEFAULT_SERVICE_NAME
   2123 #define PAN_PANU_DEFAULT_SERVICE_NAME   "PAN User Service"
   2124 #endif
   2125 
   2126 /* Default description for NAP role service */
   2127 #ifndef PAN_NAP_DEFAULT_DESCRIPTION
   2128 #define PAN_NAP_DEFAULT_DESCRIPTION     "NAP"
   2129 #endif
   2130 
   2131 /* Default description for GN role service */
   2132 #ifndef PAN_GN_DEFAULT_DESCRIPTION
   2133 #define PAN_GN_DEFAULT_DESCRIPTION      "GN"
   2134 #endif
   2135 
   2136 /* Default description for PANU role service */
   2137 #ifndef PAN_PANU_DEFAULT_DESCRIPTION
   2138 #define PAN_PANU_DEFAULT_DESCRIPTION    "PANU"
   2139 #endif
   2140 
   2141 /* Default Security level for PANU role. */
   2142 #ifndef PAN_PANU_SECURITY_LEVEL
   2143 #define PAN_PANU_SECURITY_LEVEL          0
   2144 #endif
   2145 
   2146 /* Default Security level for GN role. */
   2147 #ifndef PAN_GN_SECURITY_LEVEL
   2148 #define PAN_GN_SECURITY_LEVEL            0
   2149 #endif
   2150 
   2151 /* Default Security level for NAP role. */
   2152 #ifndef PAN_NAP_SECURITY_LEVEL
   2153 #define PAN_NAP_SECURITY_LEVEL           0
   2154 #endif
   2155 
   2156 
   2157 
   2158 
   2159 /******************************************************************************
   2160 **
   2161 ** GAP
   2162 **
   2163 ******************************************************************************/
   2164 
   2165 #ifndef GAP_INCLUDED
   2166 #define GAP_INCLUDED                TRUE
   2167 #endif
   2168 
   2169 /* This is set to enable use of GAP L2CAP connections. */
   2170 #ifndef GAP_CONN_INCLUDED
   2171 #define GAP_CONN_INCLUDED           TRUE
   2172 #endif
   2173 
   2174 /* This is set to enable posting event for data write */
   2175 #ifndef GAP_CONN_POST_EVT_INCLUDED
   2176 #define GAP_CONN_POST_EVT_INCLUDED  FALSE
   2177 #endif
   2178 
   2179 /* The maximum number of simultaneous GAP L2CAP connections. */
   2180 #ifndef GAP_MAX_CONNECTIONS
   2181 #define GAP_MAX_CONNECTIONS         8
   2182 #endif
   2183 
   2184 /******************************************************************************
   2185 **
   2186 ** CTP
   2187 **
   2188 ******************************************************************************/
   2189 
   2190 #ifndef CTP_INCLUDED
   2191 #define CTP_INCLUDED                FALSE
   2192 #endif
   2193 
   2194 /* To include CTP gateway functionality or not. */
   2195 #ifndef CTP_GW_INCLUDED
   2196 #define CTP_GW_INCLUDED             TRUE
   2197 #endif
   2198 
   2199 /* The number of terminals supported. */
   2200 #ifndef CTP_MAX_NUM_TLS
   2201 #define CTP_MAX_NUM_TLS             7
   2202 #endif
   2203 
   2204 /* If the controller can not support sniff mode when the SCO is up, set this to FALSE. */
   2205 #ifndef CTP_USE_SNIFF_ON_SCO
   2206 #define CTP_USE_SNIFF_ON_SCO        FALSE
   2207 #endif
   2208 
   2209 /* When ACL link between TL and GW is idle for more than this amount of seconds, the ACL may be put to low power mode. */
   2210 #ifndef CTP_TL_IDLE_TIMEOUT
   2211 #define CTP_TL_IDLE_TIMEOUT         90
   2212 #endif
   2213 
   2214 /* To include CTP terminal functionality or not. */
   2215 #ifndef CTP_TL_INCLUDED
   2216 #define CTP_TL_INCLUDED             TRUE
   2217 #endif
   2218 
   2219 /* To include CTP device discovery functionality or not. */
   2220 #ifndef CTP_DISCOVERY_INCLUDED
   2221 #define CTP_DISCOVERY_INCLUDED      TRUE
   2222 #endif
   2223 
   2224 /* set to TRUE for controllers that do not support multi-point */
   2225 #ifndef CTP_TL_WAIT_DISC
   2226 #define CTP_TL_WAIT_DISC            TRUE
   2227 #endif
   2228 
   2229 /* The CTP inquiry database size. */
   2230 #ifndef CTP_INQ_DB_SIZE
   2231 #define CTP_INQ_DB_SIZE             CTP_DISC_REC_SIZE
   2232 #endif
   2233 
   2234 /* The CTP discovery record size. */
   2235 #ifndef CTP_DISC_REC_SIZE
   2236 #define CTP_DISC_REC_SIZE           60
   2237 #endif
   2238 
   2239 /* CTP TL would try to re-establish L2CAP channel after channel is disconnected for this amount of seconds. */
   2240 #ifndef CTP_GUARD_LINK_LOST
   2241 #define CTP_GUARD_LINK_LOST         1
   2242 #endif
   2243 
   2244 /* The link policy bitmap. */
   2245 #ifndef CTP_DEFAULT_LINK_POLICY
   2246 #define CTP_DEFAULT_LINK_POLICY     0x000F
   2247 #endif
   2248 
   2249 /* The minimum period interval used for the sniff and park modes. */
   2250 #ifndef CTP_DEF_LOWPWR_MIN_PERIOD
   2251 #define CTP_DEF_LOWPWR_MIN_PERIOD   0x100
   2252 #endif
   2253 
   2254 /* The maximum period interval used for the sniff and park modes. */
   2255 #ifndef CTP_DEF_LOWPWR_MAX_PERIOD
   2256 #define CTP_DEF_LOWPWR_MAX_PERIOD   0x1E0
   2257 #endif
   2258 
   2259 /* The number of baseband receive slot sniff attempts. */
   2260 #ifndef CTP_DEF_LOWPWR_ATTEMPT
   2261 #define CTP_DEF_LOWPWR_ATTEMPT      0x200
   2262 #endif
   2263 
   2264 /* The number of baseband receive slots for sniff timeout. */
   2265 #ifndef CTP_DEF_LOWPWR_TIMEOUT
   2266 #define CTP_DEF_LOWPWR_TIMEOUT      0x200
   2267 #endif
   2268 
   2269 /* This is set if CTP is to use park mode. */
   2270 #ifndef CTP_PARK_INCLUDED
   2271 #define CTP_PARK_INCLUDED           TRUE
   2272 #endif
   2273 
   2274 /* This is set if CTP is to use sniff mode. */
   2275 #ifndef CTP_SNIFF_INCLUDED
   2276 #define CTP_SNIFF_INCLUDED          TRUE
   2277 #endif
   2278 
   2279 /* To include CTP data exchange functionality or not. */
   2280 #ifndef CTP_DATA_EXCHG_FEATURE
   2281 #define CTP_DATA_EXCHG_FEATURE      FALSE
   2282 #endif
   2283 
   2284 /* To include CTP GW intercom functionality or not. */
   2285 #ifndef CTP_GW_INTERCOM_FEATURE
   2286 #define CTP_GW_INTERCOM_FEATURE     FALSE
   2287 #endif
   2288 
   2289 /* The MTU size for L2CAP channel. */
   2290 #ifndef CTP_MTU_SIZE
   2291 #define CTP_MTU_SIZE                200
   2292 #endif
   2293 
   2294 /* The L2CAP PSM for the data exchange feature. */
   2295 #ifndef CTP_DATA_EXCHG_PSM
   2296 #define CTP_DATA_EXCHG_PSM          13
   2297 #endif
   2298 
   2299 /* The flush timeout for L2CAP channels. */
   2300 #ifndef CTP_FLUSH_TO
   2301 #define CTP_FLUSH_TO                0xFFFF
   2302 #endif
   2303 
   2304 /* The default service name for CTP. */
   2305 #ifndef CTP_DEFAULT_SERVICE_NAME
   2306 #define CTP_DEFAULT_SERVICE_NAME    "Cordless Telephony"
   2307 #endif
   2308 
   2309 /* The CTP security level. */
   2310 #ifndef CTP_SECURITY_LEVEL
   2311 #define CTP_SECURITY_LEVEL          (BTM_SEC_IN_AUTHORIZE | BTM_SEC_IN_AUTHENTICATE | BTM_SEC_IN_ENCRYPT)
   2312 #endif
   2313 
   2314 /* The number of lines to the external network. */
   2315 #ifndef CTP_MAX_LINES
   2316 #define CTP_MAX_LINES               1
   2317 #endif
   2318 
   2319 /* Test if the number of resources in TCS is consistent with CTP setting. */
   2320 #ifndef CTP_TEST_FULL_TCS
   2321 #define CTP_TEST_FULL_TCS           TRUE
   2322 #endif
   2323 
   2324 /* The default inquiry mode. */
   2325 #ifndef CTP_DEFAULT_INQUIRY_MODE
   2326 #define CTP_DEFAULT_INQUIRY_MODE    BTM_GENERAL_INQUIRY
   2327 #endif
   2328 
   2329 /* The default inquiry duration. */
   2330 #ifndef CTP_DEFAULT_INQ_DURATION
   2331 #define CTP_DEFAULT_INQ_DURATION    4
   2332 #endif
   2333 
   2334 /* The maximum number of inquiry responses. */
   2335 #ifndef CTP_DEFAULT_INQ_MAX_RESP
   2336 #define CTP_DEFAULT_INQ_MAX_RESP    3
   2337 #endif
   2338 
   2339 /* When TL does not create another L2CAP channel within this period of time GW declares that it's "Connected Limited". */
   2340 #ifndef CTP_TL_CONN_TIMEOUT
   2341 #define CTP_TL_CONN_TIMEOUT         5
   2342 #endif
   2343 
   2344 /* The delay for ACL to completely disconnect (for intercom) before sending the connect request to GW. */
   2345 #ifndef CTP_RECONNECT_DELAY
   2346 #define CTP_RECONNECT_DELAY         5
   2347 #endif
   2348 
   2349 /* How many times to retry connection when it has failed. */
   2350 #ifndef CTP_RETRY_ON_CONN_ERR
   2351 #define CTP_RETRY_ON_CONN_ERR       5
   2352 #endif
   2353 
   2354 /******************************************************************************
   2355 **
   2356 ** ICP
   2357 **
   2358 ******************************************************************************/
   2359 
   2360 #ifndef ICP_INCLUDED
   2361 #define ICP_INCLUDED                FALSE
   2362 #endif
   2363 
   2364 /* The ICP default MTU. */
   2365 #ifndef ICP_MTU_SIZE
   2366 #define ICP_MTU_SIZE                100
   2367 #endif
   2368 
   2369 /* The ICP security level. */
   2370 #ifndef ICP_SECURITY_LEVEL
   2371 #define ICP_SECURITY_LEVEL          BTM_SEC_NONE
   2372 #endif
   2373 
   2374 /* The default service name for ICP. */
   2375 #ifndef ICP_DEFAULT_SERVICE_NAME
   2376 #define ICP_DEFAULT_SERVICE_NAME    "Intercom"
   2377 #endif
   2378 
   2379 /* The flush timeout for L2CAP channels. */
   2380 #ifndef ICP_FLUSH_TO
   2381 #define ICP_FLUSH_TO                0xFFFF
   2382 #endif
   2383 
   2384 /******************************************************************************
   2385 **
   2386 ** SPP
   2387 **
   2388 ******************************************************************************/
   2389 
   2390 #ifndef SPP_INCLUDED
   2391 #define SPP_INCLUDED                FALSE
   2392 #endif
   2393 
   2394 /* The SPP default MTU. */
   2395 #ifndef SPP_DEFAULT_MTU
   2396 #define SPP_DEFAULT_MTU             127
   2397 #endif
   2398 
   2399 /* The interval, in seconds, that a client tries to reconnect to a service. */
   2400 #ifndef SPP_RETRY_CONN_INTERVAL
   2401 #define SPP_RETRY_CONN_INTERVAL     1
   2402 #endif
   2403 
   2404 /* The SPP discoverable mode: limited or general. */
   2405 #ifndef SPP_DISCOVERABLE_MODE
   2406 #define SPP_DISCOVERABLE_MODE       BTM_GENERAL_DISCOVERABLE
   2407 #endif
   2408 
   2409 /* The maximum number of inquiry results returned in by inquiry procedure. */
   2410 #ifndef SPP_DEF_INQ_MAX_RESP
   2411 #define SPP_DEF_INQ_MAX_RESP        10
   2412 #endif
   2413 
   2414 /* The SPP discovery record size. */
   2415 #ifndef SPP_DISC_REC_SIZE
   2416 #define SPP_DISC_REC_SIZE           60
   2417 #endif
   2418 
   2419 #ifndef SPP_MAX_RECS_PER_DEVICE
   2420 #define SPP_MAX_RECS_PER_DEVICE     (SPP_DB_SIZE / SPP_DISC_REC_SIZE)
   2421 #endif
   2422 
   2423 /* Inquiry duration in 1.28 second units. */
   2424 #ifndef SPP_DEF_INQ_DURATION
   2425 #define SPP_DEF_INQ_DURATION        9
   2426 #endif
   2427 
   2428 /* keep the raw data received from SDP server in database. */
   2429 #ifndef SDP_RAW_DATA_INCLUDED
   2430 #define SDP_RAW_DATA_INCLUDED       TRUE
   2431 #endif
   2432 
   2433 /* TRUE, to allow JV to create L2CAP connection on SDP PSM. */
   2434 #ifndef SDP_FOR_JV_INCLUDED
   2435 #define SDP_FOR_JV_INCLUDED         FALSE
   2436 #endif
   2437 
   2438 /* Inquiry duration in 1.28 second units. */
   2439 #ifndef SDP_DEBUG
   2440 #define SDP_DEBUG                   TRUE
   2441 #endif
   2442 
   2443 /******************************************************************************
   2444 **
   2445 ** HSP2, HFP
   2446 **
   2447 ******************************************************************************/
   2448 
   2449 #ifndef HSP2_INCLUDED
   2450 #define HSP2_INCLUDED               FALSE
   2451 #endif
   2452 
   2453 /* Include the ability to perform inquiry for peer devices. */
   2454 #ifndef HSP2_INQUIRY_INCLUDED
   2455 #define HSP2_INQUIRY_INCLUDED       TRUE
   2456 #endif
   2457 
   2458 /* Include Audio Gateway specific code. */
   2459 #ifndef HSP2_AG_INCLUDED
   2460 #define HSP2_AG_INCLUDED            TRUE
   2461 #endif
   2462 
   2463 /* Include Headset Specific Code. */
   2464 #ifndef HSP2_HS_INCLUDED
   2465 #define HSP2_HS_INCLUDED            TRUE
   2466 #endif
   2467 
   2468 /* Include the ability to open an SCO connection for In-Band Ringing. */
   2469 #ifndef HSP2_IB_RING_INCLUDED
   2470 #define HSP2_IB_RING_INCLUDED       TRUE
   2471 #endif
   2472 
   2473 /* Include the ability to repeat a ring. */
   2474 #ifndef HSP2_AG_REPEAT_RING
   2475 #define HSP2_AG_REPEAT_RING         TRUE
   2476 #endif
   2477 
   2478 #ifndef HSP2_APP_CLOSES_ON_CKPD
   2479 #define HSP2_APP_CLOSES_ON_CKPD     FALSE
   2480 #endif
   2481 
   2482 
   2483 /* Include the ability to park a connection. */
   2484 #ifndef HSP2_PARK_INCLUDED
   2485 #define HSP2_PARK_INCLUDED          TRUE
   2486 #endif
   2487 
   2488 /* Include HSP State Machine debug trace messages. */
   2489 #ifndef HSP2_FSM_DEBUG
   2490 #define HSP2_FSM_DEBUG              TRUE
   2491 #endif
   2492 
   2493 /* The Module's Inquiry Scan Window. */
   2494 #ifndef HSP2_INQ_SCAN_WINDOW
   2495 #define HSP2_INQ_SCAN_WINDOW        0
   2496 #endif
   2497 
   2498 /* The Module's Inquiry Scan Interval. */
   2499 #ifndef HSP2_INQ_SCAN_INTERVAL
   2500 #define HSP2_INQ_SCAN_INTERVAL      0
   2501 #endif
   2502 
   2503 /* The Module's Page Scan Interval. */
   2504 #ifndef HSP2_PAGE_SCAN_INTERVAL
   2505 #define HSP2_PAGE_SCAN_INTERVAL     0
   2506 #endif
   2507 
   2508 /* The Module's Page Scan Window. */
   2509 #ifndef HSP2_PAGE_SCAN_WINDOW
   2510 #define HSP2_PAGE_SCAN_WINDOW       0
   2511 #endif
   2512 
   2513 /* The Park Mode's Minimum Beacon Period. */
   2514 #ifndef HSP2_BEACON_MIN_PERIOD
   2515 #define HSP2_BEACON_MIN_PERIOD      450
   2516 #endif
   2517 
   2518 /* The Park Mode's Maximum Beacon Period. */
   2519 #ifndef HSP2_BEACON_MAX_PERIOD
   2520 #define HSP2_BEACON_MAX_PERIOD      500
   2521 #endif
   2522 
   2523 /* The duration of the inquiry in seconds. */
   2524 #ifndef HSP2_INQ_DURATION
   2525 #define HSP2_INQ_DURATION           4
   2526 #endif
   2527 
   2528 /* Maximum number of peer responses during an inquiry. */
   2529 #ifndef HSP2_INQ_MAX_NUM_RESPS
   2530 #define HSP2_INQ_MAX_NUM_RESPS      3
   2531 #endif
   2532 
   2533 /* Maximum number of times to retry an inquiry prior to failure. */
   2534 #ifndef HSP2_MAX_INQ_RETRY
   2535 #define HSP2_MAX_INQ_RETRY          6
   2536 #endif
   2537 
   2538 /* Maximum number of times to retry an RFCOMM connection prior to failure. */
   2539 #ifndef HSP2_MAX_CONN_RETRY
   2540 #define HSP2_MAX_CONN_RETRY         3
   2541 #endif
   2542 
   2543 /* If the connect request failed for authentication reasons, do not retry */
   2544 #ifndef HSP2_NO_RETRY_ON_AUTH_FAIL
   2545 #define HSP2_NO_RETRY_ON_AUTH_FAIL  TRUE
   2546 #endif
   2547 
   2548 /* Maximum number of characters in an HSP2 device name. */
   2549 #ifndef HSP2_MAX_NAME_LEN
   2550 #define HSP2_MAX_NAME_LEN           32
   2551 #endif
   2552 
   2553 /* The minimum speaker and/or microphone gain setting. */
   2554 #ifndef HSP2_MIN_GAIN
   2555 #define HSP2_MIN_GAIN               0
   2556 #endif
   2557 
   2558 /* The maximum speaker and/or microphone setting. */
   2559 #ifndef HSP2_MAX_GAIN
   2560 #define HSP2_MAX_GAIN               15
   2561 #endif
   2562 
   2563 /* The default value to send on an AT+CKPD. */
   2564 #ifndef HSP2_KEYPRESS_DEFAULT
   2565 #define HSP2_KEYPRESS_DEFAULT       200
   2566 #endif
   2567 
   2568 /* Maximum amount a data that can be received per RFCOMM frame. */
   2569 #ifndef HSP2_MAX_RFC_READ_LEN
   2570 #define HSP2_MAX_RFC_READ_LEN       128
   2571 #endif
   2572 
   2573 /* The time in seconds to wait for completion of a partial AT command or response from the peer. */
   2574 #ifndef HSP2_AT_TO_INTERVAL
   2575 #define HSP2_AT_TO_INTERVAL         30
   2576 #endif
   2577 
   2578 /* The time to wait before repeating a ring to a peer Headset. */
   2579 #ifndef HSP2_REPEAT_RING_TO
   2580 #define HSP2_REPEAT_RING_TO         4
   2581 #endif
   2582 
   2583 /* Time to wait for a response for an AT command */
   2584 #ifndef HSP2_AT_RSP_TO
   2585 #define HSP2_AT_RSP_TO              20
   2586 #endif
   2587 
   2588 /* SCO packet type(s) to use (bitmask: see spec), 0 - device default (recommended) */
   2589 #ifndef HSP2_SCO_PKT_TYPES
   2590 #define HSP2_SCO_PKT_TYPES          ((UINT16)0x0000)
   2591 #endif
   2592 
   2593 /* The default settings of the SCO voice link. */
   2594 #ifndef HSP2_DEFAULT_VOICE_SETTINGS
   2595 #define HSP2_DEFAULT_VOICE_SETTINGS (HCI_INP_CODING_LINEAR | HCI_INP_DATA_FMT_2S_COMPLEMENT | HCI_INP_SAMPLE_SIZE_16BIT | HCI_AIR_CODING_FORMAT_CVSD)
   2596 #endif
   2597 
   2598 #ifndef HSP2_MAX_AT_CMD_LENGTH
   2599 #define HSP2_MAX_AT_CMD_LENGTH       16
   2600 #endif
   2601 
   2602 #ifndef HSP2_MAX_AT_VAL_LENGTH
   2603 #if (defined(HFP_INCLUDED) && HFP_INCLUDED == TRUE)
   2604 #define HSP2_MAX_AT_VAL_LENGTH       310
   2605 #else
   2606 #define HSP2_MAX_AT_VAL_LENGTH       5
   2607 #endif
   2608 #endif
   2609 
   2610 
   2611 #ifndef HSP2_SDP_DB_SIZE
   2612 #define HSP2_SDP_DB_SIZE             300
   2613 #endif
   2614 
   2615 
   2616 /******************************************************************************
   2617 **
   2618 ** HFP
   2619 **
   2620 ******************************************************************************/
   2621 
   2622 #ifndef HFP_INCLUDED
   2623 #define HFP_INCLUDED                FALSE
   2624 #endif
   2625 
   2626 /* Include Audio Gateway specific code. */
   2627 #ifndef HFP_AG_INCLUDED
   2628 #define HFP_AG_INCLUDED             TRUE
   2629 #endif
   2630 
   2631 /* Include Hand Free Specific Code. */
   2632 #ifndef HFP_HF_INCLUDED
   2633 #define HFP_HF_INCLUDED             TRUE
   2634 #endif
   2635 
   2636 /* Use AT interface instead of full blown API */
   2637 #ifndef AT_INTERFACE
   2638 #define AT_INTERFACE            FALSE
   2639 #endif
   2640 
   2641 /* HFP Manages SCO establishement for various procedures */
   2642 #ifndef HFP_SCO_MGMT_INCLUDED
   2643 #define HFP_SCO_MGMT_INCLUDED             TRUE
   2644 #endif
   2645 
   2646 /* CCAP compliant features and behavior desired */
   2647 #ifndef CCAP_COMPLIANCE
   2648 #define CCAP_COMPLIANCE             TRUE
   2649 #endif
   2650 
   2651 /* Caller ID string, part of +CLIP result code */
   2652 #ifndef HFP_MAX_CLIP_INFO
   2653 #define HFP_MAX_CLIP_INFO             45
   2654 #endif
   2655 
   2656 #ifndef HFP_RPT_PEER_INFO_INCLUDED
   2657 #define HFP_RPT_PEER_INFO_INCLUDED  TRUE  /* Reporting of peer features enabled */
   2658 #endif
   2659 
   2660 /******************************************************************************
   2661 **
   2662 ** HID
   2663 **
   2664 ******************************************************************************/
   2665 
   2666 /* HID Device Role Included */
   2667 #ifndef HID_DEV_INCLUDED
   2668 #define HID_DEV_INCLUDED             FALSE
   2669 #endif
   2670 
   2671 #ifndef HID_DEV_PM_INCLUDED
   2672 #define HID_DEV_PM_INCLUDED         TRUE
   2673 #endif
   2674 
   2675 /* The HID Device is a virtual cable */
   2676 #ifndef HID_DEV_VIRTUAL_CABLE
   2677 #define HID_DEV_VIRTUAL_CABLE       TRUE
   2678 #endif
   2679 
   2680 /* The HID device initiates the reconnections */
   2681 #ifndef HID_DEV_RECONN_INITIATE
   2682 #define HID_DEV_RECONN_INITIATE     TRUE
   2683 #endif
   2684 
   2685 /* THe HID device is normally connectable */
   2686 #ifndef HID_DEV_NORMALLY_CONN
   2687 #define HID_DEV_NORMALLY_CONN       FALSE
   2688 #endif
   2689 
   2690 /* The device is battery powered */
   2691 #ifndef HID_DEV_BATTERY_POW
   2692 #define HID_DEV_BATTERY_POW         TRUE
   2693 #endif
   2694 
   2695 /* Device is capable of waking up the host */
   2696 #ifndef HID_DEV_REMOTE_WAKE
   2697 #define HID_DEV_REMOTE_WAKE         TRUE
   2698 #endif
   2699 
   2700 /* Device needs host to close SDP channel after SDP is over */
   2701 #ifndef HID_DEV_SDP_DISABLE
   2702 #define HID_DEV_SDP_DISABLE         TRUE
   2703 #endif
   2704 
   2705 #ifndef HID_DEV_MTU_SIZE
   2706 #define HID_DEV_MTU_SIZE                 64
   2707 #endif
   2708 
   2709 #ifndef HID_DEV_FLUSH_TO
   2710 #define HID_DEV_FLUSH_TO                 0xffff
   2711 #endif
   2712 
   2713 #ifndef HID_DEV_PAGE_SCAN_WIN
   2714 #define HID_DEV_PAGE_SCAN_WIN       (0)
   2715 #endif
   2716 
   2717 #ifndef HID_DEV_PAGE_SCAN_INT
   2718 #define HID_DEV_PAGE_SCAN_INT       (0)
   2719 #endif
   2720 
   2721 #ifndef HID_DEV_MAX_CONN_RETRY
   2722 #define HID_DEV_MAX_CONN_RETRY      (15)
   2723 #endif
   2724 
   2725 #ifndef HID_DEV_REPAGE_WIN
   2726 #define HID_DEV_REPAGE_WIN          (1)
   2727 #endif
   2728 
   2729 #ifndef HID_DEV_SVC_NAME
   2730 #define HID_DEV_SVC_NAME            "HID"
   2731 #endif
   2732 
   2733 #ifndef HID_DEV_SVC_DESCR
   2734 #define HID_DEV_SVC_DESCR           "3-button mouse and keyboard"
   2735 #endif
   2736 
   2737 #ifndef HID_DEV_PROVIDER_NAME
   2738 #define HID_DEV_PROVIDER_NAME       "Widcomm"
   2739 #endif
   2740 
   2741 #ifndef HID_DEV_REL_NUM
   2742 #define HID_DEV_REL_NUM             0x0100
   2743 #endif
   2744 
   2745 #ifndef HID_DEV_PARSER_VER
   2746 #define HID_DEV_PARSER_VER          0x0111
   2747 #endif
   2748 
   2749 #ifndef HID_DEV_SUBCLASS
   2750 #define HID_DEV_SUBCLASS            COD_MINOR_POINTING
   2751 #endif
   2752 
   2753 #ifndef HID_DEV_COUNTRY_CODE
   2754 #define HID_DEV_COUNTRY_CODE        0x33
   2755 #endif
   2756 
   2757 #ifndef HID_DEV_SUP_TOUT
   2758 #define HID_DEV_SUP_TOUT            0x8000
   2759 #endif
   2760 
   2761 #ifndef HID_DEV_NUM_LANGS
   2762 #define HID_DEV_NUM_LANGS           1
   2763 #endif
   2764 
   2765 #ifndef HID_DEV_INACT_TIMEOUT
   2766 #define HID_DEV_INACT_TIMEOUT       60
   2767 #endif
   2768 
   2769 #ifndef HID_DEV_BUSY_MODE_PARAMS
   2770 #define HID_DEV_BUSY_MODE_PARAMS    { 320, 160, 10, 20, HCI_MODE_ACTIVE }
   2771 #endif
   2772 
   2773 #ifndef HID_DEV_IDLE_MODE_PARAMS
   2774 #define HID_DEV_IDLE_MODE_PARAMS    { 320, 160, 10, 20, HCI_MODE_SNIFF }
   2775 #endif
   2776 
   2777 #ifndef HID_DEV_SUSP_MODE_PARAMS
   2778 #define HID_DEV_SUSP_MODE_PARAMS    { 640, 320,  0,    0, HCI_MODE_PARK }
   2779 #endif
   2780 
   2781 #ifndef HID_DEV_MAX_DESCRIPTOR_SIZE
   2782 #define HID_DEV_MAX_DESCRIPTOR_SIZE      128     /* Max descriptor size          */
   2783 #endif
   2784 
   2785 #ifndef HID_DEV_LANGUAGELIST
   2786 #define HID_DEV_LANGUAGELIST             {0x35, 0x06, 0x09, 0x04, 0x09, 0x09, 0x01, 0x00}
   2787 #endif
   2788 
   2789 #ifndef HID_DEV_LINK_SUPERVISION_TO
   2790 #define HID_DEV_LINK_SUPERVISION_TO      0x8000
   2791 #endif
   2792 
   2793 #ifndef HID_CONTROL_POOL_ID
   2794 #define HID_CONTROL_POOL_ID             2
   2795 #endif
   2796 
   2797 #ifndef HID_INTERRUPT_POOL_ID
   2798 #define HID_INTERRUPT_POOL_ID           2
   2799 #endif
   2800 
   2801 /*************************************************************************
   2802 ** Definitions for Both HID-Host & Device
   2803 */
   2804 #ifndef HID_MAX_SVC_NAME_LEN
   2805 #define HID_MAX_SVC_NAME_LEN  32
   2806 #endif
   2807 
   2808 #ifndef HID_MAX_SVC_DESCR_LEN
   2809 #define HID_MAX_SVC_DESCR_LEN 32
   2810 #endif
   2811 
   2812 #ifndef HID_MAX_PROV_NAME_LEN
   2813 #define HID_MAX_PROV_NAME_LEN 32
   2814 #endif
   2815 
   2816 /*************************************************************************
   2817 ** Definitions for HID-Host
   2818 */
   2819 #ifndef  HID_HOST_INCLUDED
   2820 #define HID_HOST_INCLUDED           TRUE
   2821 #endif
   2822 
   2823 #ifndef HID_HOST_MAX_DEVICES
   2824 #define HID_HOST_MAX_DEVICES        7
   2825 #endif
   2826 
   2827 #ifndef HID_HOST_MTU
   2828 #define HID_HOST_MTU                640
   2829 #endif
   2830 
   2831 #ifndef HID_HOST_FLUSH_TO
   2832 #define HID_HOST_FLUSH_TO                 0xffff
   2833 #endif
   2834 
   2835 #ifndef HID_HOST_MAX_CONN_RETRY
   2836 #define HID_HOST_MAX_CONN_RETRY     (3)
   2837 #endif
   2838 
   2839 #ifndef HID_HOST_REPAGE_WIN
   2840 #define HID_HOST_REPAGE_WIN          (2)
   2841 #endif
   2842 
   2843 
   2844 /******************************************************************************
   2845 **
   2846 ** DUN and FAX
   2847 **
   2848 ******************************************************************************/
   2849 
   2850 #ifndef DUN_INCLUDED
   2851 #define DUN_INCLUDED                FALSE
   2852 #endif
   2853 
   2854 
   2855 /******************************************************************************
   2856 **
   2857 ** GOEP
   2858 **
   2859 ******************************************************************************/
   2860 
   2861 #ifndef GOEP_INCLUDED
   2862 #define GOEP_INCLUDED               FALSE
   2863 #endif
   2864 
   2865 /* This is set to enable GOEP non-blocking file system access functions. */
   2866 #ifndef GOEP_FS_INCLUDED
   2867 #define GOEP_FS_INCLUDED        FALSE
   2868 #endif
   2869 
   2870 /* GOEP authentication key size. */
   2871 #ifndef GOEP_MAX_AUTH_KEY_SIZE
   2872 #define GOEP_MAX_AUTH_KEY_SIZE      16
   2873 #endif
   2874 
   2875 /* Maximum size of the realm authentication string. */
   2876 #ifndef GOEP_MAX_AUTH_REALM_SIZE
   2877 #define GOEP_MAX_AUTH_REALM_SIZE    16
   2878 #endif
   2879 
   2880 /* Realm Character Set */
   2881 #ifndef GOEP_REALM_CHARSET
   2882 #define GOEP_REALM_CHARSET          0       /* ASCII */
   2883 #endif
   2884 
   2885 /* This is set to the maximum length of path name allowed in the system (_MAX_PATH). */
   2886 #ifndef GOEP_MAX_PATH_SIZE
   2887 #define GOEP_MAX_PATH_SIZE          255
   2888 #endif
   2889 
   2890 /* Specifies whether or not client's user id is required during obex authentication */
   2891 #ifndef GOEP_SERVER_USERID_REQUIRED
   2892 #define GOEP_SERVER_USERID_REQUIRED FALSE
   2893 #endif
   2894 
   2895 /* This is set to the maximum length of file name allowed in the system (_MAX_FNAME). */
   2896 #ifndef GOEP_MAX_FILE_SIZE
   2897 #define GOEP_MAX_FILE_SIZE          128
   2898 #endif
   2899 
   2900 /* Character used as path separator */
   2901 #ifndef GOEP_PATH_SEPARATOR
   2902 #define GOEP_PATH_SEPARATOR         ((char) 0x5c)   /* 0x2f ('/'), or 0x5c ('\') */
   2903 #endif
   2904 
   2905 /******************************************************************************
   2906 **
   2907 ** OPP
   2908 **
   2909 ******************************************************************************/
   2910 
   2911 #ifndef OPP_INCLUDED
   2912 #define OPP_INCLUDED                FALSE
   2913 #endif
   2914 
   2915 /* This is set to enable OPP client capabilities. */
   2916 #ifndef OPP_CLIENT_INCLUDED
   2917 #define OPP_CLIENT_INCLUDED         FALSE
   2918 #endif
   2919 
   2920 /* This is set to enable OPP server capabilities. */
   2921 #ifndef OPP_SERVER_INCLUDED
   2922 #define OPP_SERVER_INCLUDED         FALSE
   2923 #endif
   2924 
   2925 /* if the optional formating functions are to be included or not */
   2926 #ifndef OPP_FORMAT_INCLUDED
   2927 #define OPP_FORMAT_INCLUDED         FALSE
   2928 #endif
   2929 
   2930 /* Maximum number of client sessions allowed by server */
   2931 #ifndef OPP_MAX_SRVR_SESS
   2932 #define OPP_MAX_SRVR_SESS           3
   2933 #endif
   2934 
   2935 /******************************************************************************
   2936 **
   2937 ** FTP
   2938 **
   2939 ******************************************************************************/
   2940 
   2941 #ifndef FTP_INCLUDED
   2942 #define FTP_INCLUDED                FALSE
   2943 #endif
   2944 
   2945 /* This is set to enable FTP client capabilities. */
   2946 #ifndef FTP_CLIENT_INCLUDED
   2947 #define FTP_CLIENT_INCLUDED         TRUE
   2948 #endif
   2949 
   2950 /* This is set to enable FTP server capabilities. */
   2951 #ifndef FTP_SERVER_INCLUDED
   2952 #define FTP_SERVER_INCLUDED         TRUE
   2953 #endif
   2954 
   2955 /******************************************************************************
   2956 **
   2957 ** XML Parser
   2958 **
   2959 ******************************************************************************/
   2960 
   2961 #ifndef XML_STACK_SIZE
   2962 #define XML_STACK_SIZE             7
   2963 #endif
   2964 
   2965 /******************************************************************************
   2966 **
   2967 ** BPP Printer
   2968 **
   2969 ******************************************************************************/
   2970 #ifndef BPP_DEBUG
   2971 #define BPP_DEBUG            FALSE
   2972 #endif
   2973 
   2974 #ifndef BPP_INCLUDED
   2975 #define BPP_INCLUDED                FALSE
   2976 #endif
   2977 
   2978 #ifndef BPP_SND_INCLUDED
   2979 #define BPP_SND_INCLUDED            FALSE
   2980 #endif
   2981 
   2982 /* Maximum number of senders allowed to connect simultaneously
   2983 ** The maximum is 6 or (OBX_NUM_SERVERS / 2), whichever is smaller
   2984 */
   2985 #ifndef BPP_PR_MAX_CON
   2986 #define BPP_PR_MAX_CON         3
   2987 #endif
   2988 
   2989 /* Service Name. maximum length: 248
   2990 #ifndef BPP_SERVICE_NAME
   2991 #define BPP_SERVICE_NAME            "Basic Printing"
   2992 #endif
   2993  */
   2994 /* Document Format Supported. ASCII comma-delimited list of MIME type:version string
   2995 #ifndef BPP_DOC_FORMAT_SUPPORTED
   2996 #define BPP_DOC_FORMAT_SUPPORTED    "application/vnd.pwg-xhtml-print:1.0,application/vnd.hp-PCL:5E,application/PDF"
   2997 #endif
   2998 
   2999 #ifndef BPP_DOC_FORMAT_SUPPORTED_LEN
   3000 #define BPP_DOC_FORMAT_SUPPORTED_LEN    77
   3001 #endif
   3002  */
   3003 /* Character repertoires.
   3004 #ifndef BPP_CHARACTER_REPERTOIRES
   3005 #define BPP_CHARACTER_REPERTOIRES {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01}
   3006 #endif
   3007  */
   3008 /* XHTML formats.
   3009 #ifndef BPP_XHTML_PRINT_FORMATS
   3010 #define BPP_XHTML_PRINT_FORMATS     "image/gif:89A,image/jpeg"
   3011 #endif
   3012 
   3013 #ifndef BPP_XHTML_PRINT_FORMATS_LEN
   3014 #define BPP_XHTML_PRINT_FORMATS_LEN 24
   3015 #endif
   3016  */
   3017 /* Color supported.
   3018 #ifndef BPP_COLOR_SUPORTED
   3019 #define BPP_COLOR_SUPORTED          FALSE
   3020 #endif
   3021  */
   3022 /* 1284 ID string. First 2 bytes are the length.
   3023 #ifndef BPP_1284ID
   3024 #define BPP_1284ID                  "\x00\x48MANUFACTURER:ACME Manufacturing;COMMAND SET:PCL,MPL;MODEL:LaserBeam \?;"
   3025 #endif
   3026 
   3027 #ifndef BPP_1284ID_LEN
   3028 #define BPP_1284ID_LEN              72
   3029 #endif
   3030  */
   3031 /* Printer name.
   3032 #ifndef BPP_PRINTER_NAME
   3033 #define BPP_PRINTER_NAME            "My Printer"
   3034 #endif
   3035 
   3036 #ifndef BPP_PRINTER_NAME_LEN
   3037 #define BPP_PRINTER_NAME_LEN        10
   3038 #endif
   3039  */
   3040 
   3041 /* Printer location.
   3042 #ifndef BPP_PRINTER_LOCATION
   3043 #define BPP_PRINTER_LOCATION        "Hotel Lobby"
   3044 #endif
   3045 
   3046 #ifndef BPP_PRINTER_LOCATION_LEN
   3047 #define BPP_PRINTER_LOCATION_LEN    11
   3048 #endif
   3049  */
   3050 /* Duplex printing supported.
   3051 #ifndef BPP_DUPLEX_SUPPORTED
   3052 #define BPP_DUPLEX_SUPPORTED        TRUE
   3053 #endif
   3054  */
   3055 
   3056 /* Media types supported.
   3057 #ifndef BPP_MEDIA_TYPES_SUPPORTED
   3058 #define BPP_MEDIA_TYPES_SUPPORTED   "stationary,continuous-long,photographic-high-gloss,cardstock"
   3059 #endif
   3060 
   3061 #ifndef BPP_MEDIA_TYPES_SUPPORTED_LEN
   3062 #define BPP_MEDIA_TYPES_SUPPORTED_LEN   60
   3063 #endif
   3064  */
   3065 /* Maximum media with supported.
   3066 #ifndef BPP_MAX_MEDIA_WIDTH
   3067 #define BPP_MAX_MEDIA_WIDTH         205
   3068 #endif
   3069  */
   3070 /* Maximum media length supported.
   3071 #ifndef BPP_MAX_MEDIA_LENGTH
   3072 #define BPP_MAX_MEDIA_LENGTH        285
   3073 #endif
   3074  */
   3075 /* the maximum string len for the media size of medium loaded */
   3076 #ifndef BPP_MEDIA_SIZE_LEN
   3077 #define BPP_MEDIA_SIZE_LEN          33
   3078 #endif
   3079 
   3080 /* Debug Trace the SOAP object, if TRUE */
   3081 #ifndef BPP_TRACE_XML
   3082 #define BPP_TRACE_XML               TRUE
   3083 #endif
   3084 
   3085 /* in case that the SOAP object does not all come in one OBEX packet,
   3086  * this size of data may be kept in the BPP control block for continuing parsing.
   3087  * The maximum is the size of the biggest GKI buffer (GKI_MAX_BUF_SIZE) */
   3088 #ifndef BPP_SOAP_KEEP_SIZE
   3089 #define BPP_SOAP_KEEP_SIZE          200
   3090 #endif
   3091 
   3092 
   3093 /******************************************************************************
   3094 **
   3095 ** BIP
   3096 **
   3097 ******************************************************************************/
   3098 #ifndef BIP_INCLUDED
   3099 #define BIP_INCLUDED                FALSE
   3100 #endif
   3101 
   3102 /* TRUE to include imaging initiator */
   3103 #ifndef BIP_INITR_INCLUDED
   3104 #define BIP_INITR_INCLUDED          FALSE
   3105 #endif
   3106 
   3107 /* TRUE to include imaging responder */
   3108 #ifndef BIP_RSPDR_INCLUDED
   3109 #define BIP_RSPDR_INCLUDED          FALSE
   3110 #endif
   3111 
   3112 /* TRUE to include image push feature */
   3113 #ifndef BIP_PUSH_INCLUDED
   3114 #define BIP_PUSH_INCLUDED           TRUE
   3115 #endif
   3116 
   3117 /* TRUE to include image pull feature */
   3118 #ifndef BIP_PULL_INCLUDED
   3119 #define BIP_PULL_INCLUDED           TRUE
   3120 #endif
   3121 
   3122 /* TRUE to include advanced image printing feature */
   3123 #ifndef BIP_PRINTING_INCLUDED
   3124 #define BIP_PRINTING_INCLUDED       TRUE
   3125 #endif
   3126 
   3127 /* TRUE to include automatic archive feature */
   3128 #ifndef BIP_ARCHIVE_INCLUDED
   3129 #define BIP_ARCHIVE_INCLUDED        TRUE
   3130 #endif
   3131 
   3132 /* TRUE to include remote camera feature */
   3133 #ifndef BIP_CAMERA_INCLUDED
   3134 #define BIP_CAMERA_INCLUDED         TRUE
   3135 #endif
   3136 
   3137 /* TRUE to include remote display feature */
   3138 #ifndef BIP_DISPLAY_INCLUDED
   3139 #define BIP_DISPLAY_INCLUDED        TRUE
   3140 #endif
   3141 
   3142 /* TRUE to include sanity check code for API functions */
   3143 #ifndef BIP_SANITY_CHECKS
   3144 #define BIP_SANITY_CHECKS           TRUE
   3145 #endif
   3146 
   3147 /* TRUE to show the received XML object in trace for conformance tests */
   3148 #ifndef BIP_TRACE_XML
   3149 #define BIP_TRACE_XML               TRUE
   3150 #endif
   3151 
   3152 /* in case that the received XML object is not complete, the XML parser state machine needs
   3153  * to keep a copy of the data from the last '<'
   3154  * This macro specifies the maximun amount of data for this purpose */
   3155 #ifndef BIP_XML_CARRY_OVER_LEN
   3156 #define BIP_XML_CARRY_OVER_LEN      100
   3157 #endif
   3158 
   3159 /* minimum 4, maximum is 255. The value should be set to the maximum size of encoding string + 1. JPEG2000.
   3160  * If vendor specific format is supported, it might be bigger than 9 */
   3161 #ifndef BIP_IMG_ENCODE_SIZE
   3162 #define BIP_IMG_ENCODE_SIZE         9
   3163 #endif
   3164 
   3165 /* MIME type: text/plain */
   3166 #ifndef BIP_TYPE_SIZE
   3167 #define BIP_TYPE_SIZE               20
   3168 #endif
   3169 
   3170 /* example: iso-8895-1 */
   3171 #ifndef BIP_CHARSET_SIZE
   3172 #define BIP_CHARSET_SIZE            10
   3173 #endif
   3174 
   3175 /* friendly name */
   3176 #ifndef BIP_FNAME_SIZE
   3177 #define BIP_FNAME_SIZE              20
   3178 #endif
   3179 
   3180 /* service name */
   3181 #ifndef BIP_SNAME_SIZE
   3182 #define BIP_SNAME_SIZE              60
   3183 #endif
   3184 
   3185 /* temporary storage file name(for file system access, may include path) */
   3186 #ifndef BIP_TEMP_NAME_SIZE
   3187 #define BIP_TEMP_NAME_SIZE          200
   3188 #endif
   3189 
   3190 /* image file name */
   3191 #ifndef BIP_IMG_NAME_SIZE
   3192 #define BIP_IMG_NAME_SIZE           200
   3193 #endif
   3194 
   3195 /* attachment file name */
   3196 #ifndef BIP_ATT_NAME_SIZE
   3197 #define BIP_ATT_NAME_SIZE           200
   3198 #endif
   3199 
   3200 /* object (image, attachment, thumbnail) file name (may be used for file system) */
   3201 #ifndef BIP_OBJ_NAME_SIZE
   3202 #define BIP_OBJ_NAME_SIZE           200
   3203 #endif
   3204 
   3205 
   3206 
   3207 /******************************************************************************
   3208 **
   3209 ** HCRP
   3210 **
   3211 ******************************************************************************/
   3212 
   3213 #ifndef HCRP_INCLUDED
   3214 #define HCRP_INCLUDED               FALSE
   3215 #endif
   3216 
   3217 /* This is set to enable server. */
   3218 #ifndef HCRP_SERVER_INCLUDED
   3219 #define HCRP_SERVER_INCLUDED       FALSE
   3220 #endif
   3221 
   3222 /* This is set to enable client. */
   3223 #ifndef HCRP_CLIENT_INCLUDED
   3224 #define HCRP_CLIENT_INCLUDED        FALSE
   3225 #endif
   3226 
   3227 /* TRUE enables the notification option of the profile. */
   3228 #ifndef HCRP_NOTIFICATION_INCLUDED
   3229 #define HCRP_NOTIFICATION_INCLUDED  TRUE
   3230 #endif
   3231 
   3232 /* TRUE enables the vendor specific option of the profile. */
   3233 #ifndef HCRP_VENDOR_SPEC_INCLUDED
   3234 #define HCRP_VENDOR_SPEC_INCLUDED   TRUE
   3235 #endif
   3236 
   3237 /* TRUE enables state machine traces. */
   3238 #ifndef HCRP_FSM_DEBUG
   3239 #define HCRP_FSM_DEBUG              FALSE
   3240 #endif
   3241 
   3242 /* TRUE enables protocol message traces. */
   3243 #ifndef HCRP_PROTO_DEBUG
   3244 #define HCRP_PROTO_DEBUG            FALSE
   3245 #endif
   3246 
   3247 /* Maximum length used to store the service name (Minimum 1). */
   3248 #ifndef HCRP_MAX_SERVICE_NAME_LEN
   3249 #define HCRP_MAX_SERVICE_NAME_LEN   32
   3250 #endif
   3251 
   3252 /* Maximum length used to store the device name (Minimum 1). */
   3253 #ifndef HCRP_MAX_DEVICE_NAME_LEN
   3254 #define HCRP_MAX_DEVICE_NAME_LEN    32
   3255 #endif
   3256 
   3257 /* Maximum length of device location (Minimum 1) */
   3258 #ifndef HCRP_MAX_DEVICE_LOC_LEN
   3259 #define HCRP_MAX_DEVICE_LOC_LEN     32
   3260 #endif
   3261 
   3262 /* Maximum length used to store the friendly name (Minimum 1). */
   3263 #ifndef HCRP_MAX_FRIENDLY_NAME_LEN
   3264 #define HCRP_MAX_FRIENDLY_NAME_LEN  32
   3265 #endif
   3266 
   3267 /* Maximum length used to store the 1284 id string (Minimum 2 byte length field). */
   3268 #ifndef HCRP_MAX_SDP_1284_ID_LEN
   3269 #define HCRP_MAX_SDP_1284_ID_LEN    128
   3270 #endif
   3271 
   3272 /* Maximum length for parameters to be processed for vendor specific commands. */
   3273 #ifndef HCRP_MAX_VEND_SPEC_LEN
   3274 #define HCRP_MAX_VEND_SPEC_LEN      4
   3275 #endif
   3276 
   3277 /* Number of seconds to wait for 2nd GAP to open. */
   3278 #ifndef HCRP_OPEN_CHAN_TOUT
   3279 #define HCRP_OPEN_CHAN_TOUT         5
   3280 #endif
   3281 
   3282 /* Number of seconds to wait for 2nd GAP to close. */
   3283 #ifndef HCRP_CLOSE_CHAN_TOUT
   3284 #define HCRP_CLOSE_CHAN_TOUT        3
   3285 #endif
   3286 
   3287 /* Number of seconds to wait for the application to respond to a protocol request. */
   3288 #ifndef HCRP_APPL_RSP_TOUT
   3289 #define HCRP_APPL_RSP_TOUT          5
   3290 #endif
   3291 
   3292 /* Number of seconds to wait for the peer device to respond to a protocol request. */
   3293 #ifndef HCRP_CMD_RSP_TOUT
   3294 #define HCRP_CMD_RSP_TOUT           7
   3295 #endif
   3296 
   3297 /* Number of seconds between subsequent credit requests to the server when the send watermark has been exceeded. */
   3298 #ifndef HCRP_CREDIT_REQ_UPDATES
   3299 #define HCRP_CREDIT_REQ_UPDATES     1
   3300 #endif
   3301 
   3302 /* Maximum number of results to return in a HCRP_FindServices search. */
   3303 #ifndef HCRP_MAX_SEARCH_RESULTS
   3304 #define HCRP_MAX_SEARCH_RESULTS     1
   3305 #endif
   3306 
   3307 /* Maximum number of bytes to be reserved for searching for the client's notification record. */
   3308 #ifndef HCRP_MAX_NOTIF_DISC_BUF
   3309 #define HCRP_MAX_NOTIF_DISC_BUF     300
   3310 #endif
   3311 
   3312 /* Maximum number of clients the server will allow to be registered for notifications. */
   3313 #ifndef HCRP_MAX_NOTIF_CLIENTS
   3314 #define HCRP_MAX_NOTIF_CLIENTS      3
   3315 #endif
   3316 
   3317 /* Spec says minimum of two notification retries. */
   3318 #ifndef HCRP_NOTIF_NUM_RETRIES
   3319 #define HCRP_NOTIF_NUM_RETRIES      4
   3320 #endif
   3321 
   3322 /*************************************************************************
   3323 ** Definitions for Multi-Client Server HCRP
   3324 ** Note: Many of the above HCRP definitions are also used
   3325 ** Maximum number of clients allowed to connect simultaneously
   3326 ** Must be less than ((GAP_MAX_CONNECTIONS - 1) / 2)
   3327 */
   3328 #ifndef HCRPM_MAX_CLIENTS
   3329 #define HCRPM_MAX_CLIENTS           3
   3330 #endif
   3331 
   3332 
   3333 /******************************************************************************
   3334 **
   3335 ** PAN
   3336 **
   3337 ******************************************************************************/
   3338 
   3339 #ifndef PAN_INCLUDED
   3340 #define PAN_INCLUDED                FALSE
   3341 #endif
   3342 
   3343 
   3344 /******************************************************************************
   3345 **
   3346 ** SAP
   3347 **
   3348 ******************************************************************************/
   3349 
   3350 #ifndef SAP_SERVER_INCLUDED
   3351 #define SAP_SERVER_INCLUDED         FALSE
   3352 #endif
   3353 
   3354 /*************************************************************************
   3355  * A2DP Definitions
   3356  */
   3357 #ifndef A2D_INCLUDED
   3358 #define A2D_INCLUDED            TRUE
   3359 #endif
   3360 
   3361 /* TRUE to include SBC utility functions */
   3362 #ifndef A2D_SBC_INCLUDED
   3363 #define A2D_SBC_INCLUDED        A2D_INCLUDED
   3364 #endif
   3365 
   3366 /* TRUE to include MPEG-1,2 (mp3) utility functions */
   3367 #ifndef A2D_M12_INCLUDED
   3368 #define A2D_M12_INCLUDED        A2D_INCLUDED
   3369 #endif
   3370 
   3371 /* TRUE to include MPEG-2,4 (aac) utility functions */
   3372 #ifndef A2D_M24_INCLUDED
   3373 #define A2D_M24_INCLUDED        A2D_INCLUDED
   3374 #endif
   3375 
   3376 /******************************************************************************
   3377 **
   3378 ** AVCTP
   3379 **
   3380 ******************************************************************************/
   3381 
   3382 #ifndef AVCT_INCLUDED
   3383 #define AVCT_INCLUDED               TRUE
   3384 #endif
   3385 
   3386 /* Number of simultaneous ACL links to different peer devices. */
   3387 #ifndef AVCT_NUM_LINKS
   3388 #define AVCT_NUM_LINKS              2
   3389 #endif
   3390 
   3391 /* Number of simultaneous AVCTP connections. */
   3392 #ifndef AVCT_NUM_CONN
   3393 #define AVCT_NUM_CONN               3
   3394 #endif
   3395 
   3396 /* Pool ID where to reassemble the SDU.
   3397    This Pool allows buffers to be used that are larger than
   3398    the L2CAP_MAX_MTU. */
   3399 #ifndef AVCT_BR_USER_RX_POOL_ID
   3400 #define AVCT_BR_USER_RX_POOL_ID     HCI_ACL_POOL_ID
   3401 #endif
   3402 
   3403 /* Pool ID where to hold the SDU.
   3404    This Pool allows buffers to be used that are larger than
   3405    the L2CAP_MAX_MTU. */
   3406 #ifndef AVCT_BR_USER_TX_POOL_ID
   3407 #define AVCT_BR_USER_TX_POOL_ID     HCI_ACL_POOL_ID
   3408 #endif
   3409 
   3410 /*
   3411 GKI Buffer Pool ID used to hold MPS segments during SDU reassembly
   3412 */
   3413 #ifndef AVCT_BR_FCR_RX_POOL_ID
   3414 #define AVCT_BR_FCR_RX_POOL_ID      HCI_ACL_POOL_ID
   3415 #endif
   3416 
   3417 /*
   3418 GKI Buffer Pool ID used to hold MPS segments used in (re)transmissions.
   3419 L2CAP_DEFAULT_ERM_POOL_ID is specified to use the HCI ACL data pool.
   3420 Note:  This pool needs to have enough buffers to hold two times the window size negotiated
   3421  in the tL2CAP_FCR_OPTIONS (2 * tx_win_size)  to allow for retransmissions.
   3422  The size of each buffer must be able to hold the maximum MPS segment size passed in
   3423  tL2CAP_FCR_OPTIONS plus BT_HDR (8) + HCI preamble (4) + L2CAP_MIN_OFFSET (11 - as of BT 2.1 + EDR Spec).
   3424 */
   3425 #ifndef AVCT_BR_FCR_TX_POOL_ID
   3426 #define AVCT_BR_FCR_TX_POOL_ID      HCI_ACL_POOL_ID
   3427 #endif
   3428 
   3429 /* AVCTP Browsing channel FCR Option:
   3430 Size of the transmission window when using enhanced retransmission mode. Not used
   3431 in basic and streaming modes. Range: 1 - 63
   3432 */
   3433 #ifndef AVCT_BR_FCR_OPT_TX_WINDOW_SIZE
   3434 #define AVCT_BR_FCR_OPT_TX_WINDOW_SIZE      10
   3435 #endif
   3436 
   3437 /* AVCTP Browsing channel FCR Option:
   3438 Number of transmission attempts for a single I-Frame before taking
   3439 Down the connection. Used In ERTM mode only. Value is Ignored in basic and
   3440 Streaming modes.
   3441 Range: 0, 1-0xFF
   3442 0 - infinite retransmissions
   3443 1 - single transmission
   3444 */
   3445 #ifndef AVCT_BR_FCR_OPT_MAX_TX_B4_DISCNT
   3446 #define AVCT_BR_FCR_OPT_MAX_TX_B4_DISCNT    20
   3447 #endif
   3448 
   3449 /* AVCTP Browsing channel FCR Option: Retransmission Timeout
   3450 The AVRCP specification set a value in the range of 300 - 2000 ms
   3451 Timeout (in msecs) to detect Lost I-Frames. Only used in Enhanced retransmission mode.
   3452 Range: Minimum 2000 (2 secs) when supporting PBF.
   3453  */
   3454 #ifndef AVCT_BR_FCR_OPT_RETX_TOUT
   3455 #define AVCT_BR_FCR_OPT_RETX_TOUT           2000
   3456 #endif
   3457 
   3458 /* AVCTP Browsing channel FCR Option: Monitor Timeout
   3459 The AVRCP specification set a value in the range of 300 - 2000 ms
   3460 Timeout (in msecs) to detect Lost S-Frames. Only used in Enhanced retransmission mode.
   3461 Range: Minimum 12000 (12 secs) when supporting PBF.
   3462 */
   3463 #ifndef AVCT_BR_FCR_OPT_MONITOR_TOUT
   3464 #define AVCT_BR_FCR_OPT_MONITOR_TOUT        12000
   3465 #endif
   3466 
   3467 /******************************************************************************
   3468 **
   3469 ** AVRCP
   3470 **
   3471 ******************************************************************************/
   3472 
   3473 #ifndef AVRC_INCLUDED
   3474 #define AVRC_INCLUDED               TRUE
   3475 #endif
   3476 
   3477 #ifndef AVRC_METADATA_INCLUDED
   3478 #define AVRC_METADATA_INCLUDED      TRUE
   3479 #endif
   3480 
   3481 #ifndef AVRC_ADV_CTRL_INCLUDED
   3482 #define AVRC_ADV_CTRL_INCLUDED      TRUE
   3483 #endif
   3484 
   3485 #ifndef AVRC_CTLR_INCLUDED
   3486 #define AVRC_CTLR_INCLUDED          TRUE
   3487 #endif
   3488 
   3489 /******************************************************************************
   3490 **
   3491 ** MCAP
   3492 **
   3493 ******************************************************************************/
   3494 #ifndef MCA_INCLUDED
   3495 #define MCA_INCLUDED                FALSE
   3496 #endif
   3497 
   3498 /* TRUE to support Clock Synchronization OpCodes */
   3499 #ifndef MCA_SYNC_INCLUDED
   3500 #define MCA_SYNC_INCLUDED           FALSE
   3501 #endif
   3502 
   3503 /* The MTU size for the L2CAP configuration on control channel. 48 is the minimal */
   3504 #ifndef MCA_CTRL_MTU
   3505 #define MCA_CTRL_MTU    60
   3506 #endif
   3507 
   3508 /* The maximum number of registered MCAP instances. */
   3509 #ifndef MCA_NUM_REGS
   3510 #define MCA_NUM_REGS    12
   3511 #endif
   3512 
   3513 /* The maximum number of control channels (to difference devices) per registered MCAP instances. */
   3514 #ifndef MCA_NUM_LINKS
   3515 #define MCA_NUM_LINKS   3
   3516 #endif
   3517 
   3518 /* The maximum number of MDEP (including HDP echo) per registered MCAP instances. */
   3519 #ifndef MCA_NUM_DEPS
   3520 #define MCA_NUM_DEPS    13
   3521 #endif
   3522 
   3523 /* The maximum number of MDL link per control channel. */
   3524 #ifndef MCA_NUM_MDLS
   3525 #define MCA_NUM_MDLS    4
   3526 #endif
   3527 
   3528 /* Pool ID where to reassemble the SDU. */
   3529 #ifndef MCA_USER_RX_POOL_ID
   3530 #define MCA_USER_RX_POOL_ID     HCI_ACL_POOL_ID
   3531 #endif
   3532 
   3533 /* Pool ID where to hold the SDU. */
   3534 #ifndef MCA_USER_TX_POOL_ID
   3535 #define MCA_USER_TX_POOL_ID     HCI_ACL_POOL_ID
   3536 #endif
   3537 
   3538 /*
   3539 GKI Buffer Pool ID used to hold MPS segments during SDU reassembly
   3540 */
   3541 #ifndef MCA_FCR_RX_POOL_ID
   3542 #define MCA_FCR_RX_POOL_ID      HCI_ACL_POOL_ID
   3543 #endif
   3544 
   3545 /*
   3546 GKI Buffer Pool ID used to hold MPS segments used in (re)transmissions.
   3547 L2CAP_DEFAULT_ERM_POOL_ID is specified to use the HCI ACL data pool.
   3548 Note:  This pool needs to have enough buffers to hold two times the window size negotiated
   3549  in the tL2CAP_FCR_OPTIONS (2 * tx_win_size)  to allow for retransmissions.
   3550  The size of each buffer must be able to hold the maximum MPS segment size passed in
   3551  tL2CAP_FCR_OPTIONS plus BT_HDR (8) + HCI preamble (4) + L2CAP_MIN_OFFSET (11 - as of BT 2.1 + EDR Spec).
   3552 */
   3553 #ifndef MCA_FCR_TX_POOL_ID
   3554 #define MCA_FCR_TX_POOL_ID      HCI_ACL_POOL_ID
   3555 #endif
   3556 
   3557 /* MCAP control channel FCR Option:
   3558 Size of the transmission window when using enhanced retransmission mode.
   3559 1 is defined by HDP specification for control channel.
   3560 */
   3561 #ifndef MCA_FCR_OPT_TX_WINDOW_SIZE
   3562 #define MCA_FCR_OPT_TX_WINDOW_SIZE      1
   3563 #endif
   3564 
   3565 /* MCAP control channel FCR Option:
   3566 Number of transmission attempts for a single I-Frame before taking
   3567 Down the connection. Used In ERTM mode only. Value is Ignored in basic and
   3568 Streaming modes.
   3569 Range: 0, 1-0xFF
   3570 0 - infinite retransmissions
   3571 1 - single transmission
   3572 */
   3573 #ifndef MCA_FCR_OPT_MAX_TX_B4_DISCNT
   3574 #define MCA_FCR_OPT_MAX_TX_B4_DISCNT    20
   3575 #endif
   3576 
   3577 /* MCAP control channel FCR Option: Retransmission Timeout
   3578 The AVRCP specification set a value in the range of 300 - 2000 ms
   3579 Timeout (in msecs) to detect Lost I-Frames. Only used in Enhanced retransmission mode.
   3580 Range: Minimum 2000 (2 secs) when supporting PBF.
   3581  */
   3582 #ifndef MCA_FCR_OPT_RETX_TOUT
   3583 #define MCA_FCR_OPT_RETX_TOUT           2000
   3584 #endif
   3585 
   3586 /* MCAP control channel FCR Option: Monitor Timeout
   3587 The AVRCP specification set a value in the range of 300 - 2000 ms
   3588 Timeout (in msecs) to detect Lost S-Frames. Only used in Enhanced retransmission mode.
   3589 Range: Minimum 12000 (12 secs) when supporting PBF.
   3590 */
   3591 #ifndef MCA_FCR_OPT_MONITOR_TOUT
   3592 #define MCA_FCR_OPT_MONITOR_TOUT        12000
   3593 #endif
   3594 
   3595 /* MCAP control channel FCR Option: Maximum PDU payload size.
   3596 The maximum number of payload octets that the local device can receive in a single PDU.
   3597 */
   3598 #ifndef MCA_FCR_OPT_MPS_SIZE
   3599 #define MCA_FCR_OPT_MPS_SIZE            1000
   3600 #endif
   3601 
   3602 /* Shared transport */
   3603 #ifndef NFC_SHARED_TRANSPORT_ENABLED
   3604 #define NFC_SHARED_TRANSPORT_ENABLED    FALSE
   3605 #endif
   3606 
   3607 /******************************************************************************
   3608 **
   3609 ** SER
   3610 **
   3611 ******************************************************************************/
   3612 
   3613 #ifndef SER_INCLUDED
   3614 #define SER_INCLUDED                FALSE
   3615 #endif
   3616 
   3617 /* Task which runs the serial application. */
   3618 #ifndef SER_TASK
   3619 #define SER_TASK                    BTE_APPL_TASK
   3620 #endif
   3621 
   3622 /* Mailbox used by serial application. */
   3623 #ifndef SER_MBOX
   3624 #define SER_MBOX                    TASK_MBOX_1
   3625 #endif
   3626 
   3627 /* Mailbox mask. */
   3628 #ifndef SER_MBOX_MASK
   3629 #define SER_MBOX_MASK               TASK_MBOX_1_EVT_MASK
   3630 #endif
   3631 
   3632 /* TX path application event. */
   3633 #ifndef SER_TX_PATH_APPL_EVT
   3634 #define SER_TX_PATH_APPL_EVT        EVENT_MASK(APPL_EVT_3)
   3635 #endif
   3636 
   3637 /* RX path application event. */
   3638 #ifndef SER_RX_PATH_APPL_EVT
   3639 #define SER_RX_PATH_APPL_EVT        EVENT_MASK(APPL_EVT_4)
   3640 #endif
   3641 
   3642 /******************************************************************************
   3643 **
   3644 ** Sleep Mode (Low Power Mode)
   3645 **
   3646 ******************************************************************************/
   3647 
   3648 #ifndef HCILP_INCLUDED
   3649 #define HCILP_INCLUDED                  TRUE
   3650 #endif
   3651 
   3652 /******************************************************************************
   3653 **
   3654 ** RPC
   3655 **
   3656 ******************************************************************************/
   3657 
   3658 #ifndef RPC_INCLUDED
   3659 #define RPC_INCLUDED                FALSE
   3660 #endif
   3661 
   3662 /* RPCT task mailbox ID for messages coming from rpcgen code. */
   3663 #ifndef RPCT_MBOX
   3664 #define RPCT_MBOX                   TASK_MBOX_0
   3665 #endif
   3666 
   3667 /* RPCT task event for mailbox. */
   3668 #ifndef RPCT_RPC_MBOX_EVT
   3669 #define RPCT_RPC_MBOX_EVT           TASK_MBOX_0_EVT_MASK
   3670 #endif
   3671 
   3672 /* RPCT task event from driver indicating RX data is ready. */
   3673 #ifndef RPCT_RX_READY_EVT
   3674 #define RPCT_RX_READY_EVT           APPL_EVT_0
   3675 #endif
   3676 
   3677 /* RPCT task event from driver indicating data TX is done. */
   3678 #ifndef RPCT_TX_DONE_EVT
   3679 #define RPCT_TX_DONE_EVT            APPL_EVT_1
   3680 #endif
   3681 
   3682 /* RPCT task event indicating data is in the circular buffer. */
   3683 #ifndef RPCT_UCBUF_EVT
   3684 #define RPCT_UCBUF_EVT              APPL_EVT_2
   3685 #endif
   3686 
   3687 /* Task ID of RPCGEN task. */
   3688 #ifndef RPCGEN_TASK
   3689 #define RPCGEN_TASK                 BTU_TASK
   3690 #endif
   3691 
   3692 /* RPCGEN task event for messages coming from RPCT. */
   3693 #ifndef RPCGEN_MSG_EVT
   3694 #define RPCGEN_MSG_EVT              TASK_MBOX_1_EVT_MASK
   3695 #endif
   3696 
   3697 #ifndef RPCGEN_MSG_MBOX
   3698 #define RPCGEN_MSG_MBOX             TASK_MBOX_1
   3699 #endif
   3700 
   3701 /* Size of circular buffer used to store diagnostic messages. */
   3702 #ifndef RPCT_UCBUF_SIZE
   3703 #define RPCT_UCBUF_SIZE             2000
   3704 #endif
   3705 
   3706 /******************************************************************************
   3707 **
   3708 ** SAP - Sample applications
   3709 **
   3710 ******************************************************************************/
   3711 
   3712 #ifndef MMI_INCLUDED
   3713 #define MMI_INCLUDED                FALSE
   3714 #endif
   3715 
   3716 /******************************************************************************
   3717 **
   3718 ** APPL - Application Task
   3719 **
   3720 ******************************************************************************/
   3721 /* When TRUE indicates that an application task is to be run */
   3722 #ifndef APPL_INCLUDED
   3723 #define APPL_INCLUDED                TRUE
   3724 #endif
   3725 
   3726 /* When TRUE remote terminal code included (RPC MUST be included) */
   3727 #ifndef RSI_INCLUDED
   3728 #define RSI_INCLUDED                TRUE
   3729 #endif
   3730 
   3731 
   3732 
   3733 #define L2CAP_FEATURE_REQ_ID      73
   3734 #define L2CAP_FEATURE_RSP_ID     173
   3735 
   3736 
   3737 /******************************************************************************
   3738 **
   3739 ** BTA
   3740 **
   3741 ******************************************************************************/
   3742 /* BTA EIR canned UUID list (default is dynamic) */
   3743 #ifndef BTA_EIR_CANNED_UUID_LIST
   3744 #define BTA_EIR_CANNED_UUID_LIST FALSE
   3745 #endif
   3746 
   3747 /* Number of supported customer UUID in EIR */
   3748 #ifndef BTA_EIR_SERVER_NUM_CUSTOM_UUID
   3749 #define BTA_EIR_SERVER_NUM_CUSTOM_UUID     8
   3750 #endif
   3751 
   3752 /* CHLD override for bluedroid */
   3753 #ifndef BTA_AG_CHLD_VAL_ECC
   3754 #define BTA_AG_CHLD_VAL_ECC  "(0,1,1x,2,2x,3)"
   3755 #endif
   3756 
   3757 #ifndef BTA_AG_CHLD_VAL
   3758 #define BTA_AG_CHLD_VAL  "(0,1,2,3)"
   3759 #endif
   3760 
   3761 /* Set the CIND to match HFP 1.5 */
   3762 #ifndef BTA_AG_CIND_INFO
   3763 #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))"
   3764 #endif
   3765 
   3766 #ifndef BTA_DM_AVOID_A2DP_ROLESWITCH_ON_INQUIRY
   3767 #define BTA_DM_AVOID_A2DP_ROLESWITCH_ON_INQUIRY TRUE
   3768 #endif
   3769 
   3770 /******************************************************************************
   3771 **
   3772 ** BTE
   3773 **
   3774 ******************************************************************************/
   3775 #ifndef BTE_PLATFORM_IDLE
   3776 #define BTE_PLATFORM_IDLE
   3777 #endif
   3778 
   3779 #ifndef BTE_IDLE_TASK_INCLUDED
   3780 #define BTE_IDLE_TASK_INCLUDED FALSE
   3781 #endif
   3782 
   3783 #ifndef BTE_PLATFORM_INITHW
   3784 #define BTE_PLATFORM_INITHW
   3785 #endif
   3786 
   3787 #ifndef BTE_BTA_CODE_INCLUDED
   3788 #define BTE_BTA_CODE_INCLUDED FALSE
   3789 #endif
   3790 
   3791 /******************************************************************************
   3792 **
   3793 ** BTTRC
   3794 **
   3795 ******************************************************************************/
   3796 /* Whether to parse and display traces-> Platform specific implementation */
   3797 #ifndef BTTRC_DISP
   3798 #define BTTRC_DISP        BTTRC_DispOnInsight
   3799 #endif
   3800 
   3801 /******************************************************************************
   3802 **
   3803 ** Tracing:  Include trace header file here.
   3804 **
   3805 ******************************************************************************/
   3806 
   3807 #include "bt_trace.h"
   3808 
   3809 #endif /* BT_TARGET_H */
   3810