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