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