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
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;
|
|
}
|