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