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