Home | History | Annotate | Download | only in rfcomm

Lines Matching defs:p_mcb

136   tRFC_MCB* p_mcb = NULL;
156 "p_mcb:%p",
166 p_mcb = &rfc_cb.port.rfc_mcb[j];
169 alarm_free(p_mcb->mcb_timer);
170 fixed_queue_free(p_mcb->cmd_q, NULL);
171 memset(p_mcb, 0, sizeof(tRFC_MCB));
172 p_mcb->bd_addr = bd_addr;
174 "rfc_alloc_multiplexer_channel:is_initiator:%d, create new p_mcb:%p, "
178 p_mcb->mcb_timer = alarm_new("rfcomm_mcb.mcb_timer");
179 p_mcb->cmd_q = fixed_queue_new(SIZE_MAX);
181 p_mcb->is_initiator = is_initiator;
183 rfc_timer_start(p_mcb, RFC_MCB_INIT_INACT_TIMER);
186 return (p_mcb);
199 void rfc_release_multiplexer_channel(tRFC_MCB* p_mcb) {
201 rfc_save_lcid_mcb(NULL, p_mcb->lcid);
205 if (rfc_cb.port.port[i].rfc.p_mcb == p_mcb)
206 rfc_cb.port.port[i].rfc.p_mcb = NULL;
209 rfc_timer_stop(p_mcb);
210 alarm_free(p_mcb->mcb_timer);
212 fixed_queue_free(p_mcb->cmd_q, osi_free);
214 memset(p_mcb, 0, sizeof(tRFC_MCB));
215 p_mcb->state = RFC_MX_STATE_IDLE;
225 void rfc_timer_start(tRFC_MCB* p_mcb, uint16_t timeout) {
229 alarm_set_on_mloop(p_mcb->mcb_timer, interval_ms, rfcomm_mcb_timer_timeout,
230 p_mcb);
240 void rfc_timer_stop(tRFC_MCB* p_mcb) {
243 alarm_cancel(p_mcb->mcb_timer);
284 void rfc_check_mcb_active(tRFC_MCB* p_mcb) {
288 if (p_mcb->port_inx[i] != 0) {
289 p_mcb->is_disc_initiator = false;
295 if (p_mcb->is_disc_initiator) {
296 p_mcb->is_disc_initiator = false;
297 rfc_mx_sm_execute(p_mcb, RFC_MX_EVENT_CLOSE_REQ, NULL);
299 rfc_timer_start(p_mcb, RFC_MCB_RELEASE_INACT_TIMER);
309 tRFC_MCB* p_mcb = (tRFC_MCB*)data;
311 rfc_mx_sm_execute(p_mcb, RFC_EVENT_TIMEOUT, NULL);
350 tRFC_MCB* p_mcb = p_port->rfc.p_mcb;
355 if (p_mcb) {
356 p_mcb->port_inx[p_port->dlci] = 0;
359 rfc_check_mcb_active(p_mcb);
378 if (p_port->rfc.p_mcb->flow == PORT_FC_CREDIT) {
383 if (p_port->tx.peer_fc) PORT_FlowInd(p_port->rfc.p_mcb, p_port->dlci, true);
399 if (p_port->rfc.p_mcb->flow == PORT_FC_CREDIT) {
416 void rfc_check_send_cmd(tRFC_MCB* p_mcb, BT_HDR* p_buf) {
419 if (p_mcb->cmd_q == NULL) {
421 "%s: empty queue: p_mcb = %p p_mcb->lcid = %u cached p_mcb = %p",
422 __func__, p_mcb, p_mcb->lcid, rfc_find_lcid_mcb(p_mcb->lcid));
424 fixed_queue_enqueue(p_mcb->cmd_q, p_buf);
428 while (!p_mcb->l2cap_congested) {
429 BT_HDR* p = (BT_HDR*)fixed_queue_try_dequeue(p_mcb->cmd_q);
431 L2CA_DataWrite(p_mcb->lcid, p);