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