Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6459955f authored by Jakub Pawlowski's avatar Jakub Pawlowski
Browse files

Use Bind in BTA_JvL2capConnectLE

Bug: 68359837
Test: compilation test
Change-Id: Iaef4695db6b46af59641d5af508b87f20bcf5232
parent 76401924
Loading
Loading
Loading
Loading
+11 −18
Original line number Diff line number Diff line
@@ -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;
}

+6 −28
Original line number Diff line number Diff line
@@ -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;
}
+5 −3
Original line number Diff line number Diff line
@@ -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);
+0 −1
Original line number Diff line number Diff line
@@ -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 */