Lines Matching refs:tcb
293 if (gatt_cb.tcb[i].in_use && gatt_cb.tcb[i].ch_state == GATT_CH_OPEN) { in gatt_find_the_connected_bda()
294 bda = gatt_cb.tcb[i].peer_bda; in gatt_find_the_connected_bda()
296 *p_transport = gatt_cb.tcb[i].transport; in gatt_find_the_connected_bda()
381 if (gatt_cb.tcb[i].in_use && gatt_cb.tcb[i].peer_bda == bda) { in gatt_is_bda_connected()
403 if (gatt_cb.tcb[i].peer_bda == bda && in gatt_find_i_tcb_by_addr()
404 gatt_cb.tcb[i].transport == transport) { in gatt_find_i_tcb_by_addr()
423 if ((tcb_idx < gatt_get_max_phy_channel()) && gatt_cb.tcb[tcb_idx].in_use) in gatt_get_tcb_by_idx()
424 p_tcb = &gatt_cb.tcb[tcb_idx]; in gatt_get_tcb_by_idx()
444 if (i != GATT_INDEX_INVALID) p_tcb = &gatt_cb.tcb[i]; in gatt_find_tcb_by_addr()
463 tGATT_TCB* p_tcb = &gatt_cb.tcb[i]; in gatt_tcb_dump()
492 if (j != GATT_INDEX_INVALID) return &gatt_cb.tcb[j]; in gatt_allocate_tcb_by_bdaddr()
496 tGATT_TCB* p_tcb = &gatt_cb.tcb[i]; in gatt_allocate_tcb_by_bdaddr()
676 void gatt_stop_conf_timer(tGATT_TCB& tcb, uint16_t cid) { in gatt_stop_conf_timer() argument
678 if (tcb.eatt && cid != L2CAP_ATT_CID) in gatt_stop_conf_timer()
679 EattExtension::GetInstance()->StopIndicationConfirmationTimer(tcb.peer_bda, in gatt_stop_conf_timer()
682 alarm_cancel(tcb.conf_timer); in gatt_stop_conf_timer()
694 void gatt_start_ind_ack_timer(tGATT_TCB& tcb, uint16_t cid) { in gatt_start_ind_ack_timer() argument
696 if (tcb.eatt && cid != L2CAP_ATT_CID) in gatt_start_ind_ack_timer()
697 EattExtension::GetInstance()->StartAppIndicationTimer(tcb.peer_bda, cid); in gatt_start_ind_ack_timer()
699 alarm_set_on_mloop(tcb.ind_ack_timer, GATT_WAIT_FOR_RSP_TIMEOUT_MS, in gatt_start_ind_ack_timer()
700 gatt_ind_ack_timeout, &tcb); in gatt_start_ind_ack_timer()
763 void gatts_proc_srv_chg_ind_ack(tGATT_TCB tcb);
901 tGATT_STATUS gatt_send_error_rsp(tGATT_TCB& tcb, uint16_t cid, uint8_t err_code, in gatt_send_error_rsp() argument
911 uint16_t payload_size = gatt_tcb_get_payload_size(tcb, cid); in gatt_send_error_rsp()
912 p_buf = attp_build_sr_msg(tcb, GATT_RSP_ERROR, &msg, payload_size); in gatt_send_error_rsp()
914 status = attp_send_sr_msg(tcb, cid, p_buf); in gatt_send_error_rsp()
918 if (deq) gatt_dequeue_sr_cmd(tcb, cid); in gatt_send_error_rsp()
1060 bool gatt_tcb_is_cid_busy(tGATT_TCB& tcb, uint16_t cid) { in gatt_tcb_is_cid_busy() argument
1061 if (cid == tcb.att_lcid) return !tcb.cl_cmd_q.empty(); in gatt_tcb_is_cid_busy()
1064 EattExtension::GetInstance()->FindEattChannelByCid(tcb.peer_bda, cid); in gatt_tcb_is_cid_busy()
1066 log::warn("{}, cid 0x{:02x} already disconnected", tcb.peer_bda, cid); in gatt_tcb_is_cid_busy()
1144 bool gatt_tcb_find_indicate_handle(tGATT_TCB& tcb, uint16_t cid, in gatt_tcb_find_indicate_handle() argument
1146 if (cid == tcb.att_lcid) { in gatt_tcb_find_indicate_handle()
1147 *indicated_handle_p = tcb.indicate_handle; in gatt_tcb_find_indicate_handle()
1148 tcb.indicate_handle = 0; in gatt_tcb_find_indicate_handle()
1152 if (tcb.eatt) { in gatt_tcb_find_indicate_handle()
1154 EattExtension::GetInstance()->FindEattChannelByCid(tcb.peer_bda, cid); in gatt_tcb_find_indicate_handle()
1175 uint16_t gatt_tcb_get_att_cid(tGATT_TCB& tcb, bool eatt_support) { in gatt_tcb_get_att_cid() argument
1176 if (eatt_support && tcb.eatt) { in gatt_tcb_get_att_cid()
1179 tcb.peer_bda); in gatt_tcb_get_att_cid()
1184 return tcb.att_lcid; in gatt_tcb_get_att_cid()
1196 uint16_t gatt_tcb_get_payload_size(tGATT_TCB& tcb, uint16_t cid) { in gatt_tcb_get_payload_size() argument
1197 if (!tcb.eatt || (cid == tcb.att_lcid)) return tcb.payload_size; in gatt_tcb_get_payload_size()
1200 EattExtension::GetInstance()->FindEattChannelByCid(tcb.peer_bda, cid); in gatt_tcb_get_payload_size()
1202 log::warn("{}, cid 0x{:02x} already disconnected", tcb.peer_bda, cid); in gatt_tcb_get_payload_size()
1311 if (gatt_cb.tcb[xx].in_use && in gatt_find_tcb_by_cid()
1312 ((gatt_cb.tcb[xx].att_lcid == lcid) || in gatt_find_tcb_by_cid()
1314 gatt_cb.tcb[xx].peer_bda, lcid) != nullptr)))) { in gatt_find_tcb_by_cid()
1315 p_tcb = &gatt_cb.tcb[xx]; in gatt_find_tcb_by_cid()
1322 void gatt_sr_copy_prep_cnt_to_cback_cnt(tGATT_TCB& tcb) { in gatt_sr_copy_prep_cnt_to_cback_cnt() argument
1324 if (tcb.prep_cnt[i]) { in gatt_sr_copy_prep_cnt_to_cback_cnt()
1325 tcb.sr_cmd.cback_cnt[i] = 1; in gatt_sr_copy_prep_cnt_to_cback_cnt()
1351 bool gatt_sr_is_cback_cnt_zero(tGATT_TCB& tcb) { in gatt_sr_is_cback_cnt_zero() argument
1353 if (tcb.sr_cmd.cback_cnt[i]) { in gatt_sr_is_cback_cnt_zero()
1369 bool gatt_sr_is_prep_cnt_zero(tGATT_TCB& tcb) { in gatt_sr_is_prep_cnt_zero() argument
1371 if (tcb.prep_cnt[i]) { in gatt_sr_is_prep_cnt_zero()
1387 void gatt_sr_reset_cback_cnt(tGATT_TCB& tcb, uint16_t cid) { in gatt_sr_reset_cback_cnt() argument
1389 if (cid == tcb.att_lcid) { in gatt_sr_reset_cback_cnt()
1390 tcb.sr_cmd.cback_cnt[i] = 0; in gatt_sr_reset_cback_cnt()
1393 EattExtension::GetInstance()->FindEattChannelByCid(tcb.peer_bda, cid); in gatt_sr_reset_cback_cnt()
1395 log::warn("{}, cid 0x{:02x} already disconnected", tcb.peer_bda, cid); in gatt_sr_reset_cback_cnt()
1412 void gatt_sr_reset_prep_cnt(tGATT_TCB& tcb) { in gatt_sr_reset_prep_cnt() argument
1414 tcb.prep_cnt[i] = 0; in gatt_sr_reset_prep_cnt()
1419 tGATT_SR_CMD* gatt_sr_get_cmd_by_cid(tGATT_TCB& tcb, uint16_t cid) { in gatt_sr_get_cmd_by_cid() argument
1422 log::info("cid: {} tcb cid {}", int(cid), tcb.att_lcid); in gatt_sr_get_cmd_by_cid()
1423 if (cid == tcb.att_lcid) { in gatt_sr_get_cmd_by_cid()
1424 sr_cmd_p = &tcb.sr_cmd; in gatt_sr_get_cmd_by_cid()
1427 EattExtension::GetInstance()->FindEattChannelByCid(tcb.peer_bda, cid); in gatt_sr_get_cmd_by_cid()
1429 log::warn("{}, cid 0x{:02x} already disconnected", tcb.peer_bda, cid); in gatt_sr_get_cmd_by_cid()
1440 tGATT_READ_MULTI* gatt_sr_get_read_multi(tGATT_TCB& tcb, uint16_t cid) { in gatt_sr_get_read_multi() argument
1443 log::info("cid: {} tcb cid {}", int(cid), tcb.att_lcid); in gatt_sr_get_read_multi()
1444 if (cid == tcb.att_lcid) { in gatt_sr_get_read_multi()
1445 read_multi_p = &tcb.sr_cmd.multi_req; in gatt_sr_get_read_multi()
1448 EattExtension::GetInstance()->FindEattChannelByCid(tcb.peer_bda, cid); in gatt_sr_get_read_multi()
1450 log::warn("{}, cid 0x{:02x} already disconnected", tcb.peer_bda, cid); in gatt_sr_get_read_multi()
1468 void gatt_sr_update_cback_cnt(tGATT_TCB& tcb, uint16_t cid, tGATT_IF gatt_if, in gatt_sr_update_cback_cnt() argument
1473 if (cid == tcb.att_lcid) { in gatt_sr_update_cback_cnt()
1474 sr_cmd_p = &tcb.sr_cmd; in gatt_sr_update_cback_cnt()
1477 EattExtension::GetInstance()->FindEattChannelByCid(tcb.peer_bda, cid); in gatt_sr_update_cback_cnt()
1479 log::warn("{}, cid 0x{:02x} already disconnected", tcb.peer_bda, cid); in gatt_sr_update_cback_cnt()
1486 gatt_sr_reset_cback_cnt(tcb, cid); in gatt_sr_update_cback_cnt()
1506 void gatt_sr_update_prep_cnt(tGATT_TCB& tcb, tGATT_IF gatt_if, bool is_inc, in gatt_sr_update_prep_cnt() argument
1510 log::verbose("tcb idx={} gatt_if={} is_inc={} is_reset_first={}", tcb.tcb_idx, in gatt_sr_update_prep_cnt()
1514 gatt_sr_reset_prep_cnt(tcb); in gatt_sr_update_prep_cnt()
1517 tcb.prep_cnt[idx]++; in gatt_sr_update_prep_cnt()
1519 if (tcb.prep_cnt[idx]) { in gatt_sr_update_prep_cnt()
1520 tcb.prep_cnt[idx]--; in gatt_sr_update_prep_cnt()
1590 bool gatt_cmd_enq(tGATT_TCB& tcb, tGATT_CLCB* p_clcb, bool to_send, in gatt_cmd_enq() argument
1599 if (p_clcb->cid == tcb.att_lcid) { in gatt_cmd_enq()
1600 tcb.cl_cmd_q.push_back(cmd); in gatt_cmd_enq()
1603 tcb.peer_bda, cmd.cid); in gatt_cmd_enq()
1605 log::warn("{}, cid 0x{:02x} already disconnected", tcb.peer_bda, cmd.cid); in gatt_cmd_enq()
1615 tGATT_CLCB* gatt_cmd_dequeue(tGATT_TCB& tcb, uint16_t cid, uint8_t* p_op_code) { in gatt_cmd_dequeue() argument
1618 if (cid == tcb.att_lcid) { in gatt_cmd_dequeue()
1619 cl_cmd_q_p = &tcb.cl_cmd_q; in gatt_cmd_dequeue()
1622 EattExtension::GetInstance()->FindEattChannelByCid(tcb.peer_bda, cid); in gatt_cmd_dequeue()
1624 log::warn("{}, cid 0x{:02x} already disconnected", tcb.peer_bda, cid); in gatt_cmd_dequeue()
1651 tGATT_STATUS gatt_send_write_msg(tGATT_TCB& tcb, tGATT_CLCB* p_clcb, in gatt_send_write_msg() argument
1661 return attp_send_cl_msg(tcb, p_clcb, op_code, &msg); in gatt_send_write_msg()
1673 bool gatt_is_outstanding_msg_in_att_send_queue(const tGATT_TCB& tcb) { in gatt_is_outstanding_msg_in_att_send_queue() argument
1674 return (!tcb.cl_cmd_q.empty() && (tcb.cl_cmd_q.front()).to_send); in gatt_is_outstanding_msg_in_att_send_queue()