From: Jakub Pawlowski Date: Fri, 27 Oct 2017 19:33:58 +0000 (-0700) Subject: Use Bind in BTA_JvL2capConnectLE X-Git-Tag: android-x86-9.0-r1~181^2~18^2^2^2 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=5458047d4e8a7115dd5f5e5426e15456e095e450;p=android-x86%2Fsystem-bt.git Use Bind in BTA_JvL2capConnectLE Bug: 68359837 Test: compilation test Change-Id: Iaef4695db6b46af59641d5af508b87f20bcf5232 --- diff --git a/bta/jv/bta_jv_act.cc b/bta/jv/bta_jv_act.cc index d192b9024..2d6201745 100644 --- a/bta/jv/bta_jv_act.cc +++ b/bta/jv/bta_jv_act.cc @@ -2348,17 +2348,11 @@ static void fcchan_data_cbk(uint16_t chan, const RawAddress& bd_addr, if (sock_cback) sock_cback(BTA_JV_L2CAP_DATA_IND_EVT, &evt_data, sock_id); } -/******************************************************************************* - * - * Function bta_jv_l2cap_connect_le - * - * Description makes an le l2cap client connection - * - * Returns void - * - ******************************************************************************/ -void bta_jv_l2cap_connect_le(tBTA_JV_MSG* p_data) { - tBTA_JV_API_L2CAP_CONNECT* cc = &(p_data->l2cap_connect); +/** makes an le l2cap client connection */ +void bta_jv_l2cap_connect_le(uint16_t remote_chan, + const RawAddress& peer_bd_addr, + tBTA_JV_L2CAP_CBACK* p_cback, + uint32_t l2cap_socket_id) { tBTA_JV evt; uint32_t id; char call_init_f = true; @@ -2367,15 +2361,15 @@ void bta_jv_l2cap_connect_le(tBTA_JV_MSG* p_data) { evt.l2c_cl_init.handle = GAP_INVALID_HANDLE; evt.l2c_cl_init.status = BTA_JV_FAILURE; - t = fcclient_alloc(cc->remote_chan, false, NULL); + t = fcclient_alloc(remote_chan, false, NULL); if (!t) { - cc->p_cback(BTA_JV_L2CAP_CL_INIT_EVT, &evt, cc->l2cap_socket_id); + p_cback(BTA_JV_L2CAP_CL_INIT_EVT, &evt, l2cap_socket_id); return; } - t->p_cback = cc->p_cback; - t->l2cap_socket_id = cc->l2cap_socket_id; - t->remote_addr = cc->peer_bd_addr; + t->p_cback = p_cback; + t->l2cap_socket_id = l2cap_socket_id; + t->remote_addr = peer_bd_addr; id = t->id; t->init_called = false; @@ -2392,8 +2386,7 @@ void bta_jv_l2cap_connect_le(tBTA_JV_MSG* p_data) { else fcclient_free(t); } - if (call_init_f) - cc->p_cback(BTA_JV_L2CAP_CL_INIT_EVT, &evt, cc->l2cap_socket_id); + if (call_init_f) p_cback(BTA_JV_L2CAP_CL_INIT_EVT, &evt, l2cap_socket_id); t->init_called = true; } diff --git a/bta/jv/bta_jv_api.cc b/bta/jv/bta_jv_api.cc index 920e21739..2ae50cb48 100644 --- a/bta/jv/bta_jv_api.cc +++ b/bta/jv/bta_jv_api.cc @@ -257,10 +257,10 @@ tBTA_JV_STATUS BTA_JvDeleteRecord(uint32_t handle) { * BTA_JV_FAILURE, otherwise. * ******************************************************************************/ -tBTA_JV_STATUS BTA_JvL2capConnectLE(tBTA_SEC sec_mask, tBTA_JV_ROLE role, - const tL2CAP_ERTM_INFO* ertm_info, - uint16_t remote_chan, uint16_t rx_mtu, - tL2CAP_CFG_INFO* cfg, +tBTA_JV_STATUS BTA_JvL2capConnectLE(tBTA_SEC sec_mask, tBTA_JV_ROLE, + const tL2CAP_ERTM_INFO*, + uint16_t remote_chan, uint16_t, + tL2CAP_CFG_INFO*, const RawAddress& peer_bd_addr, tBTA_JV_L2CAP_CBACK* p_cback, uint32_t l2cap_socket_id) { @@ -268,30 +268,8 @@ tBTA_JV_STATUS BTA_JvL2capConnectLE(tBTA_SEC sec_mask, tBTA_JV_ROLE role, if (p_cback == NULL) return BTA_JV_FAILURE; /* Nothing to do */ - tBTA_JV_API_L2CAP_CONNECT* p_msg = - (tBTA_JV_API_L2CAP_CONNECT*)osi_malloc(sizeof(tBTA_JV_API_L2CAP_CONNECT)); - p_msg->hdr.event = BTA_JV_API_L2CAP_CONNECT_LE_EVT; - p_msg->sec_mask = sec_mask; - p_msg->role = role; - p_msg->remote_chan = remote_chan; - p_msg->rx_mtu = rx_mtu; - if (cfg != NULL) { - p_msg->has_cfg = true; - p_msg->cfg = *cfg; - } else { - p_msg->has_cfg = false; - } - if (ertm_info != NULL) { - p_msg->has_ertm_info = true; - p_msg->ertm_info = *ertm_info; - } else { - p_msg->has_ertm_info = false; - } - p_msg->peer_bd_addr = peer_bd_addr; - p_msg->p_cback = p_cback; - p_msg->l2cap_socket_id = l2cap_socket_id; - - bta_sys_sendmsg(p_msg); + do_in_bta_thread(FROM_HERE, Bind(&bta_jv_l2cap_connect_le, remote_chan, + peer_bd_addr, p_cback, l2cap_socket_id)); return BTA_JV_SUCCESS; } diff --git a/bta/jv/bta_jv_int.h b/bta/jv/bta_jv_int.h index 8f2074bf0..97a5e0b5e 100644 --- a/bta/jv/bta_jv_int.h +++ b/bta/jv/bta_jv_int.h @@ -50,7 +50,6 @@ enum { BTA_JV_API_RFCOMM_WRITE_EVT, BTA_JV_API_SET_PM_PROFILE_EVT, BTA_JV_API_PM_STATE_CHANGE_EVT, - BTA_JV_API_L2CAP_CONNECT_LE_EVT, BTA_JV_API_L2CAP_START_SERVER_LE_EVT, BTA_JV_API_L2CAP_STOP_SERVER_LE_EVT, BTA_JV_API_L2CAP_WRITE_FIXED_EVT, @@ -139,7 +138,7 @@ typedef struct { int curr_sess; /* current sessions count*/ } tBTA_JV_RFC_CB; -/* data type for BTA_JV_API_L2CAP_CONNECT_EVT & BTA_JV_API_L2CAP_CONNECT_LE_EVT +/* data type for BTA_JV_API_L2CAP_CONNECT_EVT */ typedef struct { BT_HDR hdr; @@ -355,7 +354,10 @@ extern void bta_jv_rfcomm_read(tBTA_JV_MSG* p_data); extern void bta_jv_rfcomm_write(tBTA_JV_MSG* p_data); extern void bta_jv_set_pm_profile(tBTA_JV_MSG* p_data); extern void bta_jv_change_pm_state(tBTA_JV_MSG* p_data); -extern void bta_jv_l2cap_connect_le(tBTA_JV_MSG* p_data); +extern void bta_jv_l2cap_connect_le(uint16_t remote_chan, + const RawAddress& peer_bd_addr, + tBTA_JV_L2CAP_CBACK* p_cback, + uint32_t l2cap_socket_id); extern void bta_jv_l2cap_start_server_le(tBTA_JV_MSG* p_data); extern void bta_jv_l2cap_stop_server_le(tBTA_JV_MSG* p_data); extern void bta_jv_l2cap_write_fixed(tBTA_JV_MSG* p_data); diff --git a/bta/jv/bta_jv_main.cc b/bta/jv/bta_jv_main.cc index eb572d116..617ced3ec 100644 --- a/bta/jv/bta_jv_main.cc +++ b/bta/jv/bta_jv_main.cc @@ -55,7 +55,6 @@ const tBTA_JV_ACTION bta_jv_action[] = { bta_jv_rfcomm_write, /* BTA_JV_API_RFCOMM_WRITE_EVT */ bta_jv_set_pm_profile, /* BTA_JV_API_SET_PM_PROFILE_EVT */ bta_jv_change_pm_state, /* BTA_JV_API_PM_STATE_CHANGE_EVT */ - bta_jv_l2cap_connect_le, /* BTA_JV_API_L2CAP_CONNECT_LE_EVT */ bta_jv_l2cap_start_server_le, /* BTA_JV_API_L2CAP_START_SERVER_LE_EVT */ bta_jv_l2cap_stop_server_le, /* BTA_JV_API_L2CAP_STOP_SERVER_LE_EVT */ bta_jv_l2cap_write_fixed, /* BTA_JV_API_L2CAP_WRITE_FIXED_EVT */