Home | History | Annotate | Download | only in main
      1 /******************************************************************************
      2  *
      3  *  Copyright (C) 2000-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 /******************************************************************************
     20  *
     21  *  This module contains the routines that initialize the stack components.
     22  *  It must be called before the BTU task is started.
     23  *
     24  ******************************************************************************/
     25 
     26 #include "bt_target.h"
     27 #include <string.h>
     28 
     29 #ifndef BTA_INCLUDED
     30 #define BTA_INCLUDED FALSE
     31 #endif
     32 
     33 /* Include initialization functions definitions */
     34 #if (defined(RFCOMM_INCLUDED) && RFCOMM_INCLUDED == TRUE)
     35 #include "port_api.h"
     36 #endif
     37 
     38 #if (defined(TCS_INCLUDED) && TCS_INCLUDED == TRUE)
     39 #include "tcs_api.h"
     40 #endif
     41 
     42 #if (defined(OBX_INCLUDED) && OBX_INCLUDED == TRUE)
     43 #include "obx_api.h"
     44 #endif
     45 
     46 #if (defined(BNEP_INCLUDED) && BNEP_INCLUDED == TRUE)
     47 #include "bnep_api.h"
     48 #endif
     49 
     50 #if (defined(GAP_INCLUDED) && GAP_INCLUDED == TRUE)
     51 #include "gap_api.h"
     52 #endif
     53 
     54 #if ((defined(CTP_INCLUDED) && CTP_INCLUDED == TRUE))
     55 #include "ctp_api.h"
     56 #endif
     57 
     58 #if ((defined(ICP_INCLUDED) && ICP_INCLUDED == TRUE))
     59 #include "icp_api.h"
     60 #endif
     61 
     62 #if (defined(SPP_INCLUDED) && SPP_INCLUDED == TRUE)
     63 #include "spp_api.h"
     64 #endif
     65 
     66 #if (defined(DUN_INCLUDED) && DUN_INCLUDED == TRUE)
     67 #include "dun_api.h"
     68 #endif
     69 
     70 #if (defined(GOEP_INCLUDED) &&  GOEP_INCLUDED == TRUE)
     71 #include "goep_util.h"
     72 #endif /* GOEP included */
     73 
     74 #if (defined(FTP_INCLUDED) && FTP_INCLUDED == TRUE)
     75 #include "ftp_api.h"
     76 #endif /* FTP */
     77 
     78 #if (defined(OPP_INCLUDED) && OPP_INCLUDED == TRUE)
     79 #include "opp_api.h"
     80 #endif /* OPP */
     81 
     82 #if (defined(BIP_INCLUDED) && BIP_INCLUDED == TRUE)
     83 #include "bip_api.h"
     84 #endif
     85 
     86 #if (defined(BTU_BTA_INCLUDED) && BTU_BTA_INCLUDED == TRUE)
     87 #if (defined(BTA_BI_INCLUDED) && BTA_BI_INCLUDED == TRUE)
     88 #include "bta_bi_api.h"
     89 #endif
     90 #endif
     91 
     92 #if (defined(HFP_INCLUDED) && HFP_INCLUDED == TRUE)
     93 #include "hfp_api.h"
     94 #endif
     95 
     96 #if ((defined(HSP2_INCLUDED) && HSP2_INCLUDED == TRUE)) || \
     97     ((defined(HFP_INCLUDED) && HFP_INCLUDED == TRUE))
     98 #include "hsp2_api.h"
     99 #endif
    100 
    101 #if (defined(HCRP_INCLUDED) && HCRP_INCLUDED == TRUE)
    102 #if (defined(HCRP_CLIENT_INCLUDED) && HCRP_CLIENT_INCLUDED == TRUE)
    103 #include "hcrp_api.h"
    104 #endif
    105 #if (defined(HCRP_SERVER_INCLUDED) && HCRP_SERVER_INCLUDED == TRUE)
    106 #include "hcrpm_api.h"
    107 #endif
    108 #endif
    109 
    110 #if (defined(BPP_INCLUDED) && BPP_INCLUDED == TRUE)
    111 #include "bpp_api.h"
    112 #endif
    113 
    114 #if (defined(PAN_INCLUDED) && PAN_INCLUDED == TRUE)
    115 #include "pan_api.h"
    116 #endif
    117 
    118 #if (defined(AVRC_INCLUDED) && AVRC_INCLUDED == TRUE)
    119 #include "avrc_api.h"
    120 #endif
    121 
    122 #if (defined(A2D_INCLUDED) && A2D_INCLUDED == TRUE)
    123 #include "a2d_api.h"
    124 #endif
    125 
    126 
    127 #if (defined(HID_DEV_INCLUDED) && HID_DEV_INCLUDED == TRUE)
    128 #include "hidd_api.h"
    129 #endif
    130 
    131 #if (defined(HID_HOST_INCLUDED) && HID_HOST_INCLUDED == TRUE)
    132 #include "hidh_api.h"
    133 #endif
    134 
    135 #if (defined(SAP_SERVER_INCLUDED) && SAP_SERVER_INCLUDED == TRUE)
    136 #include "sap_api.h"
    137 #endif  /* SAP_SERVER_INCLUDED */
    138 
    139 #if (defined(MCA_INCLUDED) && MCA_INCLUDED == TRUE)
    140 #include "mca_api.h"
    141 #endif
    142 
    143 #if (defined(BLE_INCLUDED) && BLE_INCLUDED == TRUE)
    144 #include "gatt_api.h"
    145 #if (defined(SMP_INCLUDED) && SMP_INCLUDED == TRUE)
    146 #include "smp_api.h"
    147 #endif
    148 #endif
    149 
    150 // btla-specific ++
    151 /***** BTA Modules ******/
    152 #if BTA_INCLUDED == TRUE && BTA_DYNAMIC_MEMORY == TRUE
    153 #include "bta_api.h"
    154 #include "bta_sys.h"
    155 
    156 #if BTA_AC_INCLUDED == TRUE
    157 #include "bta_acs_int.h"
    158 #include "bta_acc_int.h"
    159 #endif
    160 
    161 #if BTA_AG_INCLUDED == TRUE
    162 #include "bta_ag_int.h"
    163 #endif
    164 
    165 #if BTA_HS_INCLUDED == TRUE
    166 #include "bta_hs_int.h"
    167 #endif
    168 
    169 #include "bta_dm_int.h"
    170 
    171 #if BTA_DG_INCLUDED == TRUE
    172 #include "bta_dg_api.h"
    173 #include "bta_dg_int.h"
    174 #endif
    175 
    176 #if BTA_FT_INCLUDED == TRUE
    177 #include "bta_ftc_int.h"
    178 #include "bta_fts_int.h"
    179 #endif
    180 
    181 #if BTA_PBC_INCLUDED == TRUE
    182 #include "bta_pbc_int.h"
    183 #endif
    184 
    185 #if BTA_PBS_INCLUDED == TRUE
    186 #include "bta_pbs_int.h"
    187 #endif
    188 
    189 #if BTA_OP_INCLUDED == TRUE
    190 #include "bta_opc_int.h"
    191 #include "bta_ops_int.h"
    192 #endif
    193 
    194 #if BTA_SS_INCLUDED==TRUE
    195 #include "bta_ss_int.h"
    196 #endif
    197 
    198 #if BTA_CT_INCLUDED==TRUE
    199 #include "bta_ct_int.h"
    200 #endif
    201 
    202 #if BTA_CG_INCLUDED==TRUE
    203 #include "bta_cg_int.h"
    204 #endif
    205 
    206 #if BTA_BI_INCLUDED==TRUE
    207 #include "bta_bic_int.h"
    208 #include "bta_bis_int.h"
    209 #endif
    210 
    211 #if BTA_PR_INCLUDED==TRUE
    212 #include "bta_pr_int.h"
    213 #endif
    214 
    215 #if BTA_AR_INCLUDED==TRUE
    216 #include "bta_ar_int.h"
    217 #endif
    218 #if BTA_AV_INCLUDED==TRUE
    219 #include "bta_av_int.h"
    220 #endif
    221 
    222 #if BTA_SC_INCLUDED==TRUE
    223 #include "bta_sc_int.h"
    224 #endif
    225 
    226 #if BTA_HD_INCLUDED==TRUE
    227 #include "bta_hd_int.h"
    228 #endif
    229 
    230 #if BTA_HH_INCLUDED==TRUE
    231 #include "bta_hh_int.h"
    232 #endif
    233 
    234 #if BTA_FM_INCLUDED==TRUE
    235 #include "bta_fm_int.h"
    236 #endif
    237 
    238 #if BTA_FMTX_INCLUDED==TRUE
    239 #include "bta_fmtx_int.h"
    240 #endif
    241 
    242 #if BTA_JV_INCLUDED==TRUE
    243 #include "bta_jv_int.h"
    244 tBTA_JV_CB *bta_jv_cb_ptr = NULL;
    245 #endif
    246 
    247 #if BTA_MCE_INCLUDED == TRUE
    248 #include "bta_mce_int.h"
    249 #endif
    250 
    251 #if BTA_MSE_INCLUDED == TRUE
    252 #include "bta_mse_int.h"
    253 #endif
    254 
    255 #if BTA_HL_INCLUDED == TRUE
    256 #include "bta_hl_int.h"
    257 #endif
    258 
    259 #if BTA_GATT_INCLUDED == TRUE
    260 #include "bta_gattc_int.h"
    261 #include "bta_gatts_int.h"
    262 #endif
    263 
    264 #if BTA_PAN_INCLUDED==TRUE
    265 #include "bta_pan_int.h"
    266 #endif
    267 
    268 #include "bta_sys_int.h"
    269 
    270 /* control block for patch ram downloading */
    271 #include "bta_prm_int.h"
    272 
    273 #endif /* BTA_INCLUDED */
    274 // btla-specific --
    275 
    276 /*****************************************************************************
    277 **                          F U N C T I O N S                                *
    278 ******************************************************************************/
    279 
    280 /*****************************************************************************
    281 **
    282 ** Function         BTE_InitStack
    283 **
    284 ** Description      Initialize control block memory for each component.
    285 **
    286 **                  Note: The core stack components must be called
    287 **                      before creating the BTU Task.  The rest of the
    288 **                      components can be initialized at a later time if desired
    289 **                      as long as the component's init function is called
    290 **                      before accessing any of its functions.
    291 **
    292 ** Returns          void
    293 **
    294 ******************************************************************************/
    295 BT_API void BTE_InitStack(void)
    296 {
    297 /* Initialize the optional stack components */
    298 
    299 /****************************
    300 ** RFCOMM and its profiles **
    301 *****************************/
    302 #if (defined(RFCOMM_INCLUDED) && RFCOMM_INCLUDED == TRUE)
    303     RFCOMM_Init();
    304 
    305 #if (defined(SPP_INCLUDED) && SPP_INCLUDED == TRUE)
    306     SPP_Init();
    307 #endif  /* SPP */
    308 
    309 #if (defined(DUN_INCLUDED) && DUN_INCLUDED == TRUE)
    310     DUN_Init();
    311 #endif  /* DUN */
    312 
    313 #if (defined(HSP2_INCLUDED) && HSP2_INCLUDED == TRUE)
    314     HSP2_Init();
    315 #endif  /* HSP2 */
    316 
    317 #if (defined(HFP_INCLUDED) && HFP_INCLUDED == TRUE)
    318     HFP_Init();
    319 #endif  /* HFP */
    320 
    321 /**************************
    322 ** OBEX and its profiles **
    323 ***************************/
    324 #if (defined(OBX_INCLUDED) && OBX_INCLUDED == TRUE)
    325     OBX_Init();
    326 #if (defined(BIP_INCLUDED) && BIP_INCLUDED == TRUE)
    327     BIP_Init();
    328 #if (defined(BTU_BTA_INCLUDED) && BTU_BTA_INCLUDED == TRUE)
    329 #if (defined(BTA_BI_INCLUDED) && BTA_BI_INCLUDED == TRUE)
    330     BTA_BicInit();
    331 #endif  /* BTA BI */
    332 #endif
    333 #endif  /* BIP */
    334 
    335 #if (defined(GOEP_INCLUDED) && GOEP_INCLUDED == TRUE)
    336     GOEP_Init();
    337 #endif /* GOEP */
    338 
    339 
    340 #if (defined(FTP_INCLUDED) && FTP_INCLUDED == TRUE)
    341     FTP_Init();
    342 #endif
    343 #if (defined(OPP_INCLUDED) && OPP_INCLUDED == TRUE)
    344     OPP_Init();
    345 #endif
    346 
    347 #if (defined(BPP_INCLUDED) && BPP_INCLUDED == TRUE)
    348     BPP_Init();
    349 #endif  /* BPP */
    350 #endif  /* OBX */
    351 
    352 
    353 #endif  /* RFCOMM Included */
    354 
    355 /*************************
    356 ** TCS and its profiles **
    357 **************************/
    358 #if (defined(TCS_INCLUDED) && TCS_INCLUDED == TRUE)
    359     TCS_Init();
    360 
    361 #if (defined(CTP_INCLUDED) && CTP_INCLUDED == TRUE)
    362     CTP_Init();
    363 #endif /* CTP_INCLUDED */
    364 
    365 #if (defined(ICP_INCLUDED) && ICP_INCLUDED == TRUE)
    366     ICP_Init();
    367 #endif /* ICP_INCLUDED */
    368 
    369 #endif /* TCS_INCLUDED */
    370 
    371 
    372 /**************************
    373 ** BNEP and its profiles **
    374 ***************************/
    375 #if (defined(BNEP_INCLUDED) && BNEP_INCLUDED == TRUE)
    376     BNEP_Init();
    377 
    378 #if (defined(PAN_INCLUDED) && PAN_INCLUDED == TRUE)
    379     PAN_Init();
    380 #endif  /* PAN */
    381 #endif  /* BNEP Included */
    382 
    383 
    384 /**************************
    385 ** AVDT and its profiles **
    386 ***************************/
    387 #if (defined(A2D_INCLUDED) && A2D_INCLUDED == TRUE)
    388     A2D_Init();
    389 #endif  /* AADP */
    390 
    391 
    392 #if (defined(AVRC_INCLUDED) && AVRC_INCLUDED == TRUE)
    393     AVRC_Init();
    394 #endif
    395 
    396 
    397 /***********
    398 ** Others **
    399 ************/
    400 #if (defined(GAP_INCLUDED) && GAP_INCLUDED == TRUE)
    401     GAP_Init();
    402 #endif  /* GAP Included */
    403 
    404 #if (defined(HCRP_INCLUDED) && HCRP_INCLUDED == TRUE)
    405 #if (defined(HCRP_CLIENT_INCLUDED) && HCRP_CLIENT_INCLUDED == TRUE)
    406     HCRP_Init();
    407 #endif
    408 #if (defined(HCRP_SERVER_INCLUDED) && HCRP_SERVER_INCLUDED == TRUE)
    409     HCRPM_Init();
    410 #endif
    411 #endif  /* HCRP Included */
    412 
    413 #if (defined(SAP_SERVER_INCLUDED) && SAP_SERVER_INCLUDED == TRUE)
    414     SAP_Init();
    415 #endif  /* SAP_SERVER_INCLUDED */
    416 
    417 #if (defined(HID_DEV_INCLUDED) && HID_DEV_INCLUDED == TRUE)
    418     HID_DevInit();
    419 #endif
    420 #if (defined(HID_HOST_INCLUDED) && HID_HOST_INCLUDED == TRUE)
    421     HID_HostInit();
    422 #endif
    423 
    424 #if (defined(MCA_INCLUDED) && MCA_INCLUDED == TRUE)
    425     MCA_Init();
    426 #endif  /* SAP_SERVER_INCLUDED */
    427 
    428 /****************
    429 ** BTA Modules **
    430 *****************/
    431 // btla-specific ++
    432 #if (BTA_INCLUDED == TRUE && BTA_DYNAMIC_MEMORY == TRUE)
    433     memset((void*)bta_sys_cb_ptr, 0, sizeof(tBTA_SYS_CB));
    434     memset((void*)bta_dm_cb_ptr, 0, sizeof(tBTA_DM_CB));
    435     memset((void*)bta_dm_search_cb_ptr, 0, sizeof(tBTA_DM_SEARCH_CB));
    436     memset((void*)bta_dm_di_cb_ptr, 0, sizeof(tBTA_DM_DI_CB));
    437     memset((void*)bta_prm_cb_ptr, 0, sizeof(tBTA_PRM_CB));
    438 
    439 #if BTA_AC_INCLUDED == TRUE
    440     memset((void*)bta_acc_cb_ptr, 0, sizeof(tBTA_ACC_CB));
    441     memset((void*)bta_acs_cb_ptr, 0, sizeof(tBTA_ACS_CB));
    442 #endif
    443 #if BTA_AG_INCLUDED == TRUE
    444     memset((void*)bta_ag_cb_ptr, 0, sizeof(tBTA_AG_CB));
    445 #endif
    446 #if BTA_HS_INCLUDED == TRUE
    447     memset((void*)bta_hs_cb_ptr, 0, sizeof(tBTA_HS_CB));
    448 #endif
    449 #if BTA_DG_INCLUDED == TRUE
    450     memset((void*)bta_dg_cb_ptr, 0, sizeof(tBTA_DG_CB));
    451 #endif
    452 #if BTA_FT_INCLUDED==TRUE
    453     memset((void*)bta_ftc_cb_ptr, 0, sizeof(tBTA_FTC_CB));
    454     memset((void*)bta_fts_cb_ptr, 0, sizeof(tBTA_FTS_CB));
    455 #endif
    456 #if BTA_PBC_INCLUDED==TRUE
    457     memset((void*)bta_pbc_cb_ptr, 0, sizeof(tBTA_PBC_CB));
    458 #endif
    459 #if BTA_PBS_INCLUDED==TRUE
    460     memset((void*)bta_pbs_cb_ptr, 0, sizeof(tBTA_PBS_CB));
    461 #endif
    462 #if BTA_OP_INCLUDED==TRUE
    463     memset((void*)bta_opc_cb_ptr, 0, sizeof(tBTA_OPC_CB));
    464     memset((void*)bta_ops_cb_ptr, 0, sizeof(tBTA_OPS_CB));
    465 #endif
    466 #if BTA_SS_INCLUDED==TRUE
    467     memset((void*)bta_ss_cb_ptr, 0, sizeof(tBTA_SS_CB));
    468 #endif
    469 #if BTA_CT_INCLUDED==TRUE
    470     memset((void*)bta_ct_cb_ptr, 0, sizeof(tBTA_CT_CB));
    471 #endif
    472 #if BTA_CG_INCLUDED==TRUE
    473     memset((void*)bta_cg_cb_ptr, 0, sizeof(tBTA_CG_CB));
    474 #endif
    475 #if BTA_BI_INCLUDED==TRUE
    476     memset((void *)bta_bic_cb_ptr, 0, sizeof(tBTA_BIC_CB));
    477     memset((void *)bta_bis_cb_ptr, 0, sizeof(tBTA_BIS_CB));
    478 #endif
    479 #if BTA_AR_INCLUDED==TRUE
    480     memset((void *)bta_ar_cb_ptr, 0, sizeof(tBTA_AR_CB));
    481 #endif
    482 #if BTA_AV_INCLUDED==TRUE
    483     memset((void *)bta_av_cb_ptr, 0, sizeof(tBTA_AV_CB));
    484 #endif
    485 #if BTA_PR_INCLUDED==TRUE
    486     memset((void *)bta_pr_cb_ptr, 0, sizeof(tBTA_PR_CB));
    487 #endif
    488 #if BTA_SC_INCLUDED==TRUE
    489     memset((void *)bta_sc_cb_ptr, 0, sizeof(tBTA_SC_CB));
    490 #endif
    491 #if BTA_HD_INCLUDED==TRUE
    492     memset((void *)bta_hd_cb_ptr, 0, sizeof(tBTA_HD_CB));
    493 #endif
    494 #if BTA_HH_INCLUDED==TRUE
    495     memset((void *)bta_hh_cb_ptr, 0, sizeof(tBTA_HH_CB));
    496 #endif
    497 #if BTA_FM_INCLUDED==TRUE
    498     memset((void *)bta_fm_cb_ptr, 0, sizeof(tBTA_FM_CB));
    499 #endif
    500 #if BTA_FMTX_INCLUDED==TRUE
    501     memset((void *)bta_fmtx_cb_ptr, 0, sizeof(tBTA_FMTX_CB));
    502 #endif
    503 #if 0
    504 #if BTA_JV_INCLUDED==TRUE
    505     memset((void *)bta_jv_cb_ptr, 0, sizeof(tBTA_JV_CB));
    506 #endif
    507 #endif
    508 #if BTA_HL_INCLUDED==TRUE
    509     memset((void *)bta_hl_cb_ptr, 0, sizeof(tBTA_HL_CB));
    510 #endif
    511 #if BTA_GATT_INCLUDED==TRUE
    512     memset((void *)bta_gattc_cb_ptr, 0, sizeof(tBTA_GATTC_CB));
    513     memset((void *)bta_gatts_cb_ptr, 0, sizeof(tBTA_GATTS_CB));
    514 #endif
    515 #if BTA_PAN_INCLUDED==TRUE
    516     memset((void *)bta_pan_cb_ptr, 0, sizeof(tBTA_PAN_CB));
    517 #endif
    518 
    519 #endif /* BTA_INCLUDED == TRUE */
    520 // btla-specific --
    521 }
    522