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