/****************************************************************************** * * Copyright 2006-2012 Broadcom Corporation * * 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. * ******************************************************************************/ /****************************************************************************** * * This is the interface file for device mananger callout functions. * ******************************************************************************/ #ifndef BTA_DM_CO_H #define BTA_DM_CO_H #include "bta_sys.h" #include "btm_api.h" #ifndef BTA_SCO_OUT_PKT_SIZE #define BTA_SCO_OUT_PKT_SIZE BTM_SCO_DATA_SIZE_MAX #endif /***************************************************************************** * Function Declarations ****************************************************************************/ /******************************************************************************* * * Function bta_dm_co_io_req * * Description This callout function is executed by DM to get IO * capabilities of the local device for the Simple Pairing * process * * Parameters bd_addr - The peer device * *p_io_cap - The local Input/Output capabilities * *p_oob_data - true, if OOB data is available for the peer * device. * *p_auth_req - true, if MITM protection is required. * * Returns void. * ******************************************************************************/ extern void bta_dm_co_io_req(const RawAddress& bd_addr, tBTA_IO_CAP* p_io_cap, tBTA_OOB_DATA* p_oob_data, tBTA_AUTH_REQ* p_auth_req, bool is_orig); /******************************************************************************* * * Function bta_dm_co_io_rsp * * Description This callout function is executed by DM to report IO * capabilities of the peer device for the Simple Pairing * process * * Parameters bd_addr - The peer device * io_cap - The remote Input/Output capabilities * oob_data - true, if OOB data is available for the peer * device. * auth_req - true, if MITM protection is required. * * Returns void. * ******************************************************************************/ extern void bta_dm_co_io_rsp(const RawAddress& bd_addr, tBTA_IO_CAP io_cap, tBTA_OOB_DATA oob_data, tBTA_AUTH_REQ auth_req); /******************************************************************************* * * Function bta_dm_co_lk_upgrade * * Description This callout function is executed by DM to check if the * platform wants allow link key upgrade * * Parameters bd_addr - The peer device * *p_upgrade - true, if link key upgrade is desired. * * Returns void. * ******************************************************************************/ extern void bta_dm_co_lk_upgrade(const RawAddress& bd_addr, bool* p_upgrade); /******************************************************************************* * * Function bta_dm_co_loc_oob * * Description This callout function is executed by DM to report the OOB * data of the local device for the Simple Pairing process * * Parameters valid - true, if the local OOB data is retrieved from LM * c - Simple Pairing Hash C * r - Simple Pairing Randomnizer R * * Returns void. * ******************************************************************************/ extern void bta_dm_co_loc_oob(bool valid, const Octet16& c, const Octet16& r); /******************************************************************************* * * Function bta_dm_co_rmt_oob * * Description This callout function is executed by DM to request the OOB * data for the remote device for the Simple Pairing process * * Parameters bd_addr - The peer device * * Returns void. * ******************************************************************************/ extern void bta_dm_co_rmt_oob(const RawAddress& bd_addr); /******************************************************************************* * * Function bta_dm_sco_co_open * * Description This function is executed when a SCO connection is open. * * * Returns void * ******************************************************************************/ extern void bta_dm_sco_co_open(uint16_t handle, uint8_t pkt_size, uint16_t event); /******************************************************************************* * * Function bta_dm_sco_co_close * * Description This function is called when a SCO connection is closed * * * Returns void * ******************************************************************************/ extern void bta_dm_sco_co_close(void); /******************************************************************************* * * Function bta_dm_sco_co_out_data * * Description This function is called to send SCO data over HCI. * * Returns void * ******************************************************************************/ extern void bta_dm_sco_co_out_data(BT_HDR** p_buf); /******************************************************************************* * * Function bta_dm_sco_co_in_data * * Description This function is called to send incoming SCO data to * application. * * Returns void * ******************************************************************************/ extern void bta_dm_sco_co_in_data(BT_HDR* p_buf, tBTM_SCO_DATA_FLAG status); /******************************************************************************* * * Function bta_dm_co_ble_io_req * * Description This callout function is executed by DM to get BLE IO * capabilities before SMP pairing gets going. * * Parameters bd_addr - The peer device * *p_io_cap - The local Input/Output capabilities * *p_oob_data - true, if OOB data is available for the peer * device. * *p_auth_req - Auth request setting (Bonding and MITM * required or not) * *p_max_key_size - max key size local device supported. * *p_init_key - initiator keys. * *p_resp_key - responder keys. * * Returns void. * ******************************************************************************/ extern void bta_dm_co_ble_io_req( const RawAddress& bd_addr, tBTA_IO_CAP* p_io_cap, tBTA_OOB_DATA* p_oob_data, tBTA_LE_AUTH_REQ* p_auth_req, uint8_t* p_max_key_size, tBTA_LE_KEY_TYPE* p_init_key, tBTA_LE_KEY_TYPE* p_resp_key); /******************************************************************************* * * Function bta_dm_co_ble_local_key_reload * * Description This callout function is to load the local BLE keys if * available on the device. * * Parameters none * * Returns void. * ******************************************************************************/ extern void bta_dm_co_ble_load_local_keys( tBTA_DM_BLE_LOCAL_KEY_MASK* p_key_mask, Octet16* p_er, tBTA_BLE_LOCAL_ID_KEYS* p_id_keys); #endif /* BTA_DM_CO_H */