You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

184 lines
6.9 KiB

/*
* 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 <cstdint>
#include "main/shim/btm_api.h"
#include "stack/include/acl_api.h"
#include "stack/include/btm_api.h"
#include "stack/include/btm_ble_api.h"
#include "stack/include/btm_client_interface.h"
#include "stack/include/hci_error_code.h"
#include "stack/include/hcidefs.h"
#include "types/bt_transport.h"
#include "types/raw_address.h"
struct btm_client_interface_s btm_client_interface = {
.lifecycle =
{
.BTM_GetHCIConnHandle = BTM_GetHCIConnHandle,
.BTM_PmRegister = BTM_PmRegister,
.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,
},
.scn =
{
.BTM_AllocateSCN = BTM_AllocateSCN,
.BTM_TryAllocateSCN = BTM_TryAllocateSCN,
.BTM_FreeSCN = BTM_FreeSCN,
},
.neighbor =
{
.BTM_CancelInquiry = BTM_CancelInquiry,
.BTM_ClearInqDb = BTM_ClearInqDb,
.BTM_InqDbNext = BTM_InqDbNext,
.BTM_SetConnectability = BTM_SetConnectability,
.BTM_SetDiscoverability = BTM_SetDiscoverability,
.BTM_StartInquiry = BTM_StartInquiry,
.BTM_IsInquiryActive = BTM_IsInquiryActive,
.BTM_SetInquiryMode = BTM_SetInquiryMode,
.BTM_EnableInterlacedInquiryScan = BTM_EnableInterlacedInquiryScan,
.BTM_EnableInterlacedPageScan = BTM_EnableInterlacedPageScan,
},
// Acl peer and lifecycle
.peer =
{
.features =
{
.SupportTransparentSynchronousData =
ACL_SupportTransparentSynchronousData,
},
.BTM_CancelRemoteDeviceName = BTM_CancelRemoteDeviceName,
.BTM_IsAclConnectionUp = BTM_IsAclConnectionUp,
.BTM_ReadConnectedTransportAddress =
BTM_ReadConnectedTransportAddress,
.BTM_ReadDevInfo = BTM_ReadDevInfo,
.BTM_ReadRemoteDeviceName = BTM_ReadRemoteDeviceName,
.BTM_ReadRemoteFeatures = BTM_ReadRemoteFeatures,
.BTM_GetMaxPacketSize = BTM_GetMaxPacketSize,
.BTM_ReadRemoteVersion = BTM_ReadRemoteVersion,
},
.link_policy =
{
.BTM_GetRole = BTM_GetRole,
.BTM_SetPowerMode = BTM_SetPowerMode,
.BTM_SetSsrParams = BTM_SetSsrParams,
.BTM_SwitchRoleToCentral = BTM_SwitchRoleToCentral,
.BTM_WritePageTimeout = BTM_WritePageTimeout,
.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,
},
.link_controller =
{
.BTM_GetLinkSuperTout = BTM_GetLinkSuperTout,
.BTM_ReadRSSI = BTM_ReadRSSI,
},
.security =
{
.BTM_ConfirmReqReply = BTM_ConfirmReqReply,
.BTM_PINCodeReply = BTM_PINCodeReply,
.BTM_RemoteOobDataReply = BTM_RemoteOobDataReply,
.BTM_SecAddBleDevice = BTM_SecAddBleDevice,
.BTM_SecAddBleKey = BTM_SecAddBleKey,
.BTM_SecAddDevice = BTM_SecAddDevice,
.BTM_SecAddRmtNameNotifyCallback = BTM_SecAddRmtNameNotifyCallback,
.BTM_SecBond = BTM_SecBond,
.BTM_SecBondCancel = BTM_SecBondCancel,
.BTM_SecClearSecurityFlags = BTM_SecClearSecurityFlags,
.BTM_SecClrService = BTM_SecClrService,
.BTM_SecClrServiceByPsm = BTM_SecClrServiceByPsm,
.BTM_SecDeleteDevice = BTM_SecDeleteDevice,
.BTM_SecDeleteRmtNameNotifyCallback =
BTM_SecDeleteRmtNameNotifyCallback,
.BTM_SecReadDevName = BTM_SecReadDevName,
.BTM_SecRegister = BTM_SecRegister,
.BTM_SetEncryption = BTM_SetEncryption,
.BTM_IsEncrypted = BTM_IsEncrypted,
.BTM_SecIsSecurityPending = BTM_SecIsSecurityPending,
.BTM_IsLinkKeyKnown = BTM_IsLinkKeyKnown,
},
.ble =
{
.BTM_BleConfirmReply = BTM_BleConfirmReply,
.BTM_BleGetEnergyInfo = BTM_BleGetEnergyInfo,
.BTM_BleLoadLocalKeys = BTM_BleLoadLocalKeys,
.BTM_BleObserve = BTM_BleObserve,
.BTM_BlePasskeyReply = BTM_BlePasskeyReply,
.BTM_BleReadControllerFeatures = BTM_BleReadControllerFeatures,
.BTM_BleSetPhy = BTM_BleSetPhy,
.BTM_BleSetPrefConnParams = BTM_BleSetPrefConnParams,
.BTM_SetBleDataLength = BTM_SetBleDataLength,
.BTM_UseLeLink = BTM_UseLeLink,
},
.sco =
{
.BTM_CreateSco = BTM_CreateSco,
.BTM_EScoConnRsp = BTM_EScoConnRsp,
.BTM_GetNumScoLinks = BTM_GetNumScoLinks,
.BTM_RegForEScoEvts = BTM_RegForEScoEvts,
.BTM_RemoveSco = BTM_RemoveSco,
.BTM_SetEScoMode = BTM_SetEScoMode,
.BTM_WriteVoiceSettings = BTM_WriteVoiceSettings,
},
.local =
{
.BTM_ReadLocalDeviceNameFromController =
BTM_ReadLocalDeviceNameFromController,
.BTM_SetDeviceClass = BTM_SetDeviceClass,
.BTM_SetLocalDeviceName = BTM_SetLocalDeviceName,
.BTM_IsDeviceUp = BTM_IsDeviceUp,
.BTM_ReadDeviceClass = BTM_ReadDeviceClass,
},
.eir =
{
.BTM_GetEirSupportedServices = BTM_GetEirSupportedServices,
.BTM_GetEirUuidList = BTM_GetEirUuidList,
.BTM_RemoveEirService = BTM_RemoveEirService,
.BTM_WriteEIR = BTM_WriteEIR,
},
.db =
{
.BTM_InqDbRead = BTM_InqDbRead,
.BTM_InqDbFirst = BTM_InqDbFirst,
.BTM_InqDbNext = BTM_InqDbNext,
.BTM_ClearInqDb = BTM_ClearInqDb,
},
};
struct btm_client_interface_s& get_btm_client_interface() {
return btm_client_interface;
}