Home | History | Annotate | Download | only in mcap

Lines Matching full:p_ccb

49 void mca_ccb_rsp_tout(tMCA_CCB* p_ccb, UNUSED_ATTR tMCA_CCB_EVT* p_data) {
52 mca_ccb_report_event(p_ccb, MCA_RSP_TOUT_IND_EVT, &evt_data);
64 void mca_ccb_report_event(tMCA_CCB* p_ccb, uint8_t event, tMCA_CTRL* p_data) {
65 if (p_ccb && p_ccb->p_rcb && p_ccb->p_rcb->p_cback)
66 (*p_ccb->p_rcb->p_cback)(mca_rcb_to_handle(p_ccb->p_rcb),
67 mca_ccb_to_hdl(p_ccb), event, p_data);
79 void mca_ccb_free_msg(UNUSED_ATTR tMCA_CCB* p_ccb, tMCA_CCB_EVT* p_data) {
92 void mca_ccb_snd_req(tMCA_CCB* p_ccb, tMCA_CCB_EVT* p_data) {
98 MCA_TRACE_DEBUG("mca_ccb_snd_req cong=%d req=%d", p_ccb->cong,
101 if ((p_ccb->status == MCA_CCB_STAT_PENDING) &&
103 p_dcb = mca_dcb_by_hdl(p_ccb->p_tx_req->dcb_idx);
108 osi_free_and_reset((void**)&p_ccb->p_tx_req);
109 p_ccb->status = MCA_CCB_STAT_NORM;
115 if ((!p_ccb->p_tx_req) || is_abort) {
116 p_ccb->p_tx_req = p_msg;
117 if (!p_ccb->cong) {
130 L2CA_DataWrite(p_ccb->lcid, p_pkt);
131 period_ms_t interval_ms = p_ccb->p_rcb->reg.rsp_tout * 1000;
132 alarm_set_on_mloop(p_ccb->mca_ccb_timer, interval_ms,
133 mca_ccb_timer_timeout, p_ccb);
152 void mca_ccb_snd_rsp(tMCA_CCB* p_ccb, tMCA_CCB_EVT* p_data) {
157 MCA_TRACE_DEBUG("%s cong=%d req=%d", __func__, p_ccb->cong, p_msg->op_code);
176 p_ccb->sec_mask, p_ccb->p_rcb->reg.data_psm,
178 p_ccb->status = MCA_CCB_STAT_PENDING;
180 osi_free_and_reset((void**)&p_ccb->p_tx_req);
181 p_ccb->p_tx_req = p_ccb->p_rx_msg;
182 p_ccb->p_rx_msg = NULL;
183 p_ccb->p_tx_req->dcb_idx = p_msg->dcb_idx;
187 osi_free_and_reset((void**)&p_ccb->p_rx_msg);
189 L2CA_DataWrite(p_ccb->lcid, p_pkt);
201 void mca_ccb_do_disconn(tMCA_CCB* p_ccb, UNUSED_ATTR tMCA_CCB_EVT* p_data) {
202 mca_dcb_close_by_mdl_id(p_ccb, MCA_ALL_MDL_ID);
203 L2CA_DisconnectReq(p_ccb->lcid);
215 void mca_ccb_cong(tMCA_CCB* p_ccb, tMCA_CCB_EVT* p_data) {
216 MCA_TRACE_DEBUG("mca_ccb_cong cong=%d/%d", p_ccb->cong, p_data->llcong);
217 p_ccb->cong = p_data->llcong;
218 if (!p_ccb->cong) {
220 if (p_ccb->p_tx_req && !p_ccb->p_tx_req->hdr.layer_specific) {
221 p_data = (tMCA_CCB_EVT*)p_ccb->p_tx_req;
222 p_ccb->p_tx_req = NULL;
223 mca_ccb_snd_req(p_ccb, p_data);
239 void mca_ccb_hdl_req(tMCA_CCB* p_ccb, tMCA_CCB_EVT* p_data) {
250 MCA_TRACE_DEBUG("mca_ccb_hdl_req status:%d", p_ccb->status);
258 if (p_ccb->status == MCA_CCB_STAT_PENDING) {
261 if ((p_ccb->status == MCA_CCB_STAT_PENDING) &&
266 p_ccb->status = MCA_CCB_STAT_NORM;
267 if (p_ccb->p_tx_req &&
268 ((p_dcb = mca_dcb_by_hdl(p_ccb->p_tx_req->dcb_idx)) != NULL)) {
270 osi_free_and_reset((void**)&p_ccb->p_tx_req);
274 } else if (p_ccb->p_rx_msg) {
278 } else if (p_ccb->p_tx_req) {
280 p_ccb->ctrl_vpsm);
282 if (p_ccb->ctrl_vpsm == 0) {
288 if ((p_ccb->p_tx_req->op_code == MCA_OP_MDL_CREATE_REQ) &&
289 ((p_dcb = mca_dcb_by_hdl(p_ccb->p_tx_req->dcb_idx)) != NULL)) {
292 osi_free_and_reset((void**)&p_ccb->p_tx_req);
293 mca_stop_timer(p_ccb);
326 if (!mca_is_valid_dep_id(p_ccb->p_rcb, p_rx_msg->mdep_id)) {
330 } else if (mca_ccb_uses_mdl_id(p_ccb, evt_data.hdr.mdl_id)) {
332 mca_dcb_close_by_mdl_id(p_ccb, evt_data.hdr.mdl_id);
335 if (mca_dep_free_mdl(p_ccb, evt_data.create_ind.dep_id) == 0) {
344 if (mca_ccb_uses_mdl_id(p_ccb, evt_data.hdr.mdl_id)) {
357 mca_dcb_close_by_mdl_id(p_ccb, evt_data.hdr.mdl_id);
404 L2CA_DataWrite(p_ccb->lcid, p_buf);
415 p_ccb->p_rx_msg = p_rx_msg;
418 p_ccb->p_rx_msg = NULL;
420 mca_ccb_report_event(p_ccb, evt_data.hdr.op_code, &evt_data);
436 void mca_ccb_hdl_rsp(tMCA_CCB* p_ccb, tMCA_CCB_EVT* p_data) {
445 if (p_ccb->p_tx_req) {
450 ((p_ccb->p_tx_req->op_code + 1) == evt_data.hdr.op_code)) {
452 mca_stop_timer(p_ccb);
461 p_dcb = mca_dcb_by_hdl(p_ccb->p_tx_req->dcb_idx);
470 p_ccb->status = MCA_CCB_STAT_PENDING;
471 MCA_Abort(mca_ccb_to_hdl(p_ccb));
477 p_ccb->sec_mask, p_ccb->data_vpsm,
478 BTM_SEC_PROTO_MCA, p_ccb->p_tx_req->dcb_idx);
479 p_dcb->lcid = mca_l2c_open_req(p_ccb->peer_addr, p_ccb->data_vpsm,
485 p_ccb->status = MCA_CCB_STAT_PENDING;
491 p_ccb->status = MCA_CCB_STAT_PENDING;
501 if (p_ccb->status != MCA_CCB_STAT_PENDING)
502 osi_free_and_reset((void**)&p_ccb->p_tx_req);
503 mca_ccb_report_event(p_ccb, evt_data.hdr.op_code, &evt_data);
523 void mca_ccb_ll_open(tMCA_CCB* p_ccb, tMCA_CCB_EVT* p_data) {
525 p_ccb->cong = false;
527 evt_data.connect_ind.bd_addr = p_ccb->peer_addr;
528 mca_ccb_report_event(p_ccb, MCA_CONNECT_IND_EVT, &evt_data);
541 void mca_ccb_dl_open(tMCA_CCB* p_ccb, UNUSED_ATTR tMCA_CCB_EVT* p_data) {
542 osi_free_and_reset((void**)&p_ccb->p_tx_req);
543 osi_free_and_reset((void**)&p_ccb->p_rx_msg);
544 p_ccb->status = MCA_CCB_STAT_NORM;