Loading system/bta/include/bta_jv_api.h +18 −18 Original line number Diff line number Diff line Loading @@ -187,7 +187,7 @@ typedef struct { typedef struct { tBTA_JV_STATUS status; /* Whether the operation succeeded or failed. */ uint32_t handle; /* The connection handle */ BD_ADDR rem_bda; /* The peer address */ bt_bdaddr_t rem_bda; /* The peer address */ int32_t tx_mtu; /* The transmit MTU */ } tBTA_JV_L2CAP_OPEN; Loading @@ -195,7 +195,7 @@ typedef struct { typedef struct { tBTA_JV_STATUS status; /* Whether the operation succeeded or failed. */ uint32_t handle; /* The connection handle */ BD_ADDR rem_bda; /* The peer address */ bt_bdaddr_t rem_bda; /* The peer address */ int32_t tx_mtu; /* The transmit MTU */ void** p_p_cback; /* set them for new socket */ void** p_user_data; /* set them for new socket */ Loading Loading @@ -254,7 +254,7 @@ typedef struct { typedef struct { tBTA_JV_STATUS status; /* Whether the operation succeeded or failed. */ uint16_t channel; /* The connection channel */ BD_ADDR addr; /* The peer address */ bt_bdaddr_t addr; /* The peer address */ uint32_t req_id; /* The req_id in the associated BTA_JvL2capWrite() */ uint8_t* p_data; /* The buffer where data is held */ uint16_t len; /* The length of the data written. */ Loading @@ -265,14 +265,14 @@ typedef struct { typedef struct { tBTA_JV_STATUS status; /* Whether the operation succeeded or failed. */ uint32_t handle; /* The connection handle */ BD_ADDR rem_bda; /* The peer address */ bt_bdaddr_t rem_bda; /* The peer address */ } tBTA_JV_RFCOMM_OPEN; /* data associated with BTA_JV_RFCOMM_SRV_OPEN_EVT */ typedef struct { tBTA_JV_STATUS status; /* Whether the operation succeeded or failed. */ uint32_t handle; /* The connection handle */ uint32_t new_listen_handle; /* The new listen handle */ BD_ADDR rem_bda; /* The peer address */ bt_bdaddr_t rem_bda; /* The peer address */ } tBTA_JV_RFCOMM_SRV_OPEN; /* data associated with BTA_JV_RFCOMM_CLOSE_EVT */ Loading Loading @@ -423,7 +423,7 @@ void BTA_JvDisable(void); * false if not. * ******************************************************************************/ bool BTA_JvIsEncrypted(BD_ADDR bd_addr); bool BTA_JvIsEncrypted(const bt_bdaddr_t& bd_addr); /******************************************************************************* * Loading Loading @@ -474,8 +474,8 @@ tBTA_JV_STATUS BTA_JvFreeChannel(uint16_t channel, int conn_type); * BTA_JV_FAILURE, otherwise. * ******************************************************************************/ tBTA_JV_STATUS BTA_JvStartDiscovery(BD_ADDR bd_addr, uint16_t num_uuid, tSDP_UUID* p_uuid_list, tBTA_JV_STATUS BTA_JvStartDiscovery(const bt_bdaddr_t& bd_addr, uint16_t num_uuid, tSDP_UUID* p_uuid_list, uint32_t rfcomm_slot_id); /******************************************************************************* Loading Loading @@ -521,7 +521,8 @@ tBTA_JV_STATUS BTA_JvDeleteRecord(uint32_t handle); 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, BD_ADDR peer_bd_addr, tL2CAP_CFG_INFO* cfg, const bt_bdaddr_t& peer_bd_addr, tBTA_JV_L2CAP_CBACK* p_cback, uint32_t l2cap_socket_id); Loading @@ -540,13 +541,11 @@ tBTA_JV_STATUS BTA_JvL2capConnectLE(tBTA_SEC sec_mask, tBTA_JV_ROLE role, * BTA_JV_FAILURE, otherwise. * ******************************************************************************/ tBTA_JV_STATUS BTA_JvL2capConnect(int conn_type, tBTA_SEC sec_mask, tBTA_JV_ROLE role, const tL2CAP_ERTM_INFO* ertm_info, uint16_t remote_psm, uint16_t rx_mtu, tL2CAP_CFG_INFO* cfg, BD_ADDR peer_bd_addr, tBTA_JV_L2CAP_CBACK* p_cback, uint32_t l2cap_socket_id); tBTA_JV_STATUS BTA_JvL2capConnect( int conn_type, tBTA_SEC sec_mask, tBTA_JV_ROLE role, const tL2CAP_ERTM_INFO* ertm_info, uint16_t remote_psm, uint16_t rx_mtu, tL2CAP_CFG_INFO* cfg, const bt_bdaddr_t& peer_bd_addr, tBTA_JV_L2CAP_CBACK* p_cback, uint32_t l2cap_socket_id); /******************************************************************************* * Loading Loading @@ -704,7 +703,7 @@ tBTA_JV_STATUS BTA_JvL2capWrite(uint32_t handle, uint32_t req_id, * BTA_JV_FAILURE, otherwise. * ******************************************************************************/ tBTA_JV_STATUS BTA_JvL2capWriteFixed(uint16_t channel, BD_ADDR* addr, tBTA_JV_STATUS BTA_JvL2capWriteFixed(uint16_t channel, const bt_bdaddr_t& addr, uint32_t req_id, tBTA_JV_L2CAP_CBACK* p_cback, uint8_t* p_data, uint16_t len, Loading @@ -727,7 +726,8 @@ tBTA_JV_STATUS BTA_JvL2capWriteFixed(uint16_t channel, BD_ADDR* addr, * ******************************************************************************/ tBTA_JV_STATUS BTA_JvRfcommConnect(tBTA_SEC sec_mask, tBTA_JV_ROLE role, uint8_t remote_scn, BD_ADDR peer_bd_addr, uint8_t remote_scn, const bt_bdaddr_t& peer_bd_addr, tBTA_JV_RFCOMM_CBACK* p_cback, uint32_t rfcomm_slot_id); Loading system/bta/jv/bta_jv_act.cc +46 −47 Original line number Diff line number Diff line Loading @@ -52,7 +52,7 @@ struct fc_client { struct fc_client* next_all_list; struct fc_client* next_chan_list; BD_ADDR remote_addr; bt_bdaddr_t remote_addr; uint32_t id; tBTA_JV_L2CAP_CBACK* p_cback; uint32_t l2cap_socket_id; Loading Loading @@ -397,11 +397,12 @@ static void bta_jv_clear_pm_cb(tBTA_JV_PM_CB* p_pm_cb, bool close_conn) { /* needs to be called if registered with bta pm, otherwise we may run out of * dm pm slots! */ if (close_conn) bta_sys_conn_close(BTA_ID_JV, p_pm_cb->app_id, p_pm_cb->peer_bd_addr); bta_sys_conn_close(BTA_ID_JV, p_pm_cb->app_id, to_BD_ADDR(p_pm_cb->peer_bd_addr)); p_pm_cb->state = BTA_JV_PM_FREE_ST; p_pm_cb->app_id = BTA_JV_PM_ALL; p_pm_cb->handle = BTA_JV_PM_HANDLE_CLEAR; bdcpy(p_pm_cb->peer_bd_addr, to_BD_ADDR(bd_addr_null)); p_pm_cb->peer_bd_addr = bd_addr_null; } /******************************************************************************* Loading @@ -425,8 +426,7 @@ static tBTA_JV_STATUS bta_jv_free_set_pm_profile_cb(uint32_t jv_handle) { if ((bta_jv_cb.pm_cb[i].state != BTA_JV_PM_FREE_ST) && (jv_handle == bta_jv_cb.pm_cb[i].handle)) { for (j = 0; j < BTA_JV_PM_MAX_NUM; j++) { if (bdcmp(bta_jv_cb.pm_cb[j].peer_bd_addr, bta_jv_cb.pm_cb[i].peer_bd_addr) == 0) if (bta_jv_cb.pm_cb[j].peer_bd_addr == bta_jv_cb.pm_cb[i].peer_bd_addr) bd_counter++; if (bta_jv_cb.pm_cb[j].app_id == bta_jv_cb.pm_cb[i].app_id) appid_counter++; Loading Loading @@ -501,7 +501,7 @@ static tBTA_JV_STATUS bta_jv_free_set_pm_profile_cb(uint32_t jv_handle) { static tBTA_JV_PM_CB* bta_jv_alloc_set_pm_profile_cb(uint32_t jv_handle, tBTA_JV_PM_ID app_id) { bool bRfcHandle = (jv_handle & BTA_JV_RFCOMM_MASK) != 0; BD_ADDR peer_bd_addr; bt_bdaddr_t peer_bd_addr; int i, j; tBTA_JV_PM_CB** pp_cb; Loading @@ -515,7 +515,7 @@ static tBTA_JV_PM_CB* bta_jv_alloc_set_pm_profile_cb(uint32_t jv_handle, pp_cb = &bta_jv_cb.port_cb[j].p_pm_cb; if (PORT_SUCCESS != PORT_CheckConnection(bta_jv_cb.port_cb[j].port_handle, peer_bd_addr, NULL)) to_BD_ADDR(peer_bd_addr), NULL)) i = BTA_JV_PM_MAX_NUM; break; } Loading @@ -527,8 +527,8 @@ static tBTA_JV_PM_CB* bta_jv_alloc_set_pm_profile_cb(uint32_t jv_handle, pp_cb = &bta_jv_cb.l2c_cb[j].p_pm_cb; const bt_bdaddr_t* p_bd_addr = GAP_ConnGetRemoteAddr((uint16_t)jv_handle); if (NULL != p_bd_addr) bdcpy(peer_bd_addr, p_bd_addr->address); if (p_bd_addr) peer_bd_addr = *p_bd_addr; else i = BTA_JV_PM_MAX_NUM; break; Loading @@ -547,7 +547,7 @@ static tBTA_JV_PM_CB* bta_jv_alloc_set_pm_profile_cb(uint32_t jv_handle, *pp_cb = &bta_jv_cb.pm_cb[i]; bta_jv_cb.pm_cb[i].handle = jv_handle; bta_jv_cb.pm_cb[i].app_id = app_id; bdcpy(bta_jv_cb.pm_cb[i].peer_bd_addr, peer_bd_addr); bta_jv_cb.pm_cb[i].peer_bd_addr = peer_bd_addr; bta_jv_cb.pm_cb[i].state = BTA_JV_PM_IDLE_ST; return &bta_jv_cb.pm_cb[i]; } Loading Loading @@ -890,7 +890,7 @@ void bta_jv_start_discovery(tBTA_JV_MSG* p_data) { *rfcomm_slot_id = p_data->start_discovery.rfcomm_slot_id; if (!SDP_ServiceSearchAttributeRequest2( p_data->start_discovery.bd_addr, p_bta_jv_cfg->p_sdp_db, to_BD_ADDR(p_data->start_discovery.bd_addr), p_bta_jv_cfg->p_sdp_db, bta_jv_start_discovery_cback, (void*)rfcomm_slot_id)) { bta_jv_cb.sdp_active = BTA_JV_SDP_ACT_NONE; /* failed to start SDP. report the failure right away */ Loading Loading @@ -962,8 +962,7 @@ static void bta_jv_l2cap_client_cback(uint16_t gap_handle, uint16_t event) { switch (event) { case GAP_EVT_CONN_OPENED: bdcpy(evt_data.l2c_open.rem_bda, GAP_ConnGetRemoteAddr(gap_handle)->address); evt_data.l2c_open.rem_bda = *GAP_ConnGetRemoteAddr(gap_handle); evt_data.l2c_open.tx_mtu = GAP_ConnGetRemMtuSize(gap_handle); p_cb->state = BTA_JV_ST_CL_OPEN; p_cb->p_cback(BTA_JV_L2CAP_OPEN_EVT, &evt_data, p_cb->l2cap_socket_id); Loading Loading @@ -1052,10 +1051,9 @@ void bta_jv_l2cap_connect(tBTA_JV_MSG* p_data) { if ((cc->type != BTA_JV_CONN_TYPE_L2CAP) || (bta_jv_check_psm(cc->remote_psm))) /* allowed */ { handle = GAP_ConnOpen("", sec_id, 0, &from_BD_ADDR(cc->peer_bd_addr), cc->remote_psm, &cfg, ertm_info, cc->sec_mask, chan_mode_mask, bta_jv_l2cap_client_cback, cc->type); handle = GAP_ConnOpen("", sec_id, 0, &cc->peer_bd_addr, cc->remote_psm, &cfg, ertm_info, cc->sec_mask, chan_mode_mask, bta_jv_l2cap_client_cback, cc->type); if (handle != GAP_INVALID_HANDLE) { evt_data.status = BTA_JV_SUCCESS; } Loading Loading @@ -1126,8 +1124,7 @@ static void bta_jv_l2cap_server_cback(uint16_t gap_handle, uint16_t event) { switch (event) { case GAP_EVT_CONN_OPENED: bdcpy(evt_data.l2c_open.rem_bda, GAP_ConnGetRemoteAddr(gap_handle)->address); evt_data.l2c_open.rem_bda = *GAP_ConnGetRemoteAddr(gap_handle); evt_data.l2c_open.tx_mtu = GAP_ConnGetRemMtuSize(gap_handle); p_cb->state = BTA_JV_ST_SR_OPEN; p_cb->p_cback(BTA_JV_L2CAP_OPEN_EVT, &evt_data, p_cb->l2cap_socket_id); Loading Loading @@ -1372,7 +1369,7 @@ void bta_jv_l2cap_write_fixed(tBTA_JV_MSG* p_data) { evt_data.status = BTA_JV_FAILURE; evt_data.channel = ls->channel; memcpy(evt_data.addr, ls->addr, sizeof(evt_data.addr)); evt_data.addr = ls->addr; evt_data.req_id = ls->req_id; evt_data.p_data = ls->p_data; evt_data.len = 0; Loading @@ -1381,7 +1378,7 @@ void bta_jv_l2cap_write_fixed(tBTA_JV_MSG* p_data) { msg->len = ls->len; msg->offset = L2CAP_MIN_OFFSET; L2CA_SendFixedChnlData(ls->channel, from_BD_ADDR(ls->addr), msg); L2CA_SendFixedChnlData(ls->channel, ls->addr, msg); ls->p_cback(BTA_JV_L2CAP_WRITE_FIXED_EVT, (tBTA_JV*)&evt_data, ls->user_id); } Loading Loading @@ -1432,7 +1429,7 @@ static void bta_jv_port_mgmt_cl_cback(uint32_t code, uint16_t port_handle) { tBTA_JV_RFC_CB* p_cb = bta_jv_rfc_port_to_cb(port_handle); tBTA_JV_PCB* p_pcb = bta_jv_rfc_port_to_pcb(port_handle); tBTA_JV evt_data; BD_ADDR rem_bda; bt_bdaddr_t rem_bda; uint16_t lcid; tBTA_JV_RFCOMM_CBACK* p_cback; /* the callback function */ Loading @@ -1443,12 +1440,12 @@ static void bta_jv_port_mgmt_cl_cback(uint32_t code, uint16_t port_handle) { APPL_TRACE_DEBUG("bta_jv_port_mgmt_cl_cback code=%d port_handle:%d handle:%d", code, port_handle, p_cb->handle); PORT_CheckConnection(port_handle, rem_bda, &lcid); PORT_CheckConnection(port_handle, to_BD_ADDR(rem_bda), &lcid); if (code == PORT_SUCCESS) { evt_data.rfc_open.handle = p_cb->handle; evt_data.rfc_open.status = BTA_JV_SUCCESS; bdcpy(evt_data.rfc_open.rem_bda, rem_bda); evt_data.rfc_open.rem_bda = rem_bda; p_pcb->state = BTA_JV_ST_CL_OPEN; p_cb->p_cback(BTA_JV_RFCOMM_OPEN_EVT, &evt_data, p_pcb->rfcomm_slot_id); } else { Loading Loading @@ -1543,7 +1540,8 @@ void bta_jv_rfcomm_connect(tBTA_JV_MSG* p_data) { if (evt_data.status == BTA_JV_SUCCESS && RFCOMM_CreateConnection(UUID_SERVCLASS_SERIAL_PORT, cc->remote_scn, false, BTA_JV_DEF_RFC_MTU, cc->peer_bd_addr, &handle, BTA_JV_DEF_RFC_MTU, to_BD_ADDR(cc->peer_bd_addr), &handle, bta_jv_port_mgmt_cl_cback) != PORT_SUCCESS) { APPL_TRACE_ERROR("bta_jv_rfcomm_connect, RFCOMM_CreateConnection failed"); evt_data.status = BTA_JV_FAILURE; Loading Loading @@ -1644,7 +1642,7 @@ static void bta_jv_port_mgmt_sr_cback(uint32_t code, uint16_t port_handle) { tBTA_JV_PCB* p_pcb = bta_jv_rfc_port_to_pcb(port_handle); tBTA_JV_RFC_CB* p_cb = bta_jv_rfc_port_to_cb(port_handle); tBTA_JV evt_data; BD_ADDR rem_bda; bt_bdaddr_t rem_bda; uint16_t lcid; APPL_TRACE_DEBUG("bta_jv_port_mgmt_sr_cback, code:%d, port_handle:%d", code, port_handle); Loading @@ -1659,12 +1657,12 @@ static void bta_jv_port_mgmt_sr_cback(uint32_t code, uint16_t port_handle) { "p_pcb:%p, user:%d", code, port_handle, p_cb->handle, p_pcb, p_pcb->rfcomm_slot_id); PORT_CheckConnection(port_handle, rem_bda, &lcid); PORT_CheckConnection(port_handle, to_BD_ADDR(rem_bda), &lcid); int failed = true; if (code == PORT_SUCCESS) { evt_data.rfc_srv_open.handle = p_pcb->handle; evt_data.rfc_srv_open.status = BTA_JV_SUCCESS; bdcpy(evt_data.rfc_srv_open.rem_bda, rem_bda); evt_data.rfc_srv_open.rem_bda = rem_bda; tBTA_JV_PCB* p_pcb_new_listen = bta_jv_add_rfc_port(p_cb, p_pcb); if (p_pcb_new_listen) { evt_data.rfc_srv_open.new_listen_handle = p_pcb_new_listen->handle; Loading Loading @@ -2115,37 +2113,41 @@ static void bta_jv_pm_state_change(tBTA_JV_PM_CB* p_cb, switch (state) { case BTA_JV_CONN_OPEN: bta_sys_conn_open(BTA_ID_JV, p_cb->app_id, p_cb->peer_bd_addr); bta_sys_conn_open(BTA_ID_JV, p_cb->app_id, to_BD_ADDR(p_cb->peer_bd_addr)); break; case BTA_JV_CONN_CLOSE: bta_sys_conn_close(BTA_ID_JV, p_cb->app_id, p_cb->peer_bd_addr); bta_sys_conn_close(BTA_ID_JV, p_cb->app_id, to_BD_ADDR(p_cb->peer_bd_addr)); break; case BTA_JV_APP_OPEN: bta_sys_app_open(BTA_ID_JV, p_cb->app_id, p_cb->peer_bd_addr); bta_sys_app_open(BTA_ID_JV, p_cb->app_id, to_BD_ADDR(p_cb->peer_bd_addr)); break; case BTA_JV_APP_CLOSE: bta_sys_app_close(BTA_ID_JV, p_cb->app_id, p_cb->peer_bd_addr); bta_sys_app_close(BTA_ID_JV, p_cb->app_id, to_BD_ADDR(p_cb->peer_bd_addr)); break; case BTA_JV_SCO_OPEN: bta_sys_sco_open(BTA_ID_JV, p_cb->app_id, p_cb->peer_bd_addr); bta_sys_sco_open(BTA_ID_JV, p_cb->app_id, to_BD_ADDR(p_cb->peer_bd_addr)); break; case BTA_JV_SCO_CLOSE: bta_sys_sco_close(BTA_ID_JV, p_cb->app_id, p_cb->peer_bd_addr); bta_sys_sco_close(BTA_ID_JV, p_cb->app_id, to_BD_ADDR(p_cb->peer_bd_addr)); break; case BTA_JV_CONN_IDLE: p_cb->state = BTA_JV_PM_IDLE_ST; bta_sys_idle(BTA_ID_JV, p_cb->app_id, p_cb->peer_bd_addr); bta_sys_idle(BTA_ID_JV, p_cb->app_id, to_BD_ADDR(p_cb->peer_bd_addr)); break; case BTA_JV_CONN_BUSY: p_cb->state = BTA_JV_PM_BUSY_ST; bta_sys_busy(BTA_ID_JV, p_cb->app_id, p_cb->peer_bd_addr); bta_sys_busy(BTA_ID_JV, p_cb->app_id, to_BD_ADDR(p_cb->peer_bd_addr)); break; default: Loading Loading @@ -2197,12 +2199,12 @@ static struct fc_channel* fcchan_get(uint16_t chan, char create) { /* pass NULL to find servers */ static struct fc_client* fcclient_find_by_addr(struct fc_client* start, BD_ADDR addr) { const bt_bdaddr_t* addr) { struct fc_client* t = start; while (t) { /* match client if have addr */ if (addr && !memcmp(addr, &t->remote_addr, sizeof(t->remote_addr))) break; if (addr && addr == &t->remote_addr) break; /* match server if do not have addr */ if (!addr && t->server) break; Loading Loading @@ -2314,7 +2316,7 @@ static void fcchan_conn_chng_cbk(uint16_t chan, const bt_bdaddr_t& bd_addr, if (tc) { t = fcclient_find_by_addr( tc->clients, to_BD_ADDR(bd_addr)); // try to find an open socked for that addr &bd_addr); // try to find an open socked for that addr if (t) { p_cback = t->p_cback; l2cap_socket_id = t->l2cap_socket_id; Loading @@ -2327,8 +2329,7 @@ static void fcchan_conn_chng_cbk(uint16_t chan, const bt_bdaddr_t& bd_addr, // it new_conn = fcclient_alloc(chan, false, &t->sec_id); if (new_conn) { memcpy(&new_conn->remote_addr, to_BD_ADDR(bd_addr), sizeof(new_conn->remote_addr)); new_conn->remote_addr = bd_addr; new_conn->p_cback = NULL; // for now new_conn->init_called = true; /*nop need to do it again */ Loading Loading @@ -2392,10 +2393,8 @@ static void fcchan_data_cbk(uint16_t chan, const bt_bdaddr_t& bd_addr, tc = fcchan_get(chan, false); if (tc) { t = fcclient_find_by_addr( tc->clients, to_BD_ADDR( bd_addr)); // try to find an open socked for that addr and channel // try to find an open socked for that addr and channel t = fcclient_find_by_addr(tc->clients, &bd_addr); if (!t) { // no socket -> drop it return; Loading Loading @@ -2437,11 +2436,11 @@ void bta_jv_l2cap_connect_le(tBTA_JV_MSG* p_data) { t->p_cback = cc->p_cback; t->l2cap_socket_id = cc->l2cap_socket_id; memcpy(&t->remote_addr, &cc->peer_bd_addr, sizeof(t->remote_addr)); t->remote_addr = cc->peer_bd_addr; id = t->id; t->init_called = false; if (L2CA_ConnectFixedChnl(t->chan, from_BD_ADDR(t->remote_addr))) { if (L2CA_ConnectFixedChnl(t->chan, t->remote_addr)) { evt.l2c_cl_init.status = BTA_JV_SUCCESS; evt.l2c_cl_init.handle = id; } Loading system/bta/jv/bta_jv_api.cc +20 −21 Original line number Diff line number Diff line Loading @@ -113,13 +113,12 @@ void BTA_JvDisable(void) { * false if not. * ******************************************************************************/ bool BTA_JvIsEncrypted(BD_ADDR bd_addr) { bool BTA_JvIsEncrypted(const bt_bdaddr_t& bd_addr) { bool is_encrypted = false; uint8_t sec_flags, le_flags; if (BTM_GetSecurityFlags(from_BD_ADDR(bd_addr), &sec_flags) && BTM_GetSecurityFlagsByTransport(from_BD_ADDR(bd_addr), &le_flags, BT_TRANSPORT_LE)) { if (BTM_GetSecurityFlags(bd_addr, &sec_flags) && BTM_GetSecurityFlagsByTransport(bd_addr, &le_flags, BT_TRANSPORT_LE)) { if (sec_flags & BTM_SEC_FLAG_ENCRYPTED || le_flags & BTM_SEC_FLAG_ENCRYPTED) is_encrypted = true; } Loading Loading @@ -214,8 +213,8 @@ tBTA_JV_STATUS BTA_JvFreeChannel(uint16_t channel, int conn_type) { * BTA_JV_FAILURE, otherwise. * ******************************************************************************/ tBTA_JV_STATUS BTA_JvStartDiscovery(BD_ADDR bd_addr, uint16_t num_uuid, tSDP_UUID* p_uuid_list, tBTA_JV_STATUS BTA_JvStartDiscovery(const bt_bdaddr_t& bd_addr, uint16_t num_uuid, tSDP_UUID* p_uuid_list, uint32_t rfcomm_slot_id) { tBTA_JV_API_START_DISCOVERY* p_msg = (tBTA_JV_API_START_DISCOVERY*)osi_malloc( sizeof(tBTA_JV_API_START_DISCOVERY)); Loading @@ -223,7 +222,7 @@ tBTA_JV_STATUS BTA_JvStartDiscovery(BD_ADDR bd_addr, uint16_t num_uuid, APPL_TRACE_API("%s", __func__); p_msg->hdr.event = BTA_JV_API_START_DISCOVERY_EVT; bdcpy(p_msg->bd_addr, bd_addr); p_msg->bd_addr = bd_addr; p_msg->num_uuid = num_uuid; memcpy(p_msg->uuid_list, p_uuid_list, num_uuid * sizeof(tSDP_UUID)); p_msg->num_attr = 0; Loading Loading @@ -302,7 +301,8 @@ tBTA_JV_STATUS BTA_JvDeleteRecord(uint32_t handle) { 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, BD_ADDR peer_bd_addr, tL2CAP_CFG_INFO* cfg, const bt_bdaddr_t& peer_bd_addr, tBTA_JV_L2CAP_CBACK* p_cback, uint32_t l2cap_socket_id) { APPL_TRACE_API("%s", __func__); Loading @@ -328,7 +328,7 @@ tBTA_JV_STATUS BTA_JvL2capConnectLE(tBTA_SEC sec_mask, tBTA_JV_ROLE role, } else { p_msg->has_ertm_info = false; } memcpy(p_msg->peer_bd_addr, peer_bd_addr, sizeof(BD_ADDR)); p_msg->peer_bd_addr = peer_bd_addr; p_msg->p_cback = p_cback; p_msg->l2cap_socket_id = l2cap_socket_id; Loading @@ -352,13 +352,11 @@ tBTA_JV_STATUS BTA_JvL2capConnectLE(tBTA_SEC sec_mask, tBTA_JV_ROLE role, * BTA_JV_FAILURE, otherwise. * ******************************************************************************/ tBTA_JV_STATUS BTA_JvL2capConnect(int conn_type, tBTA_SEC sec_mask, tBTA_JV_ROLE role, const tL2CAP_ERTM_INFO* ertm_info, uint16_t remote_psm, uint16_t rx_mtu, tL2CAP_CFG_INFO* cfg, BD_ADDR peer_bd_addr, tBTA_JV_L2CAP_CBACK* p_cback, uint32_t l2cap_socket_id) { tBTA_JV_STATUS BTA_JvL2capConnect( int conn_type, tBTA_SEC sec_mask, tBTA_JV_ROLE role, const tL2CAP_ERTM_INFO* ertm_info, uint16_t remote_psm, uint16_t rx_mtu, tL2CAP_CFG_INFO* cfg, const bt_bdaddr_t& peer_bd_addr, tBTA_JV_L2CAP_CBACK* p_cback, uint32_t l2cap_socket_id) { APPL_TRACE_API("%s", __func__); if (p_cback == NULL) return BTA_JV_FAILURE; /* Nothing to do */ Loading @@ -383,7 +381,7 @@ tBTA_JV_STATUS BTA_JvL2capConnect(int conn_type, tBTA_SEC sec_mask, } else { p_msg->has_ertm_info = false; } memcpy(p_msg->peer_bd_addr, peer_bd_addr, sizeof(BD_ADDR)); p_msg->peer_bd_addr = peer_bd_addr; p_msg->p_cback = p_cback; p_msg->l2cap_socket_id = l2cap_socket_id; Loading Loading @@ -722,7 +720,7 @@ tBTA_JV_STATUS BTA_JvL2capWrite(uint32_t handle, uint32_t req_id, * BTA_JV_FAILURE, otherwise. * ******************************************************************************/ tBTA_JV_STATUS BTA_JvL2capWriteFixed(uint16_t channel, BD_ADDR* addr, tBTA_JV_STATUS BTA_JvL2capWriteFixed(uint16_t channel, const bt_bdaddr_t& addr, uint32_t req_id, tBTA_JV_L2CAP_CBACK* p_cback, uint8_t* p_data, uint16_t len, Loading @@ -735,7 +733,7 @@ tBTA_JV_STATUS BTA_JvL2capWriteFixed(uint16_t channel, BD_ADDR* addr, p_msg->hdr.event = BTA_JV_API_L2CAP_WRITE_FIXED_EVT; p_msg->channel = channel; memcpy(p_msg->addr, addr, sizeof(p_msg->addr)); p_msg->addr = addr; p_msg->req_id = req_id; p_msg->p_data = p_data; p_msg->p_cback = p_cback; Loading Loading @@ -764,7 +762,8 @@ tBTA_JV_STATUS BTA_JvL2capWriteFixed(uint16_t channel, BD_ADDR* addr, * ******************************************************************************/ tBTA_JV_STATUS BTA_JvRfcommConnect(tBTA_SEC sec_mask, tBTA_JV_ROLE role, uint8_t remote_scn, BD_ADDR peer_bd_addr, uint8_t remote_scn, const bt_bdaddr_t& peer_bd_addr, tBTA_JV_RFCOMM_CBACK* p_cback, uint32_t rfcomm_slot_id) { APPL_TRACE_API("%s", __func__); Loading @@ -777,7 +776,7 @@ tBTA_JV_STATUS BTA_JvRfcommConnect(tBTA_SEC sec_mask, tBTA_JV_ROLE role, p_msg->sec_mask = sec_mask; p_msg->role = role; p_msg->remote_scn = remote_scn; memcpy(p_msg->peer_bd_addr, peer_bd_addr, sizeof(BD_ADDR)); p_msg->peer_bd_addr = peer_bd_addr; p_msg->p_cback = p_cback; p_msg->rfcomm_slot_id = rfcomm_slot_id; Loading system/bta/jv/bta_jv_int.h +5 −5 Original line number Diff line number Diff line Loading @@ -78,7 +78,7 @@ typedef struct { /* data type for BTA_JV_API_START_DISCOVERY_EVT */ typedef struct { BT_HDR hdr; BD_ADDR bd_addr; bt_bdaddr_t bd_addr; uint16_t num_uuid; tSDP_UUID uuid_list[BTA_JV_MAX_UUIDS]; uint16_t num_attr; Loading @@ -97,7 +97,7 @@ typedef struct { uint32_t handle; /* The connection handle */ uint8_t state; /* state: see above enum */ tBTA_JV_PM_ID app_id; /* JV app specific id indicating power table to use */ BD_ADDR peer_bd_addr; /* Peer BD address */ bt_bdaddr_t peer_bd_addr; /* Peer BD address */ } tBTA_JV_PM_CB; enum { Loading Loading @@ -163,7 +163,7 @@ typedef struct { uint16_t remote_chan; }; uint16_t rx_mtu; BD_ADDR peer_bd_addr; bt_bdaddr_t peer_bd_addr; int32_t has_cfg; tL2CAP_CFG_INFO cfg; int32_t has_ertm_info; Loading Loading @@ -224,7 +224,7 @@ typedef struct { typedef struct { BT_HDR hdr; uint16_t channel; BD_ADDR addr; bt_bdaddr_t addr; uint32_t req_id; tBTA_JV_L2CAP_CBACK* p_cback; uint8_t* p_data; Loading @@ -238,7 +238,7 @@ typedef struct { tBTA_SEC sec_mask; tBTA_JV_ROLE role; uint8_t remote_scn; BD_ADDR peer_bd_addr; bt_bdaddr_t peer_bd_addr; tBTA_JV_RFCOMM_CBACK* p_cback; uint32_t rfcomm_slot_id; } tBTA_JV_API_RFCOMM_CONNECT; Loading system/btif/src/btif_gatt_util.cc +1 −1 Original line number Diff line number Diff line Loading @@ -213,7 +213,7 @@ uint16_t set_read_value(btgatt_read_params_t* p_dest, tBTA_GATTC_READ* p_src) { #if (BLE_DELAY_REQUEST_ENC == FALSE) static bool btif_gatt_is_link_encrypted(const bt_bdaddr_t& bd_addr) { return BTA_JvIsEncrypted(to_BD_ADDR(bd_addr)); return BTA_JvIsEncrypted(bd_addr); } static void btif_gatt_set_encryption_cb(UNUSED_ATTR const bt_bdaddr_t& bd_addr, Loading Loading
system/bta/include/bta_jv_api.h +18 −18 Original line number Diff line number Diff line Loading @@ -187,7 +187,7 @@ typedef struct { typedef struct { tBTA_JV_STATUS status; /* Whether the operation succeeded or failed. */ uint32_t handle; /* The connection handle */ BD_ADDR rem_bda; /* The peer address */ bt_bdaddr_t rem_bda; /* The peer address */ int32_t tx_mtu; /* The transmit MTU */ } tBTA_JV_L2CAP_OPEN; Loading @@ -195,7 +195,7 @@ typedef struct { typedef struct { tBTA_JV_STATUS status; /* Whether the operation succeeded or failed. */ uint32_t handle; /* The connection handle */ BD_ADDR rem_bda; /* The peer address */ bt_bdaddr_t rem_bda; /* The peer address */ int32_t tx_mtu; /* The transmit MTU */ void** p_p_cback; /* set them for new socket */ void** p_user_data; /* set them for new socket */ Loading Loading @@ -254,7 +254,7 @@ typedef struct { typedef struct { tBTA_JV_STATUS status; /* Whether the operation succeeded or failed. */ uint16_t channel; /* The connection channel */ BD_ADDR addr; /* The peer address */ bt_bdaddr_t addr; /* The peer address */ uint32_t req_id; /* The req_id in the associated BTA_JvL2capWrite() */ uint8_t* p_data; /* The buffer where data is held */ uint16_t len; /* The length of the data written. */ Loading @@ -265,14 +265,14 @@ typedef struct { typedef struct { tBTA_JV_STATUS status; /* Whether the operation succeeded or failed. */ uint32_t handle; /* The connection handle */ BD_ADDR rem_bda; /* The peer address */ bt_bdaddr_t rem_bda; /* The peer address */ } tBTA_JV_RFCOMM_OPEN; /* data associated with BTA_JV_RFCOMM_SRV_OPEN_EVT */ typedef struct { tBTA_JV_STATUS status; /* Whether the operation succeeded or failed. */ uint32_t handle; /* The connection handle */ uint32_t new_listen_handle; /* The new listen handle */ BD_ADDR rem_bda; /* The peer address */ bt_bdaddr_t rem_bda; /* The peer address */ } tBTA_JV_RFCOMM_SRV_OPEN; /* data associated with BTA_JV_RFCOMM_CLOSE_EVT */ Loading Loading @@ -423,7 +423,7 @@ void BTA_JvDisable(void); * false if not. * ******************************************************************************/ bool BTA_JvIsEncrypted(BD_ADDR bd_addr); bool BTA_JvIsEncrypted(const bt_bdaddr_t& bd_addr); /******************************************************************************* * Loading Loading @@ -474,8 +474,8 @@ tBTA_JV_STATUS BTA_JvFreeChannel(uint16_t channel, int conn_type); * BTA_JV_FAILURE, otherwise. * ******************************************************************************/ tBTA_JV_STATUS BTA_JvStartDiscovery(BD_ADDR bd_addr, uint16_t num_uuid, tSDP_UUID* p_uuid_list, tBTA_JV_STATUS BTA_JvStartDiscovery(const bt_bdaddr_t& bd_addr, uint16_t num_uuid, tSDP_UUID* p_uuid_list, uint32_t rfcomm_slot_id); /******************************************************************************* Loading Loading @@ -521,7 +521,8 @@ tBTA_JV_STATUS BTA_JvDeleteRecord(uint32_t handle); 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, BD_ADDR peer_bd_addr, tL2CAP_CFG_INFO* cfg, const bt_bdaddr_t& peer_bd_addr, tBTA_JV_L2CAP_CBACK* p_cback, uint32_t l2cap_socket_id); Loading @@ -540,13 +541,11 @@ tBTA_JV_STATUS BTA_JvL2capConnectLE(tBTA_SEC sec_mask, tBTA_JV_ROLE role, * BTA_JV_FAILURE, otherwise. * ******************************************************************************/ tBTA_JV_STATUS BTA_JvL2capConnect(int conn_type, tBTA_SEC sec_mask, tBTA_JV_ROLE role, const tL2CAP_ERTM_INFO* ertm_info, uint16_t remote_psm, uint16_t rx_mtu, tL2CAP_CFG_INFO* cfg, BD_ADDR peer_bd_addr, tBTA_JV_L2CAP_CBACK* p_cback, uint32_t l2cap_socket_id); tBTA_JV_STATUS BTA_JvL2capConnect( int conn_type, tBTA_SEC sec_mask, tBTA_JV_ROLE role, const tL2CAP_ERTM_INFO* ertm_info, uint16_t remote_psm, uint16_t rx_mtu, tL2CAP_CFG_INFO* cfg, const bt_bdaddr_t& peer_bd_addr, tBTA_JV_L2CAP_CBACK* p_cback, uint32_t l2cap_socket_id); /******************************************************************************* * Loading Loading @@ -704,7 +703,7 @@ tBTA_JV_STATUS BTA_JvL2capWrite(uint32_t handle, uint32_t req_id, * BTA_JV_FAILURE, otherwise. * ******************************************************************************/ tBTA_JV_STATUS BTA_JvL2capWriteFixed(uint16_t channel, BD_ADDR* addr, tBTA_JV_STATUS BTA_JvL2capWriteFixed(uint16_t channel, const bt_bdaddr_t& addr, uint32_t req_id, tBTA_JV_L2CAP_CBACK* p_cback, uint8_t* p_data, uint16_t len, Loading @@ -727,7 +726,8 @@ tBTA_JV_STATUS BTA_JvL2capWriteFixed(uint16_t channel, BD_ADDR* addr, * ******************************************************************************/ tBTA_JV_STATUS BTA_JvRfcommConnect(tBTA_SEC sec_mask, tBTA_JV_ROLE role, uint8_t remote_scn, BD_ADDR peer_bd_addr, uint8_t remote_scn, const bt_bdaddr_t& peer_bd_addr, tBTA_JV_RFCOMM_CBACK* p_cback, uint32_t rfcomm_slot_id); Loading
system/bta/jv/bta_jv_act.cc +46 −47 Original line number Diff line number Diff line Loading @@ -52,7 +52,7 @@ struct fc_client { struct fc_client* next_all_list; struct fc_client* next_chan_list; BD_ADDR remote_addr; bt_bdaddr_t remote_addr; uint32_t id; tBTA_JV_L2CAP_CBACK* p_cback; uint32_t l2cap_socket_id; Loading Loading @@ -397,11 +397,12 @@ static void bta_jv_clear_pm_cb(tBTA_JV_PM_CB* p_pm_cb, bool close_conn) { /* needs to be called if registered with bta pm, otherwise we may run out of * dm pm slots! */ if (close_conn) bta_sys_conn_close(BTA_ID_JV, p_pm_cb->app_id, p_pm_cb->peer_bd_addr); bta_sys_conn_close(BTA_ID_JV, p_pm_cb->app_id, to_BD_ADDR(p_pm_cb->peer_bd_addr)); p_pm_cb->state = BTA_JV_PM_FREE_ST; p_pm_cb->app_id = BTA_JV_PM_ALL; p_pm_cb->handle = BTA_JV_PM_HANDLE_CLEAR; bdcpy(p_pm_cb->peer_bd_addr, to_BD_ADDR(bd_addr_null)); p_pm_cb->peer_bd_addr = bd_addr_null; } /******************************************************************************* Loading @@ -425,8 +426,7 @@ static tBTA_JV_STATUS bta_jv_free_set_pm_profile_cb(uint32_t jv_handle) { if ((bta_jv_cb.pm_cb[i].state != BTA_JV_PM_FREE_ST) && (jv_handle == bta_jv_cb.pm_cb[i].handle)) { for (j = 0; j < BTA_JV_PM_MAX_NUM; j++) { if (bdcmp(bta_jv_cb.pm_cb[j].peer_bd_addr, bta_jv_cb.pm_cb[i].peer_bd_addr) == 0) if (bta_jv_cb.pm_cb[j].peer_bd_addr == bta_jv_cb.pm_cb[i].peer_bd_addr) bd_counter++; if (bta_jv_cb.pm_cb[j].app_id == bta_jv_cb.pm_cb[i].app_id) appid_counter++; Loading Loading @@ -501,7 +501,7 @@ static tBTA_JV_STATUS bta_jv_free_set_pm_profile_cb(uint32_t jv_handle) { static tBTA_JV_PM_CB* bta_jv_alloc_set_pm_profile_cb(uint32_t jv_handle, tBTA_JV_PM_ID app_id) { bool bRfcHandle = (jv_handle & BTA_JV_RFCOMM_MASK) != 0; BD_ADDR peer_bd_addr; bt_bdaddr_t peer_bd_addr; int i, j; tBTA_JV_PM_CB** pp_cb; Loading @@ -515,7 +515,7 @@ static tBTA_JV_PM_CB* bta_jv_alloc_set_pm_profile_cb(uint32_t jv_handle, pp_cb = &bta_jv_cb.port_cb[j].p_pm_cb; if (PORT_SUCCESS != PORT_CheckConnection(bta_jv_cb.port_cb[j].port_handle, peer_bd_addr, NULL)) to_BD_ADDR(peer_bd_addr), NULL)) i = BTA_JV_PM_MAX_NUM; break; } Loading @@ -527,8 +527,8 @@ static tBTA_JV_PM_CB* bta_jv_alloc_set_pm_profile_cb(uint32_t jv_handle, pp_cb = &bta_jv_cb.l2c_cb[j].p_pm_cb; const bt_bdaddr_t* p_bd_addr = GAP_ConnGetRemoteAddr((uint16_t)jv_handle); if (NULL != p_bd_addr) bdcpy(peer_bd_addr, p_bd_addr->address); if (p_bd_addr) peer_bd_addr = *p_bd_addr; else i = BTA_JV_PM_MAX_NUM; break; Loading @@ -547,7 +547,7 @@ static tBTA_JV_PM_CB* bta_jv_alloc_set_pm_profile_cb(uint32_t jv_handle, *pp_cb = &bta_jv_cb.pm_cb[i]; bta_jv_cb.pm_cb[i].handle = jv_handle; bta_jv_cb.pm_cb[i].app_id = app_id; bdcpy(bta_jv_cb.pm_cb[i].peer_bd_addr, peer_bd_addr); bta_jv_cb.pm_cb[i].peer_bd_addr = peer_bd_addr; bta_jv_cb.pm_cb[i].state = BTA_JV_PM_IDLE_ST; return &bta_jv_cb.pm_cb[i]; } Loading Loading @@ -890,7 +890,7 @@ void bta_jv_start_discovery(tBTA_JV_MSG* p_data) { *rfcomm_slot_id = p_data->start_discovery.rfcomm_slot_id; if (!SDP_ServiceSearchAttributeRequest2( p_data->start_discovery.bd_addr, p_bta_jv_cfg->p_sdp_db, to_BD_ADDR(p_data->start_discovery.bd_addr), p_bta_jv_cfg->p_sdp_db, bta_jv_start_discovery_cback, (void*)rfcomm_slot_id)) { bta_jv_cb.sdp_active = BTA_JV_SDP_ACT_NONE; /* failed to start SDP. report the failure right away */ Loading Loading @@ -962,8 +962,7 @@ static void bta_jv_l2cap_client_cback(uint16_t gap_handle, uint16_t event) { switch (event) { case GAP_EVT_CONN_OPENED: bdcpy(evt_data.l2c_open.rem_bda, GAP_ConnGetRemoteAddr(gap_handle)->address); evt_data.l2c_open.rem_bda = *GAP_ConnGetRemoteAddr(gap_handle); evt_data.l2c_open.tx_mtu = GAP_ConnGetRemMtuSize(gap_handle); p_cb->state = BTA_JV_ST_CL_OPEN; p_cb->p_cback(BTA_JV_L2CAP_OPEN_EVT, &evt_data, p_cb->l2cap_socket_id); Loading Loading @@ -1052,10 +1051,9 @@ void bta_jv_l2cap_connect(tBTA_JV_MSG* p_data) { if ((cc->type != BTA_JV_CONN_TYPE_L2CAP) || (bta_jv_check_psm(cc->remote_psm))) /* allowed */ { handle = GAP_ConnOpen("", sec_id, 0, &from_BD_ADDR(cc->peer_bd_addr), cc->remote_psm, &cfg, ertm_info, cc->sec_mask, chan_mode_mask, bta_jv_l2cap_client_cback, cc->type); handle = GAP_ConnOpen("", sec_id, 0, &cc->peer_bd_addr, cc->remote_psm, &cfg, ertm_info, cc->sec_mask, chan_mode_mask, bta_jv_l2cap_client_cback, cc->type); if (handle != GAP_INVALID_HANDLE) { evt_data.status = BTA_JV_SUCCESS; } Loading Loading @@ -1126,8 +1124,7 @@ static void bta_jv_l2cap_server_cback(uint16_t gap_handle, uint16_t event) { switch (event) { case GAP_EVT_CONN_OPENED: bdcpy(evt_data.l2c_open.rem_bda, GAP_ConnGetRemoteAddr(gap_handle)->address); evt_data.l2c_open.rem_bda = *GAP_ConnGetRemoteAddr(gap_handle); evt_data.l2c_open.tx_mtu = GAP_ConnGetRemMtuSize(gap_handle); p_cb->state = BTA_JV_ST_SR_OPEN; p_cb->p_cback(BTA_JV_L2CAP_OPEN_EVT, &evt_data, p_cb->l2cap_socket_id); Loading Loading @@ -1372,7 +1369,7 @@ void bta_jv_l2cap_write_fixed(tBTA_JV_MSG* p_data) { evt_data.status = BTA_JV_FAILURE; evt_data.channel = ls->channel; memcpy(evt_data.addr, ls->addr, sizeof(evt_data.addr)); evt_data.addr = ls->addr; evt_data.req_id = ls->req_id; evt_data.p_data = ls->p_data; evt_data.len = 0; Loading @@ -1381,7 +1378,7 @@ void bta_jv_l2cap_write_fixed(tBTA_JV_MSG* p_data) { msg->len = ls->len; msg->offset = L2CAP_MIN_OFFSET; L2CA_SendFixedChnlData(ls->channel, from_BD_ADDR(ls->addr), msg); L2CA_SendFixedChnlData(ls->channel, ls->addr, msg); ls->p_cback(BTA_JV_L2CAP_WRITE_FIXED_EVT, (tBTA_JV*)&evt_data, ls->user_id); } Loading Loading @@ -1432,7 +1429,7 @@ static void bta_jv_port_mgmt_cl_cback(uint32_t code, uint16_t port_handle) { tBTA_JV_RFC_CB* p_cb = bta_jv_rfc_port_to_cb(port_handle); tBTA_JV_PCB* p_pcb = bta_jv_rfc_port_to_pcb(port_handle); tBTA_JV evt_data; BD_ADDR rem_bda; bt_bdaddr_t rem_bda; uint16_t lcid; tBTA_JV_RFCOMM_CBACK* p_cback; /* the callback function */ Loading @@ -1443,12 +1440,12 @@ static void bta_jv_port_mgmt_cl_cback(uint32_t code, uint16_t port_handle) { APPL_TRACE_DEBUG("bta_jv_port_mgmt_cl_cback code=%d port_handle:%d handle:%d", code, port_handle, p_cb->handle); PORT_CheckConnection(port_handle, rem_bda, &lcid); PORT_CheckConnection(port_handle, to_BD_ADDR(rem_bda), &lcid); if (code == PORT_SUCCESS) { evt_data.rfc_open.handle = p_cb->handle; evt_data.rfc_open.status = BTA_JV_SUCCESS; bdcpy(evt_data.rfc_open.rem_bda, rem_bda); evt_data.rfc_open.rem_bda = rem_bda; p_pcb->state = BTA_JV_ST_CL_OPEN; p_cb->p_cback(BTA_JV_RFCOMM_OPEN_EVT, &evt_data, p_pcb->rfcomm_slot_id); } else { Loading Loading @@ -1543,7 +1540,8 @@ void bta_jv_rfcomm_connect(tBTA_JV_MSG* p_data) { if (evt_data.status == BTA_JV_SUCCESS && RFCOMM_CreateConnection(UUID_SERVCLASS_SERIAL_PORT, cc->remote_scn, false, BTA_JV_DEF_RFC_MTU, cc->peer_bd_addr, &handle, BTA_JV_DEF_RFC_MTU, to_BD_ADDR(cc->peer_bd_addr), &handle, bta_jv_port_mgmt_cl_cback) != PORT_SUCCESS) { APPL_TRACE_ERROR("bta_jv_rfcomm_connect, RFCOMM_CreateConnection failed"); evt_data.status = BTA_JV_FAILURE; Loading Loading @@ -1644,7 +1642,7 @@ static void bta_jv_port_mgmt_sr_cback(uint32_t code, uint16_t port_handle) { tBTA_JV_PCB* p_pcb = bta_jv_rfc_port_to_pcb(port_handle); tBTA_JV_RFC_CB* p_cb = bta_jv_rfc_port_to_cb(port_handle); tBTA_JV evt_data; BD_ADDR rem_bda; bt_bdaddr_t rem_bda; uint16_t lcid; APPL_TRACE_DEBUG("bta_jv_port_mgmt_sr_cback, code:%d, port_handle:%d", code, port_handle); Loading @@ -1659,12 +1657,12 @@ static void bta_jv_port_mgmt_sr_cback(uint32_t code, uint16_t port_handle) { "p_pcb:%p, user:%d", code, port_handle, p_cb->handle, p_pcb, p_pcb->rfcomm_slot_id); PORT_CheckConnection(port_handle, rem_bda, &lcid); PORT_CheckConnection(port_handle, to_BD_ADDR(rem_bda), &lcid); int failed = true; if (code == PORT_SUCCESS) { evt_data.rfc_srv_open.handle = p_pcb->handle; evt_data.rfc_srv_open.status = BTA_JV_SUCCESS; bdcpy(evt_data.rfc_srv_open.rem_bda, rem_bda); evt_data.rfc_srv_open.rem_bda = rem_bda; tBTA_JV_PCB* p_pcb_new_listen = bta_jv_add_rfc_port(p_cb, p_pcb); if (p_pcb_new_listen) { evt_data.rfc_srv_open.new_listen_handle = p_pcb_new_listen->handle; Loading Loading @@ -2115,37 +2113,41 @@ static void bta_jv_pm_state_change(tBTA_JV_PM_CB* p_cb, switch (state) { case BTA_JV_CONN_OPEN: bta_sys_conn_open(BTA_ID_JV, p_cb->app_id, p_cb->peer_bd_addr); bta_sys_conn_open(BTA_ID_JV, p_cb->app_id, to_BD_ADDR(p_cb->peer_bd_addr)); break; case BTA_JV_CONN_CLOSE: bta_sys_conn_close(BTA_ID_JV, p_cb->app_id, p_cb->peer_bd_addr); bta_sys_conn_close(BTA_ID_JV, p_cb->app_id, to_BD_ADDR(p_cb->peer_bd_addr)); break; case BTA_JV_APP_OPEN: bta_sys_app_open(BTA_ID_JV, p_cb->app_id, p_cb->peer_bd_addr); bta_sys_app_open(BTA_ID_JV, p_cb->app_id, to_BD_ADDR(p_cb->peer_bd_addr)); break; case BTA_JV_APP_CLOSE: bta_sys_app_close(BTA_ID_JV, p_cb->app_id, p_cb->peer_bd_addr); bta_sys_app_close(BTA_ID_JV, p_cb->app_id, to_BD_ADDR(p_cb->peer_bd_addr)); break; case BTA_JV_SCO_OPEN: bta_sys_sco_open(BTA_ID_JV, p_cb->app_id, p_cb->peer_bd_addr); bta_sys_sco_open(BTA_ID_JV, p_cb->app_id, to_BD_ADDR(p_cb->peer_bd_addr)); break; case BTA_JV_SCO_CLOSE: bta_sys_sco_close(BTA_ID_JV, p_cb->app_id, p_cb->peer_bd_addr); bta_sys_sco_close(BTA_ID_JV, p_cb->app_id, to_BD_ADDR(p_cb->peer_bd_addr)); break; case BTA_JV_CONN_IDLE: p_cb->state = BTA_JV_PM_IDLE_ST; bta_sys_idle(BTA_ID_JV, p_cb->app_id, p_cb->peer_bd_addr); bta_sys_idle(BTA_ID_JV, p_cb->app_id, to_BD_ADDR(p_cb->peer_bd_addr)); break; case BTA_JV_CONN_BUSY: p_cb->state = BTA_JV_PM_BUSY_ST; bta_sys_busy(BTA_ID_JV, p_cb->app_id, p_cb->peer_bd_addr); bta_sys_busy(BTA_ID_JV, p_cb->app_id, to_BD_ADDR(p_cb->peer_bd_addr)); break; default: Loading Loading @@ -2197,12 +2199,12 @@ static struct fc_channel* fcchan_get(uint16_t chan, char create) { /* pass NULL to find servers */ static struct fc_client* fcclient_find_by_addr(struct fc_client* start, BD_ADDR addr) { const bt_bdaddr_t* addr) { struct fc_client* t = start; while (t) { /* match client if have addr */ if (addr && !memcmp(addr, &t->remote_addr, sizeof(t->remote_addr))) break; if (addr && addr == &t->remote_addr) break; /* match server if do not have addr */ if (!addr && t->server) break; Loading Loading @@ -2314,7 +2316,7 @@ static void fcchan_conn_chng_cbk(uint16_t chan, const bt_bdaddr_t& bd_addr, if (tc) { t = fcclient_find_by_addr( tc->clients, to_BD_ADDR(bd_addr)); // try to find an open socked for that addr &bd_addr); // try to find an open socked for that addr if (t) { p_cback = t->p_cback; l2cap_socket_id = t->l2cap_socket_id; Loading @@ -2327,8 +2329,7 @@ static void fcchan_conn_chng_cbk(uint16_t chan, const bt_bdaddr_t& bd_addr, // it new_conn = fcclient_alloc(chan, false, &t->sec_id); if (new_conn) { memcpy(&new_conn->remote_addr, to_BD_ADDR(bd_addr), sizeof(new_conn->remote_addr)); new_conn->remote_addr = bd_addr; new_conn->p_cback = NULL; // for now new_conn->init_called = true; /*nop need to do it again */ Loading Loading @@ -2392,10 +2393,8 @@ static void fcchan_data_cbk(uint16_t chan, const bt_bdaddr_t& bd_addr, tc = fcchan_get(chan, false); if (tc) { t = fcclient_find_by_addr( tc->clients, to_BD_ADDR( bd_addr)); // try to find an open socked for that addr and channel // try to find an open socked for that addr and channel t = fcclient_find_by_addr(tc->clients, &bd_addr); if (!t) { // no socket -> drop it return; Loading Loading @@ -2437,11 +2436,11 @@ void bta_jv_l2cap_connect_le(tBTA_JV_MSG* p_data) { t->p_cback = cc->p_cback; t->l2cap_socket_id = cc->l2cap_socket_id; memcpy(&t->remote_addr, &cc->peer_bd_addr, sizeof(t->remote_addr)); t->remote_addr = cc->peer_bd_addr; id = t->id; t->init_called = false; if (L2CA_ConnectFixedChnl(t->chan, from_BD_ADDR(t->remote_addr))) { if (L2CA_ConnectFixedChnl(t->chan, t->remote_addr)) { evt.l2c_cl_init.status = BTA_JV_SUCCESS; evt.l2c_cl_init.handle = id; } Loading
system/bta/jv/bta_jv_api.cc +20 −21 Original line number Diff line number Diff line Loading @@ -113,13 +113,12 @@ void BTA_JvDisable(void) { * false if not. * ******************************************************************************/ bool BTA_JvIsEncrypted(BD_ADDR bd_addr) { bool BTA_JvIsEncrypted(const bt_bdaddr_t& bd_addr) { bool is_encrypted = false; uint8_t sec_flags, le_flags; if (BTM_GetSecurityFlags(from_BD_ADDR(bd_addr), &sec_flags) && BTM_GetSecurityFlagsByTransport(from_BD_ADDR(bd_addr), &le_flags, BT_TRANSPORT_LE)) { if (BTM_GetSecurityFlags(bd_addr, &sec_flags) && BTM_GetSecurityFlagsByTransport(bd_addr, &le_flags, BT_TRANSPORT_LE)) { if (sec_flags & BTM_SEC_FLAG_ENCRYPTED || le_flags & BTM_SEC_FLAG_ENCRYPTED) is_encrypted = true; } Loading Loading @@ -214,8 +213,8 @@ tBTA_JV_STATUS BTA_JvFreeChannel(uint16_t channel, int conn_type) { * BTA_JV_FAILURE, otherwise. * ******************************************************************************/ tBTA_JV_STATUS BTA_JvStartDiscovery(BD_ADDR bd_addr, uint16_t num_uuid, tSDP_UUID* p_uuid_list, tBTA_JV_STATUS BTA_JvStartDiscovery(const bt_bdaddr_t& bd_addr, uint16_t num_uuid, tSDP_UUID* p_uuid_list, uint32_t rfcomm_slot_id) { tBTA_JV_API_START_DISCOVERY* p_msg = (tBTA_JV_API_START_DISCOVERY*)osi_malloc( sizeof(tBTA_JV_API_START_DISCOVERY)); Loading @@ -223,7 +222,7 @@ tBTA_JV_STATUS BTA_JvStartDiscovery(BD_ADDR bd_addr, uint16_t num_uuid, APPL_TRACE_API("%s", __func__); p_msg->hdr.event = BTA_JV_API_START_DISCOVERY_EVT; bdcpy(p_msg->bd_addr, bd_addr); p_msg->bd_addr = bd_addr; p_msg->num_uuid = num_uuid; memcpy(p_msg->uuid_list, p_uuid_list, num_uuid * sizeof(tSDP_UUID)); p_msg->num_attr = 0; Loading Loading @@ -302,7 +301,8 @@ tBTA_JV_STATUS BTA_JvDeleteRecord(uint32_t handle) { 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, BD_ADDR peer_bd_addr, tL2CAP_CFG_INFO* cfg, const bt_bdaddr_t& peer_bd_addr, tBTA_JV_L2CAP_CBACK* p_cback, uint32_t l2cap_socket_id) { APPL_TRACE_API("%s", __func__); Loading @@ -328,7 +328,7 @@ tBTA_JV_STATUS BTA_JvL2capConnectLE(tBTA_SEC sec_mask, tBTA_JV_ROLE role, } else { p_msg->has_ertm_info = false; } memcpy(p_msg->peer_bd_addr, peer_bd_addr, sizeof(BD_ADDR)); p_msg->peer_bd_addr = peer_bd_addr; p_msg->p_cback = p_cback; p_msg->l2cap_socket_id = l2cap_socket_id; Loading @@ -352,13 +352,11 @@ tBTA_JV_STATUS BTA_JvL2capConnectLE(tBTA_SEC sec_mask, tBTA_JV_ROLE role, * BTA_JV_FAILURE, otherwise. * ******************************************************************************/ tBTA_JV_STATUS BTA_JvL2capConnect(int conn_type, tBTA_SEC sec_mask, tBTA_JV_ROLE role, const tL2CAP_ERTM_INFO* ertm_info, uint16_t remote_psm, uint16_t rx_mtu, tL2CAP_CFG_INFO* cfg, BD_ADDR peer_bd_addr, tBTA_JV_L2CAP_CBACK* p_cback, uint32_t l2cap_socket_id) { tBTA_JV_STATUS BTA_JvL2capConnect( int conn_type, tBTA_SEC sec_mask, tBTA_JV_ROLE role, const tL2CAP_ERTM_INFO* ertm_info, uint16_t remote_psm, uint16_t rx_mtu, tL2CAP_CFG_INFO* cfg, const bt_bdaddr_t& peer_bd_addr, tBTA_JV_L2CAP_CBACK* p_cback, uint32_t l2cap_socket_id) { APPL_TRACE_API("%s", __func__); if (p_cback == NULL) return BTA_JV_FAILURE; /* Nothing to do */ Loading @@ -383,7 +381,7 @@ tBTA_JV_STATUS BTA_JvL2capConnect(int conn_type, tBTA_SEC sec_mask, } else { p_msg->has_ertm_info = false; } memcpy(p_msg->peer_bd_addr, peer_bd_addr, sizeof(BD_ADDR)); p_msg->peer_bd_addr = peer_bd_addr; p_msg->p_cback = p_cback; p_msg->l2cap_socket_id = l2cap_socket_id; Loading Loading @@ -722,7 +720,7 @@ tBTA_JV_STATUS BTA_JvL2capWrite(uint32_t handle, uint32_t req_id, * BTA_JV_FAILURE, otherwise. * ******************************************************************************/ tBTA_JV_STATUS BTA_JvL2capWriteFixed(uint16_t channel, BD_ADDR* addr, tBTA_JV_STATUS BTA_JvL2capWriteFixed(uint16_t channel, const bt_bdaddr_t& addr, uint32_t req_id, tBTA_JV_L2CAP_CBACK* p_cback, uint8_t* p_data, uint16_t len, Loading @@ -735,7 +733,7 @@ tBTA_JV_STATUS BTA_JvL2capWriteFixed(uint16_t channel, BD_ADDR* addr, p_msg->hdr.event = BTA_JV_API_L2CAP_WRITE_FIXED_EVT; p_msg->channel = channel; memcpy(p_msg->addr, addr, sizeof(p_msg->addr)); p_msg->addr = addr; p_msg->req_id = req_id; p_msg->p_data = p_data; p_msg->p_cback = p_cback; Loading Loading @@ -764,7 +762,8 @@ tBTA_JV_STATUS BTA_JvL2capWriteFixed(uint16_t channel, BD_ADDR* addr, * ******************************************************************************/ tBTA_JV_STATUS BTA_JvRfcommConnect(tBTA_SEC sec_mask, tBTA_JV_ROLE role, uint8_t remote_scn, BD_ADDR peer_bd_addr, uint8_t remote_scn, const bt_bdaddr_t& peer_bd_addr, tBTA_JV_RFCOMM_CBACK* p_cback, uint32_t rfcomm_slot_id) { APPL_TRACE_API("%s", __func__); Loading @@ -777,7 +776,7 @@ tBTA_JV_STATUS BTA_JvRfcommConnect(tBTA_SEC sec_mask, tBTA_JV_ROLE role, p_msg->sec_mask = sec_mask; p_msg->role = role; p_msg->remote_scn = remote_scn; memcpy(p_msg->peer_bd_addr, peer_bd_addr, sizeof(BD_ADDR)); p_msg->peer_bd_addr = peer_bd_addr; p_msg->p_cback = p_cback; p_msg->rfcomm_slot_id = rfcomm_slot_id; Loading
system/bta/jv/bta_jv_int.h +5 −5 Original line number Diff line number Diff line Loading @@ -78,7 +78,7 @@ typedef struct { /* data type for BTA_JV_API_START_DISCOVERY_EVT */ typedef struct { BT_HDR hdr; BD_ADDR bd_addr; bt_bdaddr_t bd_addr; uint16_t num_uuid; tSDP_UUID uuid_list[BTA_JV_MAX_UUIDS]; uint16_t num_attr; Loading @@ -97,7 +97,7 @@ typedef struct { uint32_t handle; /* The connection handle */ uint8_t state; /* state: see above enum */ tBTA_JV_PM_ID app_id; /* JV app specific id indicating power table to use */ BD_ADDR peer_bd_addr; /* Peer BD address */ bt_bdaddr_t peer_bd_addr; /* Peer BD address */ } tBTA_JV_PM_CB; enum { Loading Loading @@ -163,7 +163,7 @@ typedef struct { uint16_t remote_chan; }; uint16_t rx_mtu; BD_ADDR peer_bd_addr; bt_bdaddr_t peer_bd_addr; int32_t has_cfg; tL2CAP_CFG_INFO cfg; int32_t has_ertm_info; Loading Loading @@ -224,7 +224,7 @@ typedef struct { typedef struct { BT_HDR hdr; uint16_t channel; BD_ADDR addr; bt_bdaddr_t addr; uint32_t req_id; tBTA_JV_L2CAP_CBACK* p_cback; uint8_t* p_data; Loading @@ -238,7 +238,7 @@ typedef struct { tBTA_SEC sec_mask; tBTA_JV_ROLE role; uint8_t remote_scn; BD_ADDR peer_bd_addr; bt_bdaddr_t peer_bd_addr; tBTA_JV_RFCOMM_CBACK* p_cback; uint32_t rfcomm_slot_id; } tBTA_JV_API_RFCOMM_CONNECT; Loading
system/btif/src/btif_gatt_util.cc +1 −1 Original line number Diff line number Diff line Loading @@ -213,7 +213,7 @@ uint16_t set_read_value(btgatt_read_params_t* p_dest, tBTA_GATTC_READ* p_src) { #if (BLE_DELAY_REQUEST_ENC == FALSE) static bool btif_gatt_is_link_encrypted(const bt_bdaddr_t& bd_addr) { return BTA_JvIsEncrypted(to_BD_ADDR(bd_addr)); return BTA_JvIsEncrypted(bd_addr); } static void btif_gatt_set_encryption_cb(UNUSED_ATTR const bt_bdaddr_t& bd_addr, Loading