15738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/****************************************************************************** 25738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 35738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Copyright (C) 2002-2012 Broadcom Corporation 45738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 55738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 65738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * you may not use this file except in compliance with the License. 75738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * You may obtain a copy of the License at: 85738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 95738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * See the License for the specific language governing permissions and 155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * limitations under the License. 165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/ 185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/****************************************************************************** 205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * This file contains the definition of the btm control block when 225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * BTM_DYNAMIC_MEMORY is used. 235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/ 255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bt_types.h" 275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bt_target.h" 285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include <string.h> 295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "btm_int.h" 305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Global BTM control block structure 325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if BTM_DYNAMIC_MEMORY == FALSE 345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjecttBTM_CB btm_cb; 355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function btm_init 405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is called at BTM startup to allocate the 425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** control block (if using dynamic memory), and initializes the 435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** tracing level. It then initializes the various components of 445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** btm. 455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns void 475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectvoid btm_init (void) 505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* All fields are cleared; nonzero fields are reinitialized in appropriate function */ 525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project memset(&btm_cb, 0, sizeof(tBTM_CB)); 535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if defined(BTM_INITIAL_TRACE_LEVEL) 555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project btm_cb.trace_level = BTM_INITIAL_TRACE_LEVEL; 565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#else 575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project btm_cb.trace_level = BT_TRACE_LEVEL_NONE; /* No traces */ 585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Initialize BTM component structures */ 605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project btm_inq_db_init(); /* Inquiry Database and Structures */ 615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project btm_acl_init(); /* ACL Database and Structures */ 625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project btm_sec_init(BTM_SEC_MODE_SP); /* Security Manager Database and Structures */ 635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if BTM_SCO_INCLUDED == TRUE 645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project btm_sco_init(); /* SCO Database and Structures (If included) */ 655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project btm_dev_init(); /* Device Manager Structures & HCI_Reset */ 685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 71