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