1 /****************************************************************************** 2 * 3 * Copyright (c) 2014 The Android Open Source Project 4 * Copyright (C) 1999-2012 Broadcom Corporation 5 * 6 * Licensed under the Apache License, Version 2.0 (the "License"); 7 * you may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at: 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, software 13 * distributed under the License is distributed on an "AS IS" BASIS, 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 * 18 ******************************************************************************/ 19 20 #ifndef BT_TARGET_H 21 #define BT_TARGET_H 22 23 #ifndef BUILDCFG 24 #define BUILDCFG 25 #endif 26 27 #if !defined(HAS_BDROID_BUILDCFG) && !defined(HAS_NO_BDROID_BUILDCFG) 28 #error "An Android.mk file did not include bdroid_CFLAGS and possibly not bdorid_C_INCLUDES" 29 #endif 30 31 #ifdef HAS_BDROID_BUILDCFG 32 #include "bdroid_buildcfg.h" 33 #endif 34 35 #include "bt_types.h" /* This must be defined AFTER buildcfg.h */ 36 37 /* Include common GKI definitions used by this platform */ 38 #include "gki_target.h" 39 #include "dyn_mem.h" /* defines static and/or dynamic memory for components */ 40 41 //------------------Added from bdroid_buildcfg.h--------------------- 42 #ifndef L2CAP_EXTFEA_SUPPORTED_MASK 43 #define L2CAP_EXTFEA_SUPPORTED_MASK (L2CAP_EXTFEA_ENH_RETRANS | L2CAP_EXTFEA_STREAM_MODE | L2CAP_EXTFEA_NO_CRC | L2CAP_EXTFEA_FIXED_CHNLS) 44 #endif 45 46 #ifndef BTUI_OPS_FORMATS 47 #define BTUI_OPS_FORMATS (BTA_OP_VCARD21_MASK | BTA_OP_ANY_MASK) 48 #endif 49 50 #ifndef BTA_RFC_MTU_SIZE 51 #define BTA_RFC_MTU_SIZE (L2CAP_MTU_SIZE-L2CAP_MIN_OFFSET-RFCOMM_DATA_OVERHEAD) 52 #endif 53 54 #ifndef SBC_NO_PCM_CPY_OPTION 55 #define SBC_NO_PCM_CPY_OPTION FALSE 56 #endif 57 58 #ifndef BTA_INCLUDED 59 #define BTA_INCLUDED TRUE 60 #endif 61 62 #ifndef BTA_PAN_INCLUDED 63 #define BTA_PAN_INCLUDED TRUE 64 #endif 65 66 #ifndef BTA_HH_INCLUDED 67 #define BTA_HH_INCLUDED TRUE 68 #endif 69 70 #ifndef BTA_HH_ROLE 71 #define BTA_HH_ROLE BTA_MASTER_ROLE_PREF 72 #endif 73 74 #ifndef BTA_HH_LE_INCLUDED 75 #define BTA_HH_LE_INCLUDED TRUE 76 #endif 77 78 #ifndef BTA_AR_INCLUDED 79 #define BTA_AR_INCLUDED TRUE 80 #endif 81 82 #ifndef BTA_AV_INCLUDED 83 #define BTA_AV_INCLUDED TRUE 84 #endif 85 86 #ifndef BTA_GATT_INCLUDED 87 #define BTA_GATT_INCLUDED TRUE 88 #endif 89 90 #ifndef BTA_AV_SINK_INCLUDED 91 #define BTA_AV_SINK_INCLUDED FALSE 92 #endif 93 94 #ifndef BTA_DISABLE_DELAY 95 #define BTA_DISABLE_DELAY 200 /* in milliseconds */ 96 #endif 97 98 // If the next wakeup time is less than this threshold, we should acquire 99 // a wakelock instead of setting a wake alarm so we're not bouncing in 100 // and out of suspend frequently. 101 // in millisecond 102 // TODO(zachoverflow): reinstate in alarm code 103 #ifndef GKI_TIMER_INTERVAL_FOR_WAKELOCK 104 #define GKI_TIMER_INTERVAL_FOR_WAKELOCK 3000 105 #endif 106 107 #ifndef BTA_SYS_TIMER_PERIOD 108 #define BTA_SYS_TIMER_PERIOD 100 109 #endif 110 111 #ifndef SBC_FOR_EMBEDDED_LINUX 112 #define SBC_FOR_EMBEDDED_LINUX TRUE 113 #endif 114 115 #ifndef AVDT_VERSION 116 #define AVDT_VERSION 0x0102 117 #endif 118 119 #ifndef BTA_AG_AT_MAX_LEN 120 #define BTA_AG_AT_MAX_LEN 512 121 #endif 122 123 #ifndef BTA_AVRCP_FF_RW_SUPPORT 124 #define BTA_AVRCP_FF_RW_SUPPORT TRUE 125 #endif 126 127 #ifndef BTA_AG_SCO_PKT_TYPES 128 #define BTA_AG_SCO_PKT_TYPES (BTM_SCO_LINK_ONLY_MASK | BTM_SCO_PKT_TYPES_MASK_EV3 | BTM_SCO_PKT_TYPES_MASK_NO_3_EV3 | BTM_SCO_PKT_TYPES_MASK_NO_2_EV5 | BTM_SCO_PKT_TYPES_MASK_NO_3_EV5) 129 #endif 130 131 #ifndef BTA_AV_RET_TOUT 132 #define BTA_AV_RET_TOUT 15 133 #endif 134 135 #ifndef PORCHE_PAIRING_CONFLICT 136 #define PORCHE_PAIRING_CONFLICT TRUE 137 #endif 138 139 #ifndef BTA_AV_CO_CP_SCMS_T 140 #define BTA_AV_CO_CP_SCMS_T FALSE 141 #endif 142 143 /* This feature is used to eanble interleaved scan*/ 144 #ifndef BTA_HOST_INTERLEAVE_SEARCH 145 #define BTA_HOST_INTERLEAVE_SEARCH FALSE 146 #endif 147 148 #ifndef BT_USE_TRACES 149 #define BT_USE_TRACES TRUE 150 #endif 151 152 #ifndef BT_TRACE_BTIF 153 #define BT_TRACE_BTIF TRUE 154 #endif 155 156 #ifndef BT_TRACE_VERBOSE 157 #define BT_TRACE_VERBOSE FALSE 158 #endif 159 160 #ifndef BTA_DM_SDP_DB_SIZE 161 #define BTA_DM_SDP_DB_SIZE 8000 162 #endif 163 164 #ifndef HL_INCLUDED 165 #define HL_INCLUDED TRUE 166 #endif 167 168 #ifndef AG_VOICE_SETTINGS 169 #define AG_VOICE_SETTINGS HCI_DEFAULT_VOICE_SETTINGS 170 #endif 171 172 #ifndef BTIF_DM_OOB_TEST 173 #define BTIF_DM_OOB_TEST TRUE 174 #endif 175 176 // How long to wait before activating sniff mode after entering the 177 // idle state for FTS, OPS connections 178 #ifndef BTA_FTS_OPS_IDLE_TO_SNIFF_DELAY_MS 179 #define BTA_FTS_OPS_IDLE_TO_SNIFF_DELAY_MS 7000 180 #endif 181 182 //------------------End added from bdroid_buildcfg.h--------------------- 183 184 185 /****************************************************************************** 186 ** 187 ** GKI Buffer Pools 188 ** 189 ******************************************************************************/ 190 191 /* Receives HCI events from the lower-layer. */ 192 #ifndef HCI_CMD_POOL_ID 193 #define HCI_CMD_POOL_ID GKI_POOL_ID_2 194 #endif 195 196 #ifndef HCI_CMD_POOL_BUF_SIZE 197 #define HCI_CMD_POOL_BUF_SIZE GKI_BUF2_SIZE 198 #endif 199 200 /* Receives ACL data packets from thelower-layer. */ 201 #ifndef HCI_ACL_POOL_ID 202 #define HCI_ACL_POOL_ID GKI_POOL_ID_3 203 #endif 204 205 /* Maximum number of buffers available for ACL receive data. */ 206 #ifndef HCI_ACL_BUF_MAX 207 #define HCI_ACL_BUF_MAX GKI_BUF3_MAX 208 #endif 209 210 /* Receives SCO data packets from the lower-layer. */ 211 #ifndef HCI_SCO_POOL_ID 212 #define HCI_SCO_POOL_ID GKI_POOL_ID_6 213 #endif 214 215 /* Sends SDP data packets. */ 216 #ifndef SDP_POOL_ID 217 #define SDP_POOL_ID 3 218 #endif 219 220 /* Sends RFCOMM command packets. */ 221 #ifndef RFCOMM_CMD_POOL_ID 222 #define RFCOMM_CMD_POOL_ID GKI_POOL_ID_2 223 #endif 224 225 /* Sends RFCOMM data packets. */ 226 #ifndef RFCOMM_DATA_POOL_ID 227 #define RFCOMM_DATA_POOL_ID GKI_POOL_ID_3 228 #endif 229 230 #ifndef RFCOMM_DATA_POOL_BUF_SIZE 231 #define RFCOMM_DATA_POOL_BUF_SIZE GKI_BUF3_SIZE 232 #endif 233 234 /* Sends L2CAP packets to the peer and HCI messages to the controller. */ 235 #ifndef L2CAP_CMD_POOL_ID 236 #define L2CAP_CMD_POOL_ID GKI_POOL_ID_2 237 #endif 238 239 /* Sends L2CAP segmented packets in ERTM mode */ 240 #ifndef L2CAP_FCR_TX_POOL_ID 241 #define L2CAP_FCR_TX_POOL_ID HCI_ACL_POOL_ID 242 #endif 243 244 /* Receives L2CAP segmented packets in ERTM mode */ 245 #ifndef L2CAP_FCR_RX_POOL_ID 246 #define L2CAP_FCR_RX_POOL_ID HCI_ACL_POOL_ID 247 #endif 248 249 /* Number of ACL buffers to assign to LE 250 if the HCI buffer pool is shared with BR/EDR */ 251 #ifndef L2C_DEF_NUM_BLE_BUF_SHARED 252 #define L2C_DEF_NUM_BLE_BUF_SHARED 1 253 #endif 254 255 /* Used by BTM when it sends HCI commands to the controller. */ 256 #ifndef BTM_CMD_POOL_ID 257 #define BTM_CMD_POOL_ID GKI_POOL_ID_2 258 #endif 259 260 #ifndef OBX_LRG_DATA_POOL_SIZE 261 #define OBX_LRG_DATA_POOL_SIZE GKI_BUF4_SIZE 262 #endif 263 264 #ifndef OBX_LRG_DATA_POOL_ID 265 #define OBX_LRG_DATA_POOL_ID GKI_POOL_ID_4 266 #endif 267 /* Used to send data to L2CAP. */ 268 #ifndef GAP_DATA_POOL_ID 269 #define GAP_DATA_POOL_ID GKI_POOL_ID_3 270 #endif 271 272 #ifndef SPP_DB_SIZE 273 #define SPP_DB_SIZE GKI_BUF3_SIZE 274 #endif 275 276 /* BNEP data and protocol messages. */ 277 #ifndef BNEP_POOL_ID 278 #define BNEP_POOL_ID GKI_POOL_ID_3 279 #endif 280 281 /* RPC pool for temporary trace message buffers. */ 282 #ifndef RPC_SCRATCH_POOL_ID 283 #define RPC_SCRATCH_POOL_ID GKI_POOL_ID_2 284 #endif 285 286 /* AVDTP pool for protocol messages */ 287 #ifndef AVDT_CMD_POOL_ID 288 #define AVDT_CMD_POOL_ID GKI_POOL_ID_2 289 #endif 290 291 /* AVDTP pool size for media packets in case of fragmentation */ 292 #ifndef AVDT_DATA_POOL_SIZE 293 #define AVDT_DATA_POOL_SIZE GKI_BUF3_SIZE 294 #endif 295 296 #ifndef PAN_POOL_ID 297 #define PAN_POOL_ID GKI_POOL_ID_3 298 /* Maximum amount of the shared buffer to allocate for PAN */ 299 #define PAN_POOL_MAX (GKI_BUF3_MAX / 4) 300 #endif 301 302 /* AVCTP pool for protocol messages */ 303 #ifndef AVCT_CMD_POOL_ID 304 #define AVCT_CMD_POOL_ID GKI_POOL_ID_1 305 #endif 306 307 /* AVRCP pool for protocol messages */ 308 #ifndef AVRC_CMD_POOL_ID 309 #define AVRC_CMD_POOL_ID GKI_POOL_ID_1 310 #endif 311 312 /* AVRCP pool size for protocol messages */ 313 #ifndef AVRC_CMD_POOL_SIZE 314 #define AVRC_CMD_POOL_SIZE GKI_BUF1_SIZE 315 #endif 316 317 /* AVRCP Metadata pool for protocol messages */ 318 #ifndef AVRC_META_CMD_POOL_ID 319 #define AVRC_META_CMD_POOL_ID GKI_POOL_ID_2 320 #endif 321 322 /* AVRCP Metadata pool size for protocol messages */ 323 #ifndef AVRC_META_CMD_POOL_SIZE 324 #define AVRC_META_CMD_POOL_SIZE GKI_BUF2_SIZE 325 #endif 326 327 328 /* AVRCP buffer size for browsing channel messages */ 329 #ifndef AVRC_BROWSE_POOL_SIZE 330 #define AVRC_BROWSE_POOL_SIZE GKI_MAX_BUF_SIZE 331 #endif 332 333 #ifndef BTA_HL_LRG_DATA_POOL_ID 334 #define BTA_HL_LRG_DATA_POOL_ID GKI_POOL_ID_7 335 #endif 336 337 /* GATT Server Database pool ID */ 338 #ifndef GATT_DB_POOL_ID 339 #define GATT_DB_POOL_ID GKI_POOL_ID_8 340 #endif 341 342 /* GATT Data sending buffer pool ID, use default ACL pool for fix channel data */ 343 #ifndef GATT_BUF_POOL_ID 344 #define GATT_BUF_POOL_ID HCI_ACL_POOL_ID 345 #endif 346 347 /****************************************************************************** 348 ** 349 ** Lower Layer Interface 350 ** 351 ******************************************************************************/ 352 353 /* Macro for allocating buffer for HCI commands */ 354 #ifndef HCI_GET_CMD_BUF 355 #if (!defined(HCI_USE_VARIABLE_SIZE_CMD_BUF) || (HCI_USE_VARIABLE_SIZE_CMD_BUF == FALSE)) 356 /* Allocate fixed-size buffer from HCI_CMD_POOL (default case) */ 357 #define HCI_GET_CMD_BUF(paramlen) ((BT_HDR *)GKI_getpoolbuf (HCI_CMD_POOL_ID)) 358 #else 359 /* Allocate smallest possible buffer (for platforms with limited RAM) */ 360 #define HCI_GET_CMD_BUF(paramlen) ((BT_HDR *)GKI_getbuf ((UINT16)(BT_HDR_SIZE + HCIC_PREAMBLE_SIZE + (paramlen)))) 361 #endif 362 #endif /* HCI_GET_CMD_BUF */ 363 364 /****************************************************************************** 365 ** 366 ** HCI Services (H4) 367 ** 368 ******************************************************************************/ 369 370 /* Use 2 second for low-resolution systems, override to 1 for high-resolution systems */ 371 #ifndef BT_1SEC_TIMEOUT 372 #define BT_1SEC_TIMEOUT (2) 373 #endif 374 375 /* Quick Timer */ 376 /* if L2CAP_FCR_INCLUDED is TRUE then it should have 100 millisecond resolution */ 377 /* if none of them is included then QUICK_TIMER_TICKS_PER_SEC is set to 0 to exclude quick timer */ 378 #ifndef QUICK_TIMER_TICKS_PER_SEC 379 #define QUICK_TIMER_TICKS_PER_SEC 10 /* 100ms timer */ 380 #endif 381 382 /****************************************************************************** 383 ** 384 ** BTM 385 ** 386 ******************************************************************************/ 387 388 /* Cancel Inquiry on incoming SSP */ 389 #ifndef BTM_NO_SSP_ON_INQUIRY 390 #define BTM_NO_SSP_ON_INQUIRY FALSE 391 #endif 392 393 /* Includes SCO if TRUE */ 394 #ifndef BTM_SCO_INCLUDED 395 #define BTM_SCO_INCLUDED TRUE /* TRUE includes SCO code */ 396 #endif 397 398 /* Includes SCO if TRUE */ 399 #ifndef BTM_SCO_HCI_INCLUDED 400 #define BTM_SCO_HCI_INCLUDED FALSE /* TRUE includes SCO over HCI code */ 401 #endif 402 403 /* Includes WBS if TRUE */ 404 #ifndef BTM_WBS_INCLUDED 405 #define BTM_WBS_INCLUDED FALSE /* TRUE includes WBS code */ 406 #endif 407 408 /* This is used to work around a controller bug that doesn't like Disconnect 409 ** issued while there is a role switch in progress 410 */ 411 #ifndef BTM_DISC_DURING_RS 412 #define BTM_DISC_DURING_RS TRUE 413 #endif 414 415 /************************** 416 ** Initial SCO TX credit 417 *************************/ 418 /* max TX SCO data packet size */ 419 #ifndef BTM_SCO_DATA_SIZE_MAX 420 #define BTM_SCO_DATA_SIZE_MAX 240 421 #endif 422 423 /* The size in bytes of the BTM inquiry database. */ 424 #ifndef BTM_INQ_DB_SIZE 425 #define BTM_INQ_DB_SIZE 40 426 #endif 427 428 /* The default scan mode */ 429 #ifndef BTM_DEFAULT_SCAN_TYPE 430 #define BTM_DEFAULT_SCAN_TYPE BTM_SCAN_TYPE_INTERLACED 431 #endif 432 433 /* Should connections to unknown devices be allowed when not discoverable? */ 434 #ifndef BTM_ALLOW_CONN_IF_NONDISCOVER 435 #define BTM_ALLOW_CONN_IF_NONDISCOVER TRUE 436 #endif 437 438 /* Sets the Page_Scan_Window: the length of time that the device is performing a page scan. */ 439 #ifndef BTM_DEFAULT_CONN_WINDOW 440 #define BTM_DEFAULT_CONN_WINDOW 0x0012 441 #endif 442 443 /* Sets the Page_Scan_Activity: the interval between the start of two consecutive page scans. */ 444 #ifndef BTM_DEFAULT_CONN_INTERVAL 445 #define BTM_DEFAULT_CONN_INTERVAL 0x0800 446 #endif 447 448 /* When automatic inquiry scan is enabled, this sets the inquiry scan window. */ 449 #ifndef BTM_DEFAULT_DISC_WINDOW 450 #define BTM_DEFAULT_DISC_WINDOW 0x0012 451 #endif 452 453 /* When automatic inquiry scan is enabled, this sets the inquiry scan interval. */ 454 #ifndef BTM_DEFAULT_DISC_INTERVAL 455 #define BTM_DEFAULT_DISC_INTERVAL 0x0800 456 #endif 457 458 /* Default class of device 459 * {SERVICE_CLASS, MAJOR_CLASS, MINOR_CLASS} 460 * 461 * SERVICE_CLASS:0x5A (Bit17 -Networking,Bit19 - Capturing,Bit20 -Object Transfer,Bit22 -Telephony) 462 * MAJOR_CLASS:0x02 - PHONE 463 * MINOR_CLASS:0x0C - SMART_PHONE 464 * 465 */ 466 #ifndef BTA_DM_COD 467 #define BTA_DM_COD {0x5A, 0x02, 0x0C} 468 #endif 469 470 /* The number of SCO links. */ 471 #ifndef BTM_MAX_SCO_LINKS 472 #define BTM_MAX_SCO_LINKS 3 473 #endif 474 475 /* The preferred type of SCO links (2-eSCO, 0-SCO). */ 476 #ifndef BTM_DEFAULT_SCO_MODE 477 #define BTM_DEFAULT_SCO_MODE 2 478 #endif 479 480 /* The number of security records for peer devices. */ 481 #ifndef BTM_SEC_MAX_DEVICE_RECORDS 482 #define BTM_SEC_MAX_DEVICE_RECORDS 100 483 #endif 484 485 /* The number of security records for services. */ 486 #ifndef BTM_SEC_MAX_SERVICE_RECORDS 487 #define BTM_SEC_MAX_SERVICE_RECORDS 32 488 #endif 489 490 /* If True, force a retrieval of remote device name for each bond in case it's changed */ 491 #ifndef BTM_SEC_FORCE_RNR_FOR_DBOND 492 #define BTM_SEC_FORCE_RNR_FOR_DBOND FALSE 493 #endif 494 495 /* Maximum device name length used in btm database. */ 496 #ifndef BTM_MAX_REM_BD_NAME_LEN 497 #define BTM_MAX_REM_BD_NAME_LEN 248 498 #endif 499 500 /* Maximum local device name length stored btm database. 501 '0' disables storage of the local name in BTM */ 502 #ifndef BTM_MAX_LOC_BD_NAME_LEN 503 #define BTM_MAX_LOC_BD_NAME_LEN 248 504 #endif 505 506 /* Fixed Default String. When this is defined as null string, the device's 507 * product model name is used as the default local name. 508 */ 509 #ifndef BTM_DEF_LOCAL_NAME 510 #define BTM_DEF_LOCAL_NAME "" 511 #endif 512 513 /* Maximum service name stored with security authorization (0 if not needed) */ 514 #ifndef BTM_SEC_SERVICE_NAME_LEN 515 #define BTM_SEC_SERVICE_NAME_LEN BT_MAX_SERVICE_NAME_LEN 516 #endif 517 518 /* Maximum length of the service name. */ 519 #ifndef BT_MAX_SERVICE_NAME_LEN 520 #define BT_MAX_SERVICE_NAME_LEN 21 521 #endif 522 523 /* ACL buffer size in HCI Host Buffer Size command. */ 524 #ifndef BTM_ACL_BUF_SIZE 525 #define BTM_ACL_BUF_SIZE 0 526 #endif 527 528 /* The maximum number of clients that can register with the power manager. */ 529 #ifndef BTM_MAX_PM_RECORDS 530 #define BTM_MAX_PM_RECORDS 2 531 #endif 532 533 /* This is set to show debug trace messages for the power manager. */ 534 #ifndef BTM_PM_DEBUG 535 #define BTM_PM_DEBUG FALSE 536 #endif 537 538 /* This is set to TRUE if link is to be unparked due to BTM_CreateSCO API. */ 539 #ifndef BTM_SCO_WAKE_PARKED_LINK 540 #define BTM_SCO_WAKE_PARKED_LINK TRUE 541 #endif 542 543 /* If the user does not respond to security process requests within this many seconds, 544 * a negative response would be sent automatically. 545 * 30 is LMP response timeout value */ 546 #ifndef BTM_SEC_TIMEOUT_VALUE 547 #define BTM_SEC_TIMEOUT_VALUE 35 548 #endif 549 550 /* Maximum number of callbacks that can be registered using BTM_RegisterForVSEvents */ 551 #ifndef BTM_MAX_VSE_CALLBACKS 552 #define BTM_MAX_VSE_CALLBACKS 3 553 #endif 554 555 /****************************************** 556 ** Lisbon Features 557 *******************************************/ 558 /* This is set to TRUE if the FEC is required for EIR packet. */ 559 #ifndef BTM_EIR_DEFAULT_FEC_REQUIRED 560 #define BTM_EIR_DEFAULT_FEC_REQUIRED TRUE 561 #endif 562 563 /* The IO capability of the local device (for Simple Pairing) */ 564 #ifndef BTM_LOCAL_IO_CAPS 565 #define BTM_LOCAL_IO_CAPS BTM_IO_CAP_IO 566 #endif 567 568 #ifndef BTM_LOCAL_IO_CAPS_BLE 569 #define BTM_LOCAL_IO_CAPS_BLE BTM_IO_CAP_KBDISP 570 #endif 571 572 /* The default MITM Protection Requirement (for Simple Pairing) 573 * Possible values are BTM_AUTH_SP_YES or BTM_AUTH_SP_NO */ 574 #ifndef BTM_DEFAULT_AUTH_REQ 575 #define BTM_DEFAULT_AUTH_REQ BTM_AUTH_SP_NO 576 #endif 577 578 /* The default MITM Protection Requirement for dedicated bonding using Simple Pairing 579 * Possible values are BTM_AUTH_AP_YES or BTM_AUTH_AP_NO */ 580 #ifndef BTM_DEFAULT_DD_AUTH_REQ 581 #define BTM_DEFAULT_DD_AUTH_REQ BTM_AUTH_AP_YES 582 #endif 583 584 /* Include Out-of-Band implementation for Simple Pairing */ 585 #ifndef BTM_OOB_INCLUDED 586 #define BTM_OOB_INCLUDED TRUE 587 #endif 588 589 /* TRUE to include Sniff Subrating */ 590 #ifndef BTM_SSR_INCLUDED 591 #define BTM_SSR_INCLUDED TRUE 592 #endif 593 594 /************************* 595 ** End of Lisbon Features 596 **************************/ 597 598 /* 4.1/4.2 secure connections feature */ 599 #ifndef SC_MODE_INCLUDED 600 #define SC_MODE_INCLUDED TRUE 601 #endif 602 603 /* Used for conformance testing ONLY */ 604 #ifndef BTM_BLE_CONFORMANCE_TESTING 605 #define BTM_BLE_CONFORMANCE_TESTING FALSE 606 #endif 607 608 /****************************************************************************** 609 ** 610 ** L2CAP 611 ** 612 ******************************************************************************/ 613 614 /* The maximum number of simultaneous links that L2CAP can support. */ 615 #ifndef MAX_ACL_CONNECTIONS 616 #define MAX_L2CAP_LINKS 7 617 #else 618 #define MAX_L2CAP_LINKS MAX_ACL_CONNECTIONS 619 #endif 620 621 /* The maximum number of simultaneous channels that L2CAP can support. */ 622 #ifndef MAX_L2CAP_CHANNELS 623 #define MAX_L2CAP_CHANNELS 16 624 #endif 625 626 /* The maximum number of simultaneous applications that can register with L2CAP. */ 627 #ifndef MAX_L2CAP_CLIENTS 628 #define MAX_L2CAP_CLIENTS 15 629 #endif 630 631 /* The number of seconds of link inactivity before a link is disconnected. */ 632 #ifndef L2CAP_LINK_INACTIVITY_TOUT 633 #define L2CAP_LINK_INACTIVITY_TOUT 4 634 #endif 635 636 /* The number of seconds of link inactivity after bonding before a link is disconnected. */ 637 #ifndef L2CAP_BONDING_TIMEOUT 638 #define L2CAP_BONDING_TIMEOUT 3 639 #endif 640 641 /* The time from the HCI connection complete to disconnect if no channel is established. */ 642 #ifndef L2CAP_LINK_STARTUP_TOUT 643 #define L2CAP_LINK_STARTUP_TOUT 60 644 #endif 645 646 /* The L2CAP MTU; must be in accord with the HCI ACL pool size. */ 647 #ifndef L2CAP_MTU_SIZE 648 #define L2CAP_MTU_SIZE 1691 649 #endif 650 651 /* The L2CAP MPS over Bluetooth; must be in accord with the FCR tx pool size and ACL down buffer size. */ 652 #ifndef L2CAP_MPS_OVER_BR_EDR 653 #define L2CAP_MPS_OVER_BR_EDR 1010 654 #endif 655 656 /* If host flow control enabled, this is the number of buffers the controller can have unacknowledged. */ 657 #ifndef L2CAP_HOST_FC_ACL_BUFS 658 #define L2CAP_HOST_FC_ACL_BUFS 20 659 #endif 660 661 /* This is set to enable L2CAP to take the ACL link out of park mode when ACL data is to be sent. */ 662 #ifndef L2CAP_WAKE_PARKED_LINK 663 #define L2CAP_WAKE_PARKED_LINK TRUE 664 #endif 665 666 /* Whether link wants to be the master or the slave. */ 667 #ifndef L2CAP_DESIRED_LINK_ROLE 668 #define L2CAP_DESIRED_LINK_ROLE HCI_ROLE_SLAVE 669 #endif 670 671 /* Include Non-Flushable Packet Boundary Flag feature of Lisbon */ 672 #ifndef L2CAP_NON_FLUSHABLE_PB_INCLUDED 673 #define L2CAP_NON_FLUSHABLE_PB_INCLUDED TRUE 674 #endif 675 676 /* Minimum number of ACL credit for high priority link */ 677 #ifndef L2CAP_HIGH_PRI_MIN_XMIT_QUOTA 678 #define L2CAP_HIGH_PRI_MIN_XMIT_QUOTA 5 679 #endif 680 681 /* used for monitoring HCI ACL credit management */ 682 #ifndef L2CAP_HCI_FLOW_CONTROL_DEBUG 683 #define L2CAP_HCI_FLOW_CONTROL_DEBUG TRUE 684 #endif 685 686 /* Used for calculating transmit buffers off of */ 687 #ifndef L2CAP_NUM_XMIT_BUFFS 688 #define L2CAP_NUM_XMIT_BUFFS HCI_ACL_BUF_MAX 689 #endif 690 691 /* Unicast Connectionless Data */ 692 #ifndef L2CAP_UCD_INCLUDED 693 #define L2CAP_UCD_INCLUDED FALSE 694 #endif 695 696 /* Unicast Connectionless Data MTU */ 697 #ifndef L2CAP_UCD_MTU 698 #define L2CAP_UCD_MTU L2CAP_MTU_SIZE 699 #endif 700 701 /* Unicast Connectionless Data Idle Timeout */ 702 #ifndef L2CAP_UCD_IDLE_TIMEOUT 703 #define L2CAP_UCD_IDLE_TIMEOUT 2 704 #endif 705 706 /* Unicast Connectionless Data Idle Timeout */ 707 #ifndef L2CAP_UCD_CH_PRIORITY 708 #define L2CAP_UCD_CH_PRIORITY L2CAP_CHNL_PRIORITY_MEDIUM 709 #endif 710 711 /* Used for features using fixed channels; set to zero if no fixed channels supported (BLE, etc.) */ 712 /* Excluding L2CAP signaling channel and UCD */ 713 #ifndef L2CAP_NUM_FIXED_CHNLS 714 #define L2CAP_NUM_FIXED_CHNLS 32 715 #endif 716 717 /* First fixed channel supported */ 718 #ifndef L2CAP_FIRST_FIXED_CHNL 719 #define L2CAP_FIRST_FIXED_CHNL 4 720 #endif 721 722 #ifndef L2CAP_LAST_FIXED_CHNL 723 #define L2CAP_LAST_FIXED_CHNL (L2CAP_FIRST_FIXED_CHNL + L2CAP_NUM_FIXED_CHNLS - 1) 724 #endif 725 726 /* Round Robin service channels in link */ 727 #ifndef L2CAP_ROUND_ROBIN_CHANNEL_SERVICE 728 #define L2CAP_ROUND_ROBIN_CHANNEL_SERVICE TRUE 729 #endif 730 731 /* Used for calculating transmit buffers off of */ 732 #ifndef L2CAP_NUM_XMIT_BUFFS 733 #define L2CAP_NUM_XMIT_BUFFS HCI_ACL_BUF_MAX 734 #endif 735 736 /* used for monitoring eL2CAP data flow */ 737 #ifndef L2CAP_ERTM_STATS 738 #define L2CAP_ERTM_STATS FALSE 739 #endif 740 741 /* Used for conformance testing ONLY: When TRUE lets scriptwrapper overwrite info response */ 742 #ifndef L2CAP_CONFORMANCE_TESTING 743 #define L2CAP_CONFORMANCE_TESTING FALSE 744 #endif 745 746 /* 747 * Max bytes per connection to buffer locally before dropping the 748 * connection if local client does not receive it - default is 1MB 749 */ 750 #ifndef L2CAP_MAX_RX_BUFFER 751 #define L2CAP_MAX_RX_BUFFER 0x100000 752 #endif 753 754 755 #ifndef TIMER_PARAM_TYPE 756 #define TIMER_PARAM_TYPE UINT32 757 #endif 758 759 /****************************************************************************** 760 ** 761 ** BLE 762 ** 763 ******************************************************************************/ 764 765 #ifndef BLE_INCLUDED 766 #define BLE_INCLUDED TRUE 767 #endif 768 769 #ifndef BLE_ANDROID_CONTROLLER_SCAN_FILTER 770 #define BLE_ANDROID_CONTROLLER_SCAN_FILTER TRUE 771 #endif 772 773 #ifndef LOCAL_BLE_CONTROLLER_ID 774 #define LOCAL_BLE_CONTROLLER_ID (1) 775 #endif 776 777 /* 778 * Toggles support for general LE privacy features such as remote address 779 * resolution, local address rotation etc. 780 */ 781 #ifndef BLE_PRIVACY_SPT 782 #define BLE_PRIVACY_SPT TRUE 783 #endif 784 785 /* 786 * Enables or disables support for local privacy (ex. address rotation) 787 */ 788 #ifndef BLE_LOCAL_PRIVACY_ENABLED 789 #define BLE_LOCAL_PRIVACY_ENABLED TRUE 790 #endif 791 792 /* 793 * Toggles support for vendor specific extensions such as RPA offloading, 794 * feature discovery, multi-adv etc. 795 */ 796 #ifndef BLE_VND_INCLUDED 797 #define BLE_VND_INCLUDED FALSE 798 #endif 799 800 #ifndef BTM_BLE_ADV_TX_POWER 801 #define BTM_BLE_ADV_TX_POWER {-21, -15, -7, 1, 9} 802 #endif 803 804 805 #ifndef BLE_BATCH_SCAN_INCLUDED 806 #define BLE_BATCH_SCAN_INCLUDED TRUE 807 #endif 808 809 /****************************************************************************** 810 ** 811 ** ATT/GATT Protocol/Profile Settings 812 ** 813 ******************************************************************************/ 814 #ifndef BTA_GATT_INCLUDED 815 #if BLE_INCLUDED == TRUE 816 #define BTA_GATT_INCLUDED TRUE 817 #else 818 #define BTA_GATT_INCLUDED FALSE 819 #endif 820 #endif 821 822 #if BTA_GATT_INCLUDED == TRUE && BLE_INCLUDED == FALSE 823 #error "can't have GATT without BLE" 824 #endif 825 826 #ifndef BLE_LLT_INCLUDED 827 #define BLE_LLT_INCLUDED TRUE 828 #endif 829 830 #ifndef ATT_INCLUDED 831 #define ATT_INCLUDED TRUE 832 #endif 833 834 #ifndef ATT_DEBUG 835 #define ATT_DEBUG TRUE 836 #endif 837 838 #ifndef BLE_PERIPHERAL_MODE_SUPPORT 839 #define BLE_PERIPHERAL_MODE_SUPPORT TRUE 840 #endif 841 842 #ifndef BLE_DELAY_REQUEST_ENC 843 /* This flag is to work around IPHONE problem, We need to wait for iPhone ready 844 before send encryption request to iPhone */ 845 #define BLE_DELAY_REQUEST_ENC FALSE 846 #endif 847 848 #ifndef GAP_TRANSPORT_SUPPORTED 849 #define GAP_TRANSPORT_SUPPORTED GATT_TRANSPORT_LE_BR_EDR 850 #endif 851 852 #ifndef GATTP_TRANSPORT_SUPPORTED 853 #define GATTP_TRANSPORT_SUPPORTED GATT_TRANSPORT_LE_BR_EDR 854 #endif 855 856 #ifndef GATT_MAX_SR_PROFILES 857 #define GATT_MAX_SR_PROFILES 32 /* max is 32 */ 858 #endif 859 860 #ifndef GATT_MAX_APPS 861 #define GATT_MAX_APPS 32 /* note: 2 apps used internally GATT and GAP */ 862 #endif 863 864 #ifndef GATT_MAX_PHY_CHANNEL 865 #define GATT_MAX_PHY_CHANNEL 7 866 #endif 867 868 /* Used for conformance testing ONLY */ 869 #ifndef GATT_CONFORMANCE_TESTING 870 #define GATT_CONFORMANCE_TESTING FALSE 871 #endif 872 873 /* number of background connection device allowence, ideally to be the same as WL size 874 */ 875 #ifndef GATT_MAX_BG_CONN_DEV 876 #define GATT_MAX_BG_CONN_DEV 32 877 #endif 878 879 /****************************************************************************** 880 ** 881 ** SMP 882 ** 883 ******************************************************************************/ 884 #ifndef SMP_INCLUDED 885 #if BLE_INCLUDED == TRUE 886 #define SMP_INCLUDED TRUE 887 #else 888 #define SMP_INCLUDED FALSE 889 #endif 890 #endif 891 892 #if SMP_INCLUDED == TRUE && BLE_INCLUDED == FALSE 893 #error "can't have SMP without BLE" 894 #endif 895 896 #ifndef SMP_DEBUG 897 #define SMP_DEBUG FALSE 898 #endif 899 900 #ifndef SMP_DEFAULT_AUTH_REQ 901 #define SMP_DEFAULT_AUTH_REQ SMP_AUTH_NB_ENC_ONLY 902 #endif 903 904 #ifndef SMP_MAX_ENC_KEY_SIZE 905 #define SMP_MAX_ENC_KEY_SIZE 16 906 #endif 907 908 #ifndef SMP_MIN_ENC_KEY_SIZE 909 #define SMP_MIN_ENC_KEY_SIZE 7 910 #endif 911 912 /* minimum link timeout after SMP pairing is done, leave room for key exchange 913 and racing condition for the following service connection. 914 Prefer greater than 0 second, and no less than default inactivity link idle 915 timer(L2CAP_LINK_INACTIVITY_TOUT) in l2cap) */ 916 #ifndef SMP_LINK_TOUT_MIN 917 #if (L2CAP_LINK_INACTIVITY_TOUT > 0) 918 #define SMP_LINK_TOUT_MIN L2CAP_LINK_INACTIVITY_TOUT 919 #else 920 #define SMP_LINK_TOUT_MIN 2 921 #endif 922 #endif 923 /****************************************************************************** 924 ** 925 ** SDP 926 ** 927 ******************************************************************************/ 928 929 /* This is set to enable SDP server functionality. */ 930 #ifndef SDP_SERVER_ENABLED 931 #define SDP_SERVER_ENABLED TRUE 932 #endif 933 934 /* The maximum number of SDP records the server can support. */ 935 #ifndef SDP_MAX_RECORDS 936 #define SDP_MAX_RECORDS 30 937 #endif 938 939 /* The maximum number of attributes in each record. */ 940 #ifndef SDP_MAX_REC_ATTR 941 #define SDP_MAX_REC_ATTR 25 942 #endif 943 944 #ifndef SDP_MAX_PAD_LEN 945 #define SDP_MAX_PAD_LEN 600 946 #endif 947 948 /* The maximum length, in bytes, of an attribute. */ 949 #ifndef SDP_MAX_ATTR_LEN 950 #define SDP_MAX_ATTR_LEN 400 951 #endif 952 953 /* The maximum number of attribute filters supported by SDP databases. */ 954 #ifndef SDP_MAX_ATTR_FILTERS 955 #define SDP_MAX_ATTR_FILTERS 15 956 #endif 957 958 /* The maximum number of UUID filters supported by SDP databases. */ 959 #ifndef SDP_MAX_UUID_FILTERS 960 #define SDP_MAX_UUID_FILTERS 3 961 #endif 962 963 /* This is set to enable SDP client functionality. */ 964 #ifndef SDP_CLIENT_ENABLED 965 #define SDP_CLIENT_ENABLED TRUE 966 #endif 967 968 /* The maximum number of record handles retrieved in a search. */ 969 #ifndef SDP_MAX_DISC_SERVER_RECS 970 #define SDP_MAX_DISC_SERVER_RECS 21 971 #endif 972 973 /* The size of a scratchpad buffer, in bytes, for storing the response to an attribute request. */ 974 #ifndef SDP_MAX_LIST_BYTE_COUNT 975 #define SDP_MAX_LIST_BYTE_COUNT 4096 976 #endif 977 978 /* The maximum number of parameters in an SDP protocol element. */ 979 #ifndef SDP_MAX_PROTOCOL_PARAMS 980 #define SDP_MAX_PROTOCOL_PARAMS 2 981 #endif 982 983 /* The maximum number of simultaneous client and server connections. */ 984 #ifndef SDP_MAX_CONNECTIONS 985 #define SDP_MAX_CONNECTIONS 4 986 #endif 987 988 /* The MTU size for the L2CAP configuration. */ 989 #ifndef SDP_MTU_SIZE 990 #define SDP_MTU_SIZE 672 991 #endif 992 993 /* The flush timeout for the L2CAP configuration. */ 994 #ifndef SDP_FLUSH_TO 995 #define SDP_FLUSH_TO 0xFFFF 996 #endif 997 998 /* The name for security authorization. */ 999 #ifndef SDP_SERVICE_NAME 1000 #define SDP_SERVICE_NAME "Service Discovery" 1001 #endif 1002 1003 /* The security level for BTM. */ 1004 #ifndef SDP_SECURITY_LEVEL 1005 #define SDP_SECURITY_LEVEL BTM_SEC_NONE 1006 #endif 1007 1008 /****************************************************************************** 1009 ** 1010 ** RFCOMM 1011 ** 1012 ******************************************************************************/ 1013 1014 /* The maximum number of ports supported. */ 1015 #ifndef MAX_RFC_PORTS 1016 #define MAX_RFC_PORTS 30 1017 #endif 1018 1019 /* The maximum simultaneous links to different devices. */ 1020 #ifndef MAX_ACL_CONNECTIONS 1021 #define MAX_BD_CONNECTIONS 7 1022 #else 1023 #define MAX_BD_CONNECTIONS MAX_ACL_CONNECTIONS 1024 #endif 1025 1026 /* The port receive queue low watermark level, in bytes. */ 1027 #ifndef PORT_RX_LOW_WM 1028 #define PORT_RX_LOW_WM (BTA_RFC_MTU_SIZE * PORT_RX_BUF_LOW_WM) 1029 #endif 1030 1031 /* The port receive queue high watermark level, in bytes. */ 1032 #ifndef PORT_RX_HIGH_WM 1033 #define PORT_RX_HIGH_WM (BTA_RFC_MTU_SIZE * PORT_RX_BUF_HIGH_WM) 1034 #endif 1035 1036 /* The port receive queue critical watermark level, in bytes. */ 1037 #ifndef PORT_RX_CRITICAL_WM 1038 #define PORT_RX_CRITICAL_WM (BTA_RFC_MTU_SIZE * PORT_RX_BUF_CRITICAL_WM) 1039 #endif 1040 1041 /* The port receive queue low watermark level, in number of buffers. */ 1042 #ifndef PORT_RX_BUF_LOW_WM 1043 #define PORT_RX_BUF_LOW_WM 4 1044 #endif 1045 1046 /* The port receive queue high watermark level, in number of buffers. */ 1047 #ifndef PORT_RX_BUF_HIGH_WM 1048 #define PORT_RX_BUF_HIGH_WM 10 1049 #endif 1050 1051 /* The port receive queue critical watermark level, in number of buffers. */ 1052 #ifndef PORT_RX_BUF_CRITICAL_WM 1053 #define PORT_RX_BUF_CRITICAL_WM 15 1054 #endif 1055 1056 /* The port transmit queue high watermark level, in bytes. */ 1057 #ifndef PORT_TX_HIGH_WM 1058 #define PORT_TX_HIGH_WM (BTA_RFC_MTU_SIZE * PORT_TX_BUF_HIGH_WM) 1059 #endif 1060 1061 /* The port transmit queue critical watermark level, in bytes. */ 1062 #ifndef PORT_TX_CRITICAL_WM 1063 #define PORT_TX_CRITICAL_WM (BTA_RFC_MTU_SIZE * PORT_TX_BUF_CRITICAL_WM) 1064 #endif 1065 1066 /* The port transmit queue high watermark level, in number of buffers. */ 1067 #ifndef PORT_TX_BUF_HIGH_WM 1068 #define PORT_TX_BUF_HIGH_WM 10 1069 #endif 1070 1071 /* The port transmit queue high watermark level, in number of buffers. */ 1072 #ifndef PORT_TX_BUF_CRITICAL_WM 1073 #define PORT_TX_BUF_CRITICAL_WM 15 1074 #endif 1075 1076 /* The RFCOMM multiplexer preferred flow control mechanism. */ 1077 #ifndef PORT_FC_DEFAULT 1078 #define PORT_FC_DEFAULT PORT_FC_CREDIT 1079 #endif 1080 1081 /* The maximum number of credits receiver sends to peer when using credit-based flow control. */ 1082 #ifndef PORT_CREDIT_RX_MAX 1083 #define PORT_CREDIT_RX_MAX 16 1084 #endif 1085 1086 /* The credit low watermark level. */ 1087 #ifndef PORT_CREDIT_RX_LOW 1088 #define PORT_CREDIT_RX_LOW 8 1089 #endif 1090 1091 /* if application like BTA, Java or script test engine is running on other than BTU thread, */ 1092 /* PORT_SCHEDULE_LOCK shall be defined as GKI_sched_lock() or GKI_disable() */ 1093 #ifndef PORT_SCHEDULE_LOCK 1094 #define PORT_SCHEDULE_LOCK GKI_disable() 1095 #endif 1096 1097 /* if application like BTA, Java or script test engine is running on other than BTU thread, */ 1098 /* PORT_SCHEDULE_LOCK shall be defined as GKI_sched_unlock() or GKI_enable() */ 1099 #ifndef PORT_SCHEDULE_UNLOCK 1100 #define PORT_SCHEDULE_UNLOCK GKI_enable() 1101 #endif 1102 1103 /****************************************************************************** 1104 ** 1105 ** OBEX 1106 ** 1107 ******************************************************************************/ 1108 #define OBX_14_INCLUDED FALSE 1109 1110 /* The maximum number of registered servers. */ 1111 #ifndef OBX_NUM_SERVERS 1112 #define OBX_NUM_SERVERS 12 1113 #endif 1114 1115 /* The maximum number of active clients. */ 1116 #ifndef OBX_NUM_CLIENTS 1117 #define OBX_NUM_CLIENTS 8 1118 #endif 1119 1120 /* This option is application when OBX_14_INCLUDED=TRUE 1121 Pool ID where to reassemble the SDU. 1122 This Pool will allow buffers to be used that are larger than 1123 the L2CAP_MAX_MTU. */ 1124 #ifndef OBX_USER_RX_POOL_ID 1125 #define OBX_USER_RX_POOL_ID OBX_LRG_DATA_POOL_ID 1126 #endif 1127 1128 /* This option is application when OBX_14_INCLUDED=TRUE 1129 Pool ID where to hold the SDU. 1130 This Pool will allow buffers to be used that are larger than 1131 the L2CAP_MAX_MTU. */ 1132 #ifndef OBX_USER_TX_POOL_ID 1133 #define OBX_USER_TX_POOL_ID OBX_LRG_DATA_POOL_ID 1134 #endif 1135 1136 /* This option is application when OBX_14_INCLUDED=TRUE 1137 GKI Buffer Pool ID used to hold MPS segments during SDU reassembly 1138 */ 1139 #ifndef OBX_FCR_RX_POOL_ID 1140 #define OBX_FCR_RX_POOL_ID HCI_ACL_POOL_ID 1141 #endif 1142 1143 /* This option is application when OBX_14_INCLUDED=TRUE 1144 GKI Buffer Pool ID used to hold MPS segments used in (re)transmissions. 1145 L2CAP_DEFAULT_ERM_POOL_ID is specified to use the HCI ACL data pool. 1146 Note: This pool needs to have enough buffers to hold two times the window size negotiated 1147 in the L2CA_SetFCROptions (2 * tx_win_size) to allow for retransmissions. 1148 The size of each buffer must be able to hold the maximum MPS segment size passed in 1149 L2CA_SetFCROptions plus BT_HDR (8) + HCI preamble (4) + L2CAP_MIN_OFFSET (11 - as of BT 2.1 + EDR Spec). 1150 */ 1151 #ifndef OBX_FCR_TX_POOL_ID 1152 #define OBX_FCR_TX_POOL_ID HCI_ACL_POOL_ID 1153 #endif 1154 1155 /* This option is application when OBX_14_INCLUDED=TRUE 1156 Size of the transmission window when using enhanced retransmission mode. Not used 1157 in basic and streaming modes. Range: 1 - 63 1158 */ 1159 #ifndef OBX_FCR_OPT_TX_WINDOW_SIZE_BR_EDR 1160 #define OBX_FCR_OPT_TX_WINDOW_SIZE_BR_EDR 20 1161 #endif 1162 1163 /* This option is application when OBX_14_INCLUDED=TRUE 1164 Number of transmission attempts for a single I-Frame before taking 1165 Down the connection. Used In ERTM mode only. Value is Ignored in basic and 1166 Streaming modes. 1167 Range: 0, 1-0xFF 1168 0 - infinite retransmissions 1169 1 - single transmission 1170 */ 1171 #ifndef OBX_FCR_OPT_MAX_TX_B4_DISCNT 1172 #define OBX_FCR_OPT_MAX_TX_B4_DISCNT 20 1173 #endif 1174 1175 /* This option is application when OBX_14_INCLUDED=TRUE 1176 Retransmission Timeout 1177 Range: Minimum 2000 (2 secs) on BR/EDR when supporting PBF. 1178 */ 1179 #ifndef OBX_FCR_OPT_RETX_TOUT 1180 #define OBX_FCR_OPT_RETX_TOUT 2000 1181 #endif 1182 1183 /* This option is application when OBX_14_INCLUDED=TRUE 1184 Monitor Timeout 1185 Range: Minimum 12000 (12 secs) on BR/EDR when supporting PBF. 1186 */ 1187 #ifndef OBX_FCR_OPT_MONITOR_TOUT 1188 #define OBX_FCR_OPT_MONITOR_TOUT 12000 1189 #endif 1190 1191 /* This option is application when OBX_14_INCLUDED=TRUE 1192 Maximum PDU payload size. 1193 Suggestion: The maximum amount of data that will fit into a 3-DH5 packet. 1194 Range: 2 octets 1195 */ 1196 #ifndef OBX_FCR_OPT_MAX_PDU_SIZE 1197 #define OBX_FCR_OPT_MAX_PDU_SIZE L2CAP_MPS_OVER_BR_EDR 1198 #endif 1199 1200 1201 /****************************************************************************** 1202 ** 1203 ** BNEP 1204 ** 1205 ******************************************************************************/ 1206 1207 #ifndef BNEP_INCLUDED 1208 #define BNEP_INCLUDED TRUE 1209 #endif 1210 1211 /* BNEP status API call is used mainly to get the L2CAP handle */ 1212 #ifndef BNEP_SUPPORTS_STATUS_API 1213 #define BNEP_SUPPORTS_STATUS_API TRUE 1214 #endif 1215 1216 /* 1217 ** When BNEP connection changes roles after the connection is established 1218 ** we will do an authentication check again on the new role 1219 */ 1220 #ifndef BNEP_DO_AUTH_FOR_ROLE_SWITCH 1221 #define BNEP_DO_AUTH_FOR_ROLE_SWITCH TRUE 1222 #endif 1223 1224 1225 /* Maximum number of protocol filters supported. */ 1226 #ifndef BNEP_MAX_PROT_FILTERS 1227 #define BNEP_MAX_PROT_FILTERS 5 1228 #endif 1229 1230 /* Maximum number of multicast filters supported. */ 1231 #ifndef BNEP_MAX_MULTI_FILTERS 1232 #define BNEP_MAX_MULTI_FILTERS 5 1233 #endif 1234 1235 /* Minimum MTU size. */ 1236 #ifndef BNEP_MIN_MTU_SIZE 1237 #define BNEP_MIN_MTU_SIZE L2CAP_MTU_SIZE 1238 #endif 1239 1240 /* Preferred MTU size. */ 1241 #ifndef BNEP_MTU_SIZE 1242 #define BNEP_MTU_SIZE BNEP_MIN_MTU_SIZE 1243 #endif 1244 1245 /* Maximum number of buffers allowed in transmit data queue. */ 1246 #ifndef BNEP_MAX_XMITQ_DEPTH 1247 #define BNEP_MAX_XMITQ_DEPTH 20 1248 #endif 1249 1250 /* Maximum number BNEP of connections supported. */ 1251 #ifndef BNEP_MAX_CONNECTIONS 1252 #define BNEP_MAX_CONNECTIONS 7 1253 #endif 1254 1255 1256 /****************************************************************************** 1257 ** 1258 ** AVDTP 1259 ** 1260 ******************************************************************************/ 1261 1262 #ifndef AVDT_INCLUDED 1263 #define AVDT_INCLUDED TRUE 1264 #endif 1265 1266 /* Include reporting capability in AVDTP */ 1267 #ifndef AVDT_REPORTING 1268 #define AVDT_REPORTING TRUE 1269 #endif 1270 1271 /* Include multiplexing capability in AVDTP */ 1272 #ifndef AVDT_MULTIPLEXING 1273 #define AVDT_MULTIPLEXING TRUE 1274 #endif 1275 1276 /* Number of simultaneous links to different peer devices. */ 1277 #ifndef AVDT_NUM_LINKS 1278 #define AVDT_NUM_LINKS 2 1279 #endif 1280 1281 /* Number of simultaneous stream endpoints. */ 1282 #ifndef AVDT_NUM_SEPS 1283 #define AVDT_NUM_SEPS 3 1284 #endif 1285 1286 /* Number of transport channels setup per media stream(audio or video) */ 1287 #ifndef AVDT_NUM_CHANNELS 1288 1289 #if AVDT_REPORTING == TRUE 1290 /* signaling, media and reporting channels */ 1291 #define AVDT_NUM_CHANNELS 3 1292 #else 1293 /* signaling and media channels */ 1294 #define AVDT_NUM_CHANNELS 2 1295 #endif // AVDT_REPORTING 1296 1297 #endif // AVDT_NUM_CHANNELS 1298 1299 /* Number of transport channels setup by AVDT for all media streams 1300 * AVDT_NUM_CHANNELS * Number of simultaneous streams. 1301 */ 1302 #ifndef AVDT_NUM_TC_TBL 1303 #define AVDT_NUM_TC_TBL 6 1304 #endif 1305 1306 /* Maximum size in bytes of the codec capabilities information element. */ 1307 #ifndef AVDT_CODEC_SIZE 1308 #define AVDT_CODEC_SIZE 10 1309 #endif 1310 1311 /* Maximum size in bytes of the content protection information element. */ 1312 #ifndef AVDT_PROTECT_SIZE 1313 #define AVDT_PROTECT_SIZE 90 1314 #endif 1315 1316 /* Maximum number of GKI buffers in the fragment queue (for video frames). 1317 * Must be less than the number of buffers in the buffer pool of size AVDT_DATA_POOL_SIZE */ 1318 #ifndef AVDT_MAX_FRAG_COUNT 1319 #define AVDT_MAX_FRAG_COUNT 15 1320 #endif 1321 1322 /****************************************************************************** 1323 ** 1324 ** PAN 1325 ** 1326 ******************************************************************************/ 1327 1328 #ifndef PAN_INCLUDED 1329 #define PAN_INCLUDED TRUE 1330 #endif 1331 1332 /* This will enable the PANU role */ 1333 #ifndef PAN_SUPPORTS_ROLE_PANU 1334 #define PAN_SUPPORTS_ROLE_PANU TRUE 1335 #endif 1336 1337 /* This will enable the GN role */ 1338 #ifndef PAN_SUPPORTS_ROLE_GN 1339 #define PAN_SUPPORTS_ROLE_GN TRUE 1340 #endif 1341 1342 /* This will enable the NAP role */ 1343 #ifndef PAN_SUPPORTS_ROLE_NAP 1344 #define PAN_SUPPORTS_ROLE_NAP TRUE 1345 #endif 1346 1347 /* This is just for debugging purposes */ 1348 #ifndef PAN_SUPPORTS_DEBUG_DUMP 1349 #define PAN_SUPPORTS_DEBUG_DUMP TRUE 1350 #endif 1351 1352 /* Maximum number of PAN connections allowed */ 1353 #ifndef MAX_PAN_CONNS 1354 #define MAX_PAN_CONNS 7 1355 #endif 1356 1357 /* Default service name for NAP role */ 1358 #ifndef PAN_NAP_DEFAULT_SERVICE_NAME 1359 #define PAN_NAP_DEFAULT_SERVICE_NAME "Network Access Point Service" 1360 #endif 1361 1362 /* Default service name for GN role */ 1363 #ifndef PAN_GN_DEFAULT_SERVICE_NAME 1364 #define PAN_GN_DEFAULT_SERVICE_NAME "Group Network Service" 1365 #endif 1366 1367 /* Default service name for PANU role */ 1368 #ifndef PAN_PANU_DEFAULT_SERVICE_NAME 1369 #define PAN_PANU_DEFAULT_SERVICE_NAME "PAN User Service" 1370 #endif 1371 1372 /* Default description for NAP role service */ 1373 #ifndef PAN_NAP_DEFAULT_DESCRIPTION 1374 #define PAN_NAP_DEFAULT_DESCRIPTION "NAP" 1375 #endif 1376 1377 /* Default description for GN role service */ 1378 #ifndef PAN_GN_DEFAULT_DESCRIPTION 1379 #define PAN_GN_DEFAULT_DESCRIPTION "GN" 1380 #endif 1381 1382 /* Default description for PANU role service */ 1383 #ifndef PAN_PANU_DEFAULT_DESCRIPTION 1384 #define PAN_PANU_DEFAULT_DESCRIPTION "PANU" 1385 #endif 1386 1387 /* Default Security level for PANU role. */ 1388 #ifndef PAN_PANU_SECURITY_LEVEL 1389 #define PAN_PANU_SECURITY_LEVEL 0 1390 #endif 1391 1392 /* Default Security level for GN role. */ 1393 #ifndef PAN_GN_SECURITY_LEVEL 1394 #define PAN_GN_SECURITY_LEVEL 0 1395 #endif 1396 1397 /* Default Security level for NAP role. */ 1398 #ifndef PAN_NAP_SECURITY_LEVEL 1399 #define PAN_NAP_SECURITY_LEVEL 0 1400 #endif 1401 1402 /****************************************************************************** 1403 ** 1404 ** GAP 1405 ** 1406 ******************************************************************************/ 1407 1408 #ifndef GAP_INCLUDED 1409 #define GAP_INCLUDED TRUE 1410 #endif 1411 1412 /* This is set to enable use of GAP L2CAP connections. */ 1413 #ifndef GAP_CONN_INCLUDED 1414 #define GAP_CONN_INCLUDED TRUE 1415 #endif 1416 1417 /* This is set to enable posting event for data write */ 1418 #ifndef GAP_CONN_POST_EVT_INCLUDED 1419 #define GAP_CONN_POST_EVT_INCLUDED FALSE 1420 #endif 1421 1422 /* The maximum number of simultaneous GAP L2CAP connections. */ 1423 #ifndef GAP_MAX_CONNECTIONS 1424 #define GAP_MAX_CONNECTIONS 30 1425 #endif 1426 1427 /* keep the raw data received from SDP server in database. */ 1428 #ifndef SDP_RAW_DATA_INCLUDED 1429 #define SDP_RAW_DATA_INCLUDED TRUE 1430 #endif 1431 1432 /* Inquiry duration in 1.28 second units. */ 1433 #ifndef SDP_DEBUG 1434 #define SDP_DEBUG TRUE 1435 #endif 1436 1437 /****************************************************************************** 1438 ** 1439 ** HID 1440 ** 1441 ******************************************************************************/ 1442 1443 #ifndef HID_DEV_SUBCLASS 1444 #define HID_DEV_SUBCLASS COD_MINOR_POINTING 1445 #endif 1446 1447 #ifndef HID_CONTROL_POOL_ID 1448 #define HID_CONTROL_POOL_ID 2 1449 #endif 1450 1451 #ifndef HID_INTERRUPT_POOL_ID 1452 #define HID_INTERRUPT_POOL_ID 2 1453 #endif 1454 1455 /************************************************************************* 1456 ** Definitions for Both HID-Host & Device 1457 */ 1458 #ifndef HID_MAX_SVC_NAME_LEN 1459 #define HID_MAX_SVC_NAME_LEN 32 1460 #endif 1461 1462 #ifndef HID_MAX_SVC_DESCR_LEN 1463 #define HID_MAX_SVC_DESCR_LEN 32 1464 #endif 1465 1466 #ifndef HID_MAX_PROV_NAME_LEN 1467 #define HID_MAX_PROV_NAME_LEN 32 1468 #endif 1469 1470 /************************************************************************* 1471 ** Definitions for HID-Host 1472 */ 1473 #ifndef HID_HOST_INCLUDED 1474 #define HID_HOST_INCLUDED TRUE 1475 #endif 1476 1477 #ifndef HID_HOST_MAX_DEVICES 1478 #define HID_HOST_MAX_DEVICES 7 1479 #endif 1480 1481 #ifndef HID_HOST_MTU 1482 #define HID_HOST_MTU 640 1483 #endif 1484 1485 #ifndef HID_HOST_FLUSH_TO 1486 #define HID_HOST_FLUSH_TO 0xffff 1487 #endif 1488 1489 #ifndef HID_HOST_MAX_CONN_RETRY 1490 #define HID_HOST_MAX_CONN_RETRY (3) 1491 #endif 1492 1493 #ifndef HID_HOST_REPAGE_WIN 1494 #define HID_HOST_REPAGE_WIN (2) 1495 #endif 1496 1497 /************************************************************************* 1498 * A2DP Definitions 1499 */ 1500 #ifndef A2D_INCLUDED 1501 #define A2D_INCLUDED TRUE 1502 #endif 1503 1504 /****************************************************************************** 1505 ** 1506 ** AVCTP 1507 ** 1508 ******************************************************************************/ 1509 1510 /* Number of simultaneous ACL links to different peer devices. */ 1511 #ifndef AVCT_NUM_LINKS 1512 #define AVCT_NUM_LINKS 2 1513 #endif 1514 1515 /* Number of simultaneous AVCTP connections. */ 1516 #ifndef AVCT_NUM_CONN 1517 #define AVCT_NUM_CONN 3 1518 #endif 1519 1520 /****************************************************************************** 1521 ** 1522 ** AVRCP 1523 ** 1524 ******************************************************************************/ 1525 1526 #ifndef AVRC_METADATA_INCLUDED 1527 #define AVRC_METADATA_INCLUDED TRUE 1528 #endif 1529 1530 #ifndef AVRC_ADV_CTRL_INCLUDED 1531 #define AVRC_ADV_CTRL_INCLUDED TRUE 1532 #endif 1533 1534 #ifndef AVRC_CTLR_INCLUDED 1535 #define AVRC_CTLR_INCLUDED TRUE 1536 #endif 1537 1538 /****************************************************************************** 1539 ** 1540 ** MCAP 1541 ** 1542 ******************************************************************************/ 1543 #ifndef MCA_INCLUDED 1544 #define MCA_INCLUDED FALSE 1545 #endif 1546 1547 /* The MTU size for the L2CAP configuration on control channel. 48 is the minimal */ 1548 #ifndef MCA_CTRL_MTU 1549 #define MCA_CTRL_MTU 60 1550 #endif 1551 1552 /* The maximum number of registered MCAP instances. */ 1553 #ifndef MCA_NUM_REGS 1554 #define MCA_NUM_REGS 12 1555 #endif 1556 1557 /* The maximum number of control channels (to difference devices) per registered MCAP instances. */ 1558 #ifndef MCA_NUM_LINKS 1559 #define MCA_NUM_LINKS 3 1560 #endif 1561 1562 /* The maximum number of MDEP (including HDP echo) per registered MCAP instances. */ 1563 #ifndef MCA_NUM_DEPS 1564 #define MCA_NUM_DEPS 13 1565 #endif 1566 1567 /* The maximum number of MDL link per control channel. */ 1568 #ifndef MCA_NUM_MDLS 1569 #define MCA_NUM_MDLS 4 1570 #endif 1571 1572 /* Pool ID where to reassemble the SDU. */ 1573 #ifndef MCA_USER_RX_POOL_ID 1574 #define MCA_USER_RX_POOL_ID HCI_ACL_POOL_ID 1575 #endif 1576 1577 /* Pool ID where to hold the SDU. */ 1578 #ifndef MCA_USER_TX_POOL_ID 1579 #define MCA_USER_TX_POOL_ID HCI_ACL_POOL_ID 1580 #endif 1581 1582 /* 1583 GKI Buffer Pool ID used to hold MPS segments during SDU reassembly 1584 */ 1585 #ifndef MCA_FCR_RX_POOL_ID 1586 #define MCA_FCR_RX_POOL_ID HCI_ACL_POOL_ID 1587 #endif 1588 1589 /* 1590 GKI Buffer Pool ID used to hold MPS segments used in (re)transmissions. 1591 L2CAP_DEFAULT_ERM_POOL_ID is specified to use the HCI ACL data pool. 1592 Note: This pool needs to have enough buffers to hold two times the window size negotiated 1593 in the tL2CAP_FCR_OPTIONS (2 * tx_win_size) to allow for retransmissions. 1594 The size of each buffer must be able to hold the maximum MPS segment size passed in 1595 tL2CAP_FCR_OPTIONS plus BT_HDR (8) + HCI preamble (4) + L2CAP_MIN_OFFSET (11 - as of BT 2.1 + EDR Spec). 1596 */ 1597 #ifndef MCA_FCR_TX_POOL_ID 1598 #define MCA_FCR_TX_POOL_ID HCI_ACL_POOL_ID 1599 #endif 1600 1601 /* MCAP control channel FCR Option: 1602 Size of the transmission window when using enhanced retransmission mode. 1603 1 is defined by HDP specification for control channel. 1604 */ 1605 #ifndef MCA_FCR_OPT_TX_WINDOW_SIZE 1606 #define MCA_FCR_OPT_TX_WINDOW_SIZE 1 1607 #endif 1608 1609 /* MCAP control channel FCR Option: 1610 Number of transmission attempts for a single I-Frame before taking 1611 Down the connection. Used In ERTM mode only. Value is Ignored in basic and 1612 Streaming modes. 1613 Range: 0, 1-0xFF 1614 0 - infinite retransmissions 1615 1 - single transmission 1616 */ 1617 #ifndef MCA_FCR_OPT_MAX_TX_B4_DISCNT 1618 #define MCA_FCR_OPT_MAX_TX_B4_DISCNT 20 1619 #endif 1620 1621 /* MCAP control channel FCR Option: Retransmission Timeout 1622 The AVRCP specification set a value in the range of 300 - 2000 ms 1623 Timeout (in msecs) to detect Lost I-Frames. Only used in Enhanced retransmission mode. 1624 Range: Minimum 2000 (2 secs) when supporting PBF. 1625 */ 1626 #ifndef MCA_FCR_OPT_RETX_TOUT 1627 #define MCA_FCR_OPT_RETX_TOUT 2000 1628 #endif 1629 1630 /* MCAP control channel FCR Option: Monitor Timeout 1631 The AVRCP specification set a value in the range of 300 - 2000 ms 1632 Timeout (in msecs) to detect Lost S-Frames. Only used in Enhanced retransmission mode. 1633 Range: Minimum 12000 (12 secs) when supporting PBF. 1634 */ 1635 #ifndef MCA_FCR_OPT_MONITOR_TOUT 1636 #define MCA_FCR_OPT_MONITOR_TOUT 12000 1637 #endif 1638 1639 /* MCAP control channel FCR Option: Maximum PDU payload size. 1640 The maximum number of payload octets that the local device can receive in a single PDU. 1641 */ 1642 #ifndef MCA_FCR_OPT_MPS_SIZE 1643 #define MCA_FCR_OPT_MPS_SIZE 1000 1644 #endif 1645 1646 /* Shared transport */ 1647 #ifndef NFC_SHARED_TRANSPORT_ENABLED 1648 #define NFC_SHARED_TRANSPORT_ENABLED FALSE 1649 #endif 1650 1651 /****************************************************************************** 1652 ** 1653 ** Sleep Mode (Low Power Mode) 1654 ** 1655 ******************************************************************************/ 1656 1657 #ifndef HCILP_INCLUDED 1658 #define HCILP_INCLUDED TRUE 1659 #endif 1660 1661 /****************************************************************************** 1662 ** 1663 ** APPL - Application Task 1664 ** 1665 ******************************************************************************/ 1666 1667 #define L2CAP_FEATURE_REQ_ID 73 1668 #define L2CAP_FEATURE_RSP_ID 173 1669 1670 /****************************************************************************** 1671 ** 1672 ** BTA 1673 ** 1674 ******************************************************************************/ 1675 /* BTA EIR canned UUID list (default is dynamic) */ 1676 #ifndef BTA_EIR_CANNED_UUID_LIST 1677 #define BTA_EIR_CANNED_UUID_LIST FALSE 1678 #endif 1679 1680 /* Number of supported customer UUID in EIR */ 1681 #ifndef BTA_EIR_SERVER_NUM_CUSTOM_UUID 1682 #define BTA_EIR_SERVER_NUM_CUSTOM_UUID 8 1683 #endif 1684 1685 /* CHLD override for bluedroid */ 1686 #ifndef BTA_AG_CHLD_VAL_ECC 1687 #define BTA_AG_CHLD_VAL_ECC "(0,1,1x,2,2x,3)" 1688 #endif 1689 1690 #ifndef BTA_AG_CHLD_VAL 1691 #define BTA_AG_CHLD_VAL "(0,1,2,3)" 1692 #endif 1693 1694 /* Set the CIND to match HFP 1.5 */ 1695 #ifndef BTA_AG_CIND_INFO 1696 #define BTA_AG_CIND_INFO "(\"call\",(0,1)),(\"callsetup\",(0-3)),(\"service\",(0-1)),(\"signal\",(0-5)),(\"roam\",(0,1)),(\"battchg\",(0-5)),(\"callheld\",(0-2))" 1697 #endif 1698 1699 #ifndef BTA_DM_AVOID_A2DP_ROLESWITCH_ON_INQUIRY 1700 #define BTA_DM_AVOID_A2DP_ROLESWITCH_ON_INQUIRY TRUE 1701 #endif 1702 1703 /****************************************************************************** 1704 ** 1705 ** Tracing: Include trace header file here. 1706 ** 1707 ******************************************************************************/ 1708 1709 /* Enable/disable BTSnoop memory logging */ 1710 #ifndef BTSNOOP_MEM 1711 #define BTSNOOP_MEM TRUE 1712 #endif 1713 1714 #include "bt_trace.h" 1715 1716 #endif /* BT_TARGET_H */ 1717