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