/****************************************************************************** * * Copyright 2002-2012 Broadcom Corporation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at: * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ******************************************************************************/ /****************************************************************************** * * This file contains the definition of the btm control block. * ******************************************************************************/ #include #include #include "bt_target.h" #include "bt_types.h" #include "main/shim/dumpsys.h" #include "stack/btm/btm_int_types.h" #include "stack/include/btm_client_interface.h" #include "stack_config.h" /* Global BTM control block structure */ tBTM_CB btm_cb; /******************************************************************************* * * Function btm_init * * Description This function is called at BTM startup to allocate the * control block (if using dynamic memory), and initializes the * tracing level. It then initializes the various components * of btm. * * Returns void * ******************************************************************************/ void btm_init(void) { btm_cb.Init(stack_config_get_interface()->get_pts_secure_only_mode() ? BTM_SEC_MODE_SC : BTM_SEC_MODE_SP); } /** This function is called to free dynamic memory and system resource allocated by btm_init */ void btm_free(void) { btm_cb.Free(); } constexpr size_t kMaxLogHistoryTagLength = 6; constexpr size_t kMaxLogHistoryMsgLength = 25; static void btm_log_history(const std::string& tag, const char* addr, const std::string& msg, const std::string& extra) { btm_cb.history_->Push( "%-6s %-25s: %s %s", tag.substr(0, kMaxLogHistoryTagLength).c_str(), msg.substr(0, kMaxLogHistoryMsgLength).c_str(), addr, extra.c_str()); } void BTM_LogHistory(const std::string& tag, const RawAddress& bd_addr, const std::string& msg, const std::string& extra) { btm_log_history(tag, PRIVATE_ADDRESS(bd_addr), msg, extra); } void BTM_LogHistory(const std::string& tag, const RawAddress& bd_addr, const std::string& msg) { BTM_LogHistory(tag, bd_addr, msg, std::string()); } void BTM_LogHistory(const std::string& tag, const tBLE_BD_ADDR& ble_bd_addr, const std::string& msg, const std::string& extra) { btm_log_history(tag, PRIVATE_ADDRESS(ble_bd_addr), msg, extra); } void BTM_LogHistory(const std::string& tag, const tBLE_BD_ADDR& ble_bd_addr, const std::string& msg) { BTM_LogHistory(tag, ble_bd_addr, msg, std::string()); }