15738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/****************************************************************************** 25738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 35b790feeeb211c42bf78ca3ae9c26aa30e516765Jakub Pawlowski * Copyright 2006-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 is the interface file for device mananger callout functions. 225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/ 245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef BTA_DM_CO_H 255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_DM_CO_H 265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bta_sys.h" 2857f6508cf7b22788fa2e7a739cec241b785718fbMudumba Ananth#include "btm_api.h" 295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef BTA_SCO_OUT_PKT_SIZE 31cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SCO_OUT_PKT_SIZE BTM_SCO_DATA_SIZE_MAX 325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************************************************************************** 358af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function Declarations 368af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ****************************************************************************/ 375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 398af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 408af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function bta_dm_co_io_req 418af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 42cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description This callout function is executed by DM to get IO 431baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * capabilities of the local device for the Simple Pairing 441baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * process 458af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 468af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters bd_addr - The peer device 478af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * *p_io_cap - The local Input/Output capabilities 48cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * *p_oob_data - true, if OOB data is available for the peer 491baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * device. 508af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * *p_auth_req - true, if MITM protection is required. 518af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 528af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void. 538af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 548af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 55a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void bta_dm_co_io_req(const RawAddress& bd_addr, tBTA_IO_CAP* p_io_cap, 56cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_OOB_DATA* p_oob_data, 57cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_AUTH_REQ* p_auth_req, bool is_orig); 585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 608af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 618af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function bta_dm_co_io_rsp 628af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 63cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description This callout function is executed by DM to report IO 641baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * capabilities of the peer device for the Simple Pairing 651baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * process 668af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 678af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters bd_addr - The peer device 688af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * io_cap - The remote Input/Output capabilities 69cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * oob_data - true, if OOB data is available for the peer 701baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * device. 718af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * auth_req - true, if MITM protection is required. 728af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 738af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void. 748af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 758af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 76a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void bta_dm_co_io_rsp(const RawAddress& bd_addr, tBTA_IO_CAP io_cap, 7724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans tBTA_OOB_DATA oob_data, tBTA_AUTH_REQ auth_req); 785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 808af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 818af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function bta_dm_co_lk_upgrade 828af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 838af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This callout function is executed by DM to check if the 848af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * platform wants allow link key upgrade 858af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 868af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters bd_addr - The peer device 878af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * *p_upgrade - true, if link key upgrade is desired. 888af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 898af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void. 908af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 918af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 92a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void bta_dm_co_lk_upgrade(const RawAddress& bd_addr, bool* p_upgrade); 935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 958af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 968af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function bta_dm_co_loc_oob 978af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 988af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This callout function is executed by DM to report the OOB 998af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * data of the local device for the Simple Pairing process 1008af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1018af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters valid - true, if the local OOB data is retrieved from LM 1028af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * c - Simple Pairing Hash C 1038af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * r - Simple Pairing Randomnizer R 1048af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1058af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void. 1068af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1078af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 108e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssenextern void bta_dm_co_loc_oob(bool valid, BT_OCTET16 c, BT_OCTET16 r); 1095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 1118af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1128af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function bta_dm_co_rmt_oob 1138af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1148af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This callout function is executed by DM to request the OOB 1158af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * data for the remote device for the Simple Pairing process 1168af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1178af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters bd_addr - The peer device 1188af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1198af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void. 1208af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1218af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 122a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void bta_dm_co_rmt_oob(const RawAddress& bd_addr); 1235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 1258af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1268af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function bta_dm_sco_co_open 1278af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1288af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function is executed when a SCO connection is open. 1298af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1308af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1318af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 1328af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1338af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 134cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_sco_co_open(uint16_t handle, uint8_t pkt_size, 135cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint16_t event); 1365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 1388af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1398af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function bta_dm_sco_co_close 1408af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1418af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function is called when a SCO connection is closed 1428af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1438af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1448af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 1458af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1468af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 14724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void bta_dm_sco_co_close(void); 1485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 1508af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1518af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function bta_dm_sco_co_out_data 1528af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1538af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function is called to send SCO data over HCI. 1548af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1558af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 1568af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1578af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 158cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_sco_co_out_data(BT_HDR** p_buf); 1595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 1618af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1628af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function bta_dm_sco_co_in_data 1638af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 164cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description This function is called to send incoming SCO data to 1651baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * application. 1668af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1678af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 1688af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1698af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 170cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_sco_co_in_data(BT_HDR* p_buf, tBTM_SCO_DATA_FLAG status); 1715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 1738af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1748af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function bta_dm_co_ble_io_req 1758af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 176cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description This callout function is executed by DM to get BLE IO 1771baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * capabilities before SMP pairing gets going. 1788af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1798af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters bd_addr - The peer device 1808af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * *p_io_cap - The local Input/Output capabilities 181cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * *p_oob_data - true, if OOB data is available for the peer 1821baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * device. 183cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * *p_auth_req - Auth request setting (Bonding and MITM 1841baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * required or not) 1858af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * *p_max_key_size - max key size local device supported. 1868af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * *p_init_key - initiator keys. 1878af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * *p_resp_key - responder keys. 1888af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1898af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void. 1908af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1918af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 192a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void bta_dm_co_ble_io_req( 193a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowski const RawAddress& bd_addr, tBTA_IO_CAP* p_io_cap, tBTA_OOB_DATA* p_oob_data, 194a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowski tBTA_LE_AUTH_REQ* p_auth_req, uint8_t* p_max_key_size, 195a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowski tBTA_LE_KEY_TYPE* p_init_key, tBTA_LE_KEY_TYPE* p_resp_key); 1965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 1988af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1998af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function bta_dm_co_ble_local_key_reload 2008af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 201cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description This callout function is to load the local BLE keys if 2021baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * available on the device. 2038af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 2048af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters none 2058af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 2068af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void. 2078af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 2088af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 209cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_co_ble_load_local_keys( 210cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_LOCAL_KEY_MASK* p_key_mask, BT_OCTET16 er, 211cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_BLE_LOCAL_ID_KEYS* p_id_keys); 2125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 213b2a292b5d8df2f359c38b0787bc01181225a9bc9Pavlin Radoslavov#endif /* BTA_DM_CO_H */ 214