Lines Matching full:p_cb
91 static tBTA_JV_PCB* bta_jv_add_rfc_port(tBTA_JV_RFC_CB* p_cb,
94 static void bta_jv_pm_conn_busy(tBTA_JV_PM_CB* p_cb);
95 static void bta_jv_pm_conn_idle(tBTA_JV_PM_CB* p_cb);
96 static void bta_jv_pm_state_change(tBTA_JV_PM_CB* p_cb,
98 tBTA_JV_STATUS bta_jv_set_pm_conn_state(tBTA_JV_PM_CB* p_cb,
174 tBTA_JV_RFC_CB* p_cb = NULL;
179 p_cb = &bta_jv_cb.rfc_cb[i];
181 p_cb->handle = (i + 1) | BTA_JV_RFCOMM_MASK;
183 p_cb->max_sess = 1;
184 p_cb->curr_sess = 1;
185 for (j = 0; j < BTA_JV_MAX_RFC_SR_SESSION; j++) p_cb->rfc_hdl[j] = 0;
186 p_cb->rfc_hdl[0] = port_handle;
188 port_handle, p_cb->handle);
191 p_pcb->handle = p_cb->handle;
198 if (p_cb == NULL) {
204 return p_cb;
239 tBTA_JV_RFC_CB* p_cb = NULL;
247 if (handle) p_cb = &bta_jv_cb.rfc_cb[handle - 1];
254 return p_cb;
257 static tBTA_JV_STATUS bta_jv_free_rfc_cb(tBTA_JV_RFC_CB* p_cb,
263 if (!p_cb || !p_pcb) {
264 APPL_TRACE_ERROR("bta_jv_free_sr_rfc_cb, p_cb or p_pcb cannot be null");
270 p_cb->max_sess, p_cb->curr_sess, p_pcb, p_pcb->rfcomm_slot_id,
273 if (p_cb->curr_sess <= 0) return BTA_JV_SUCCESS;
281 p_pcb->state, p_cb->scn, p_pcb, p_pcb->rfcomm_slot_id);
289 p_pcb->state, p_cb->scn, p_pcb->rfcomm_slot_id);
298 p_cb->scn, p_pcb->rfcomm_slot_id);
305 p_cb->scn, p_pcb->rfcomm_slot_id);
311 p_pcb->state, p_cb->scn, p_pcb, p_pcb->handle, p_pcb->port_handle,
341 if (0 <= si && si < BTA_JV_MAX_RFC_SR_SESSION) p_cb->rfc_hdl[si] = 0;
343 p_cb->curr_sess--;
344 if (p_cb->curr_sess == 0) {
345 p_cb->scn = 0;
346 bta_jv_free_sec_id(&p_cb->sec_id);
347 p_cb->p_cback = NULL;
348 p_cb->handle = 0;
349 p_cb->curr_sess = -1;
352 bta_jv_free_sec_id(&p_cb->sec_id);
367 tBTA_JV_STATUS bta_jv_free_l2c_cb(tBTA_JV_L2C_CB* p_cb) {
370 if (BTA_JV_ST_NONE != p_cb->state) {
371 bta_jv_free_set_pm_profile_cb((uint32_t)p_cb->handle);
372 if (GAP_ConnClose(p_cb->handle) != BT_PASS) status = BTA_JV_FAILURE;
374 p_cb->psm = 0;
375 p_cb->state = BTA_JV_ST_NONE;
376 p_cb->cong = false;
377 bta_jv_free_sec_id(&p_cb->sec_id);
378 p_cb->p_cback = NULL;
420 tBTA_JV_PM_CB** p_cb;
424 p_cb = NULL;
468 p_cb = &p_pcb->p_pm_cb;
479 p_cb = &p_l2c_cb->p_pm_cb;
482 if (p_cb) {
483 *p_cb = NULL;
969 tBTA_JV_L2C_CB* p_cb = &bta_jv_cb.l2c_cb[gap_handle];
972 if (gap_handle >= BTA_JV_MAX_L2C_CONN && !p_cb->p_cback) return;
982 p_cb->state = BTA_JV_ST_CL_OPEN;
983 p_cb->p_cback(BTA_JV_L2CAP_OPEN_EVT, &evt_data, p_cb->l2cap_socket_id);
987 p_cb->state = BTA_JV_ST_NONE;
988 bta_jv_free_sec_id(&p_cb->sec_id);
990 p_cb->p_cback(BTA_JV_L2CAP_CLOSE_EVT, &evt_data, p_cb->l2cap_socket_id);
991 p_cb->p_cback = NULL;
997 bta_jv_pm_conn_busy(p_cb->p_pm_cb);
998 p_cb->p_cback(BTA_JV_L2CAP_DATA_IND_EVT, &evt_data,
999 p_cb->l2cap_socket_id);
1000 bta_jv_pm_conn_idle(p_cb->p_pm_cb);
1004 bta_jv_pm_conn_idle(p_cb->p_pm_cb);
1009 p_cb->cong = (event == GAP_EVT_CONN_CONGESTED) ? true : false;
1010 evt_data.l2c_cong.cong = p_cb->cong;
1011 p_cb->p_cback(BTA_JV_L2CAP_CONG_EVT, &evt_data, p_cb->l2cap_socket_id);
1029 tBTA_JV_L2C_CB* p_cb;
1079 p_cb = &bta_jv_cb.l2c_cb[handle];
1080 p_cb->handle = handle;
1081 p_cb->p_cback = cc->p_cback;
1082 p_cb->l2cap_socket_id = cc->l2cap_socket_id;
1083 p_cb->psm = 0; /* not a server */
1084 p_cb->sec_id = sec_id;
1085 p_cb->state = BTA_JV_ST_CL_OPENING;
1110 tBTA_JV_L2CAP_CBACK* p_cback = cc->p_cb->p_cback;
1111 uint32_t l2cap_socket_id = cc->p_cb->l2cap_socket_id;
1114 evt_data.status = bta_jv_free_l2c_cb(cc->p_cb);
1134 tBTA_JV_L2C_CB* p_cb = &bta_jv_cb.l2c_cb[gap_handle];
1139 if (gap_handle >= BTA_JV_MAX_L2C_CONN && !p_cb->p_cback) return;
1149 p_cb->state = BTA_JV_ST_SR_OPEN;
1150 p_cb->p_cback(BTA_JV_L2CAP_OPEN_EVT, &evt_data, p_cb->l2cap_socket_id);
1155 evt_data.l2c_close.handle = p_cb->handle;
1156 p_cback = p_cb->p_cback;
1157 socket_id = p_cb->l2cap_socket_id;
1158 evt_data.l2c_close.status = bta_jv_free_l2c_cb(p_cb);
1165 bta_jv_pm_conn_busy(p_cb->p_pm_cb);
1166 p_cb->p_cback(BTA_JV_L2CAP_DATA_IND_EVT, &evt_data,
1167 p_cb->l2cap_socket_id);
1168 bta_jv_pm_conn_idle(p_cb->p_pm_cb);
1172 bta_jv_pm_conn_idle(p_cb->p_pm_cb);
1177 p_cb->cong = (event == GAP_EVT_CONN_CONGESTED) ? true : false;
1178 evt_data.l2c_cong.cong = p_cb->cong;
1179 p_cb->p_cback(BTA_JV_L2CAP_CONG_EVT, &evt_data, p_cb->l2cap_socket_id);
1197 tBTA_JV_L2C_CB* p_cb;
1243 p_cb = &bta_jv_cb.l2c_cb[handle];
1247 p_cb->p_cback = ls->p_cback;
1248 p_cb->l2cap_socket_id = ls->l2cap_socket_id;
1249 p_cb->handle = handle;
1250 p_cb->sec_id = sec_id;
1251 p_cb->state = BTA_JV_ST_SR_LISTEN;
1252 p_cb->psm = ls->local_psm;
1272 tBTA_JV_L2C_CB* p_cb;
1278 p_cb = &bta_jv_cb.l2c_cb[i];
1279 p_cback = p_cb->p_cback;
1280 uint32_t l2cap_socket_id = p_cb->l2cap_socket_id;
1281 evt_data.handle = p_cb->handle;
1282 evt_data.status = bta_jv_free_l2c_cb(p_cb);
1359 if (ls->p_cb->p_cback != NULL) {
1364 evt_data.cong = ls->p_cb->cong;
1366 bta_jv_pm_conn_busy(ls->p_cb->p_pm_cb);
1374 ls->p_cb->p_cback(BTA_JV_L2CAP_WRITE_EVT, &bta_jv, ls->user_id);
1380 APPL_TRACE_ERROR("%s() ls->p_cb->p_cback == NULL", __func__);
1429 tBTA_JV_RFC_CB* p_cb = bta_jv_rfc_port_to_cb(port_handle);
1431 APPL_TRACE_DEBUG("%s, p_cb:%p, p_pcb:%p, len:%d, type:%d", __func__, p_cb,
1460 tBTA_JV_RFC_CB* p_cb = bta_jv_rfc_port_to_cb(port_handle);
1469 if (NULL == p_cb || NULL == p_cb->p_cback) return;
1472 code, port_handle, p_cb->handle);
1477 evt_data.rfc_open.handle = p_cb->handle;
1481 p_cb->p_cback(BTA_JV_RFCOMM_OPEN_EVT, &evt_data, p_pcb->rfcomm_slot_id);
1483 evt_data.rfc_close.handle = p_cb->handle;
1492 p_cback = p_cb->p_cback;
1494 // bta_jv_free_rfc_cb(p_cb, p_pcb);
1508 tBTA_JV_RFC_CB* p_cb = bta_jv_rfc_port_to_cb(port_handle);
1513 if (NULL == p_cb || NULL == p_cb->p_cback) return;
1517 port_handle, p_cb->handle);
1519 evt_data.data_ind.handle = p_cb->handle;
1520 p_cb->p_cback(BTA_JV_RFCOMM_DATA_IND_EVT, &evt_data, p_pcb->rfcomm_slot_id);
1526 evt_data.rfc_cong.handle = p_cb->handle;
1528 p_cb->p_cback(BTA_JV_RFCOMM_CONG_EVT, &evt_data, p_pcb->rfcomm_slot_id);
1550 tBTA_JV_RFC_CB* p_cb = NULL;
1580 p_cb = bta_jv_alloc_rfc_cb(handle, &p_pcb);
1581 if (p_cb) {
1582 p_cb->p_cback = cc->p_cback;
1583 p_cb->sec_id = sec_id;
1584 p_cb->scn = 0;
1599 evt_data.handle = p_cb->handle;
1648 tBTA_JV_RFC_CB* p_cb = NULL;
1656 if (!find_rfc_pcb(cc->rfcomm_slot_id, &p_cb, &p_pcb)) return;
1657 bta_jv_free_rfc_cb(p_cb, p_pcb);
1674 tBTA_JV_RFC_CB* p_cb = bta_jv_rfc_port_to_cb(port_handle);
1680 if (NULL == p_cb || NULL == p_cb->p_cback) {
1681 APPL_TRACE_ERROR("bta_jv_port_mgmt_sr_cback, p_cb:%p, p_cb->p_cback%p",
1682 p_cb, p_cb ? p_cb->p_cback : NULL);
1689 code, port_handle, p_cb->handle, p_pcb, p_pcb->rfcomm_slot_id);
1697 tBTA_JV_PCB* p_pcb_new_listen = bta_jv_add_rfc_port(p_cb, p_pcb);
1701 p_cb->p_cback(BTA_JV_RFCOMM_SRV_OPEN_EVT, &evt_data, rfcomm_slot_id);
1703 p_cb->curr_sess, p_cb->max_sess);
1709 evt_data.rfc_close.handle = p_cb->handle;
1715 tBTA_JV_RFCOMM_CBACK* p_cback = p_cb->p_cback;
1718 p_cb->curr_sess, p_cb->max_sess);
1725 // bta_jv_free_rfc_cb(p_cb, p_pcb);
1729 p_cb->curr_sess, p_cb->max_sess);
1744 tBTA_JV_RFC_CB* p_cb = bta_jv_rfc_port_to_cb(port_handle);
1747 if (NULL == p_cb || NULL == p_cb->p_cback) return;
1751 port_handle, p_cb->handle);
1755 evt_data.data_ind.handle = p_cb->handle;
1756 p_cb->p_cback(BTA_JV_RFCOMM_DATA_IND_EVT, &evt_data, user_data);
1762 evt_data.rfc_cong.handle = p_cb->handle;
1764 p_cb->p_cback(BTA_JV_RFCOMM_CONG_EVT, &evt_data, user_data);
1781 static tBTA_JV_PCB* bta_jv_add_rfc_port(tBTA_JV_RFC_CB* p_cb,
1788 if (p_cb->max_sess > 1) {
1789 for (i = 0; i < p_cb->max_sess; i++) {
1790 if (p_cb->rfc_hdl[i] != 0) {
1791 p_pcb = &bta_jv_cb.port_cb[p_cb->rfc_hdl[i] - 1];
1817 p_cb->max_sess, used, p_cb->curr_sess, listen, si);
1818 if (used < p_cb->max_sess && listen == 1 && si) {
1820 if (RFCOMM_CreateConnection(p_cb->sec_id, p_cb->scn, true,
1822 &(p_cb->rfc_hdl[si]),
1824 p_cb->curr_sess++;
1825 p_pcb = &bta_jv_cb.port_cb[p_cb->rfc_hdl[si] - 1];
1827 p_pcb->port_handle = p_cb->rfc_hdl[si];
1839 p_pcb->handle = BTA_JV_RFC_H_S_TO_HDL(p_cb->handle, si);
1842 p_pcb->handle, p_cb->curr_sess);
1868 tBTA_JV_RFC_CB* p_cb = NULL;
1901 p_cb = bta_jv_alloc_rfc_cb(handle, &p_pcb);
1902 if (!p_cb) {
1908 p_cb->max_sess = rs->max_session;
1909 p_cb->p_cback = rs->p_cback;
1910 p_cb->sec_id = sec_id;
1911 p_cb->scn = rs->local_scn;
1915 evt_data.handle = p_cb->handle;
1952 tBTA_JV_RFC_CB* p_cb = NULL;
1960 if (!find_rfc_pcb(ls->rfcomm_slot_id, &p_cb, &p_pcb)) return;
1963 bta_jv_free_rfc_cb(p_cb, p_pcb);
1980 tBTA_JV_RFC_CB* p_cb = wc->p_cb;
1990 evt_data.handle = p_cb->handle;
2005 if (p_cb->p_cback) {
2008 p_cb->p_cback(BTA_JV_RFCOMM_WRITE_EVT, &bta_jv, p_pcb->rfcomm_slot_id);
2025 tBTA_JV_PM_CB* p_cb;
2041 p_cb = bta_jv_alloc_set_pm_profile_cb(p_data->set_pm.handle,
2044 if (NULL != p_cb)
2045 bta_jv_pm_state_change(p_cb, p_data->set_pm.init_st);
2063 if (p_msg->p_cb) bta_jv_pm_state_change(p_msg->p_cb, p_msg->state);
2074 * Params: p_cb: jv pm control block, NULL pointer returns failure
2081 tBTA_JV_STATUS bta_jv_set_pm_conn_state(tBTA_JV_PM_CB* p_cb,
2083 if (p_cb == NULL) return BTA_JV_FAILURE;
2085 APPL_TRACE_API("%s: handle:0x%x, state: %d", __func__, p_cb->handle, new_st);
2090 p_msg->p_cb = p_cb;
2104 * Params p_cb: pm control block of jv connection
2109 static void bta_jv_pm_conn_busy(tBTA_JV_PM_CB* p_cb) {
2110 if ((NULL != p_cb) && (BTA_JV_PM_IDLE_ST == p_cb->state))
2111 bta_jv_pm_state_change(p_cb, BTA_JV_CONN_BUSY);
2120 * Params p_cb: pm control block of jv connection
2125 static void bta_jv_pm_conn_idle(tBTA_JV_PM_CB* p_cb) {
2126 if ((NULL != p_cb) && (BTA_JV_PM_IDLE_ST != p_cb->state))
2127 bta_jv_pm_state_change(p_cb, BTA_JV_CONN_IDLE);
2136 * Params p_cb: must be NONE NULL
2141 static void bta_jv_pm_state_change(tBTA_JV_PM_CB* p_cb,
2144 "bta_jv_pm_state_change(p_cb: 0x%x, handle: 0x%x, busy/idle_state: %d"
2146 p_cb, p_cb->handle, p_cb->state, p_cb->app_id, state);
2150 bta_sys_conn_open(BTA_ID_JV, p_cb->app_id, p_cb->peer_bd_addr);
2154 bta_sys_conn_close(BTA_ID_JV, p_cb->app_id, p_cb->peer_bd_addr);
2158 bta_sys_app_open(BTA_ID_JV, p_cb->app_id, p_cb->peer_bd_addr);
2162 bta_sys_app_close(BTA_ID_JV, p_cb->app_id, p_cb->peer_bd_addr);
2166 bta_sys_sco_open(BTA_ID_JV, p_cb->app_id, p_cb->peer_bd_addr);
2170 bta_sys_sco_close(BTA_ID_JV, p_cb->app_id, p_cb->peer_bd_addr);
2174 p_cb->state = BTA_JV_PM_IDLE_ST;
2175 bta_sys_idle(BTA_ID_JV, p_cb->app_id, p_cb->peer_bd_addr);
2179 p_cb->state = BTA_JV_PM_BUSY_ST;
2180 bta_sys_busy(BTA_ID_JV, p_cb->app_id, p_cb->peer_bd_addr);