blob: 3db1bd04686e05a013311ade40a073ac8d750d81 [file]
/*
* Copyright 2020 The Android Open Source Project
*
* 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.
*/
#include "stack/include/btm_client_interface.h"
#include <bluetooth/log.h>
#include "security_client_callbacks.h"
#include "stack/btm/btm_ble_int.h"
#include "stack/include/acl_api.h"
#include "stack/include/btm_api.h"
#include "stack/include/btm_ble_api.h"
struct btm_client_interface_t btm_client_interface = {
.lifecycle =
{
.BTM_PmRegister = ::BTM_PmRegister,
.BTM_GetHCIConnHandle = ::BTM_GetHCIConnHandle,
.BTM_VendorSpecificCommand = ::BTM_VendorSpecificCommand,
.ACL_RegisterClient = ::ACL_RegisterClient,
.ACL_UnregisterClient = ::ACL_UnregisterClient,
.btm_init = ::btm_init,
.btm_free = ::btm_free,
.btm_ble_init = ::btm_ble_init,
.btm_ble_free = ::btm_ble_free,
.BTM_reset_complete = ::BTM_reset_complete,
},
// Acl peer and lifecycle
.peer =
{
.BTM_IsAclConnectionUp = ::BTM_IsAclConnectionUp,
.BTM_ReadConnectedTransportAddress =
::BTM_ReadConnectedTransportAddress,
.BTM_CancelRemoteDeviceName = ::BTM_CancelRemoteDeviceName,
.BTM_ReadRemoteDeviceName = ::BTM_ReadRemoteDeviceName,
.BTM_ReadRemoteFeatures = ::BTM_ReadRemoteFeatures,
.BTM_ReadDevInfo = ::BTM_ReadDevInfo,
.BTM_GetMaxPacketSize = ::BTM_GetMaxPacketSize,
.BTM_ReadRemoteVersion = ::BTM_ReadRemoteVersion,
.BTM_GetPeerDeviceTypeFromFeatures =
::BTM_GetPeerDeviceTypeFromFeatures,
.BTM_RequestPeerSCA = ::BTM_RequestPeerSCA,
.BTM_GetPeerSCA = ::BTM_GetPeerSCA,
.BTM_IsPhy2mSupported = ::BTM_IsPhy2mSupported,
},
.link_policy =
{
.BTM_GetRole = ::BTM_GetRole,
.BTM_SetPowerMode = ::BTM_SetPowerMode,
.BTM_SetSsrParams = ::BTM_SetSsrParams,
.BTM_SwitchRoleToCentral = ::BTM_SwitchRoleToCentral,
.BTM_block_role_switch_for = ::BTM_block_role_switch_for,
.BTM_block_sniff_mode_for = ::BTM_block_sniff_mode_for,
.BTM_default_unblock_role_switch =
::BTM_default_unblock_role_switch,
.BTM_unblock_role_switch_for = ::BTM_unblock_role_switch_for,
.BTM_unblock_sniff_mode_for = ::BTM_unblock_sniff_mode_for,
.BTM_WritePageTimeout = ::BTM_WritePageTimeout,
},
.link_controller =
{
.BTM_GetLinkSuperTout = ::BTM_GetLinkSuperTout,
.BTM_ReadRSSI = ::BTM_ReadRSSI,
},
.security = get_security_client_interface(),
.ble =
{
.BTM_BleGetEnergyInfo = ::BTM_BleGetEnergyInfo,
.BTM_BleObserve = ::BTM_BleObserve,
.BTM_SetBleDataLength = ::BTM_SetBleDataLength,
.BTM_BleReadControllerFeatures = ::BTM_BleReadControllerFeatures,
.BTM_BleSetPhy = ::BTM_BleSetPhy,
.BTM_BleSetPrefConnParams = ::BTM_BleSetPrefConnParams,
.BTM_UseLeLink = ::BTM_UseLeLink,
.BTM_IsRemoteVersionReceived = ::BTM_IsRemoteVersionReceived,
.BTM_SetConsolidationCallback = ::BTM_SetConsolidationCallback,
},
.sco =
{
.BTM_CreateSco = ::BTM_CreateSco,
.BTM_RegForEScoEvts = ::BTM_RegForEScoEvts,
.BTM_RemoveSco = ::BTM_RemoveSco,
.BTM_WriteVoiceSettings = ::BTM_WriteVoiceSettings,
.BTM_EScoConnRsp = ::BTM_EScoConnRsp,
.BTM_GetNumScoLinks = ::BTM_GetNumScoLinks,
.BTM_SetEScoMode = ::BTM_SetEScoMode,
.BTM_GetScoDebugDump = ::BTM_GetScoDebugDump,
.BTM_IsScoActiveByBdaddr = ::BTM_IsScoActiveByBdaddr,
},
.local =
{
.BTM_ReadLocalDeviceName = ::BTM_ReadLocalDeviceName,
.BTM_ReadLocalDeviceNameFromController =
::BTM_ReadLocalDeviceNameFromController,
.BTM_SetLocalDeviceName = ::BTM_SetLocalDeviceName,
.BTM_SetDeviceClass = ::BTM_SetDeviceClass,
.BTM_IsDeviceUp = ::BTM_IsDeviceUp,
.BTM_ReadDeviceClass = ::BTM_ReadDeviceClass,
},
.eir =
{
.BTM_WriteEIR = ::BTM_WriteEIR,
.BTM_GetEirSupportedServices = ::BTM_GetEirSupportedServices,
.BTM_GetEirUuidList = ::BTM_GetEirUuidList,
.BTM_AddEirService = ::BTM_AddEirService,
.BTM_RemoveEirService = ::BTM_RemoveEirService,
},
.db =
{
.BTM_InqDbRead = ::BTM_InqDbRead,
.BTM_InqDbFirst = ::BTM_InqDbFirst,
.BTM_InqDbNext = ::BTM_InqDbNext,
.BTM_ClearInqDb = ::BTM_ClearInqDb,
},
};
struct btm_client_interface_t& get_btm_client_interface() {
return btm_client_interface;
}