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