Home | History | Annotate | Download | only in rfcomm

Lines Matching refs:p_mcb

43 static void rfc_mx_sm_state_idle (tRFC_MCB *p_mcb, UINT16 event, void *p_data);
44 static void rfc_mx_sm_state_wait_conn_cnf (tRFC_MCB *p_mcb, UINT16 event, void *p_data);
45 static void rfc_mx_sm_state_configure (tRFC_MCB *p_mcb, UINT16 event, void *p_data);
46 static void rfc_mx_sm_sabme_wait_ua (tRFC_MCB *p_mcb, UINT16 event, void *p_data);
47 static void rfc_mx_sm_state_wait_sabme (tRFC_MCB *p_mcb, UINT16 event, void *p_data);
48 static void rfc_mx_sm_state_connected (tRFC_MCB *p_mcb, UINT16 event, void *p_data);
49 static void rfc_mx_sm_state_disc_wait_ua (tRFC_MCB *p_mcb, UINT16 event, void *p_data);
51 static void rfc_mx_send_config_req (tRFC_MCB *p_mcb);
52 static void rfc_mx_conf_ind (tRFC_MCB *p_mcb, tL2CAP_CFG_INFO *p_cfg);
53 static void rfc_mx_conf_cnf (tRFC_MCB *p_mcb, tL2CAP_CFG_INFO *p_cfg);
67 void rfc_mx_sm_execute (tRFC_MCB *p_mcb, UINT16 event, void *p_data)
69 switch (p_mcb->state)
72 rfc_mx_sm_state_idle (p_mcb, event, p_data);
76 rfc_mx_sm_state_wait_conn_cnf (p_mcb, event, p_data);
80 rfc_mx_sm_state_configure (p_mcb, event, p_data);
84 rfc_mx_sm_sabme_wait_ua (p_mcb, event, p_data);
88 rfc_mx_sm_state_wait_sabme (p_mcb, event, p_data);
92 rfc_mx_sm_state_connected (p_mcb, event, p_data);
96 rfc_mx_sm_state_disc_wait_ua (p_mcb, event, p_data);
114 void rfc_mx_sm_state_idle (tRFC_MCB *p_mcb, UINT16 event, void *p_data)
122 p_mcb->peer_l2cap_mtu = L2CAP_DEFAULT_MTU - RFCOMM_MIN_OFFSET - 1;
124 if ((p_mcb->lcid = L2CA_ConnectReq (BT_PSM_RFCOMM, p_mcb->bd_addr)) == 0)
126 PORT_StartCnf (p_mcb, RFCOMM_ERROR);
130 rfc_save_lcid_mcb (p_mcb, p_mcb->lcid);
132 p_mcb->state = RFC_MX_STATE_WAIT_CONN_CNF;
139 RFCOMM_TRACE_ERROR ("Mx error state %d event %d", p_mcb->state, event);
144 rfc_timer_start (p_mcb, RFCOMM_CONN_TIMEOUT);
145 L2CA_ConnectRsp (p_mcb->bd_addr, *((UINT8 *)p_data), p_mcb->lcid, L2CAP_CONN_OK, 0);
147 rfc_mx_send_config_req (p_mcb);
149 p_mcb->state = RFC_MX_STATE_CONFIGURE;
160 rfc_send_dm (p_mcb, RFCOMM_MX_DLCI, TRUE);
164 rfc_send_dm (p_mcb, RFCOMM_MX_DLCI, FALSE);
167 RFCOMM_TRACE_EVENT ("RFCOMM MX ignored - evt:%d in state:%d", event, p_mcb->state);
181 void rfc_mx_sm_state_wait_conn_cnf (tRFC_MCB *p_mcb, UINT16 event, void *p_data)
187 RFCOMM_TRACE_ERROR ("Mx error state %d event %d", p_mcb->state, event);
193 rfc_mx_conf_ind (p_mcb, (tL2CAP_CFG_INFO *)p_data);
199 p_mcb->state = RFC_MX_STATE_IDLE;
201 PORT_StartCnf (p_mcb, *((UINT16 *)p_data));
204 p_mcb->state = RFC_MX_STATE_CONFIGURE;
205 rfc_mx_send_config_req (p_mcb);
209 p_mcb->state = RFC_MX_STATE_IDLE;
210 PORT_CloseInd (p_mcb);
214 p_mcb->state = RFC_MX_STATE_IDLE;
215 L2CA_DisconnectReq (p_mcb->lcid);
218 if (p_mcb->pending_lcid)
223 RFCOMM_TRACE_DEBUG ("RFCOMM MX retry as acceptor in collision case - evt:%d in state:%d", event, p_mcb->state);
225 rfc_save_lcid_mcb (NULL, p_mcb->lcid);
226 p_mcb->lcid = p_mcb->pending_lcid;
227 rfc_save_lcid_mcb (p_mcb, p_mcb->lcid);
229 p_mcb->is_initiator = FALSE;
234 if ((idx = p_mcb->port_inx[i]) != 0)
236 p_mcb->port_inx[i] = 0;
237 p_mcb->port_inx[i+1] = idx;
243 rfc_mx_sm_execute (p_mcb, RFC_MX_EVENT_CONN_IND, &(p_mcb->pending_id));
247 PORT_CloseInd (p_mcb);
251 RFCOMM_TRACE_EVENT ("RFCOMM MX ignored - evt:%d in state:%d", event, p_mcb->state);
265 void rfc_mx_sm_state_configure (tRFC_MCB *p_mcb, UINT16 event, void *p_data)
273 RFCOMM_TRACE_ERROR ("Mx error state %d event %d", p_mcb->state, event);
277 rfc_mx_conf_ind (p_mcb, (tL2CAP_CFG_INFO *)p_data);
281 rfc_mx_conf_cnf (p_mcb, (tL2CAP_CFG_INFO *)p_data);
285 p_mcb->state = RFC_MX_STATE_IDLE;
286 PORT_CloseInd (p_mcb);
290 p_mcb->state = RFC_MX_STATE_IDLE;
291 L2CA_DisconnectReq (p_mcb->lcid);
293 PORT_StartCnf (p_mcb, RFCOMM_ERROR);
296 RFCOMM_TRACE_EVENT ("RFCOMM MX ignored - evt:%d in state:%d", event, p_mcb->state);
310 void rfc_mx_sm_sabme_wait_ua (tRFC_MCB *p_mcb, UINT16 event, void *p_data)
319 RFCOMM_TRACE_ERROR ("Mx error state %d event %d", p_mcb->state, event);
325 rfc_mx_conf_ind (p_mcb, (tL2CAP_CFG_INFO *)p_data);
329 rfc_mx_conf_cnf (p_mcb, (tL2CAP_CFG_INFO *)p_data);
334 p_mcb->state = RFC_MX_STATE_IDLE;
335 PORT_CloseInd (p_mcb);
339 rfc_timer_stop (p_mcb);
341 p_mcb->state = RFC_MX_STATE_CONNECTED;
342 p_mcb->peer_ready = TRUE;
344 PORT_StartCnf (p_mcb, RFCOMM_SUCCESS);
348 rfc_timer_stop (p_mcb);
354 p_mcb->state = RFC_MX_STATE_IDLE;
355 L2CA_DisconnectReq (p_mcb->lcid);
357 PORT_StartCnf (p_mcb, RFCOMM_ERROR);
360 RFCOMM_TRACE_EVENT ("RFCOMM MX ignored - evt:%d in state:%d", event, p_mcb->state);
373 void rfc_mx_sm_state_wait_sabme (tRFC_MCB *p_mcb, UINT16 event, void *p_data)
379 p_mcb->state = RFC_MX_STATE_IDLE;
380 PORT_CloseInd (p_mcb);
385 if (p_mcb->pending_lcid)
387 p_mcb->pending_lcid = 0;
389 rfc_send_ua (p_mcb, RFCOMM_MX_DLCI);
391 rfc_timer_stop (p_mcb);
392 p_mcb->state = RFC_MX_STATE_CONNECTED;
393 p_mcb->peer_ready = TRUE;
396 PORT_StartCnf (p_mcb, RFCOMM_SUCCESS);
400 rfc_timer_stop (p_mcb);
401 PORT_StartInd (p_mcb);
407 rfc_send_dm (p_mcb, RFCOMM_MX_DLCI, TRUE);
410 rfc_send_ua (p_mcb, RFCOMM_MX_DLCI);
412 p_mcb->state = RFC_MX_STATE_CONNECTED;
413 p_mcb->peer_ready = TRUE;
420 p_mcb->state = RFC_MX_STATE_IDLE;
421 L2CA_DisconnectReq (p_mcb->lcid);
423 PORT_CloseInd (p_mcb);
426 RFCOMM_TRACE_EVENT ("RFCOMM MX ignored - evt:%d in state:%d", event, p_mcb->state);
440 void rfc_mx_sm_state_connected (tRFC_MCB *p_mcb, UINT16 event, void *p_data)
450 rfc_timer_start (p_mcb, RFC_DISC_TIMEOUT);
451 p_mcb->state = RFC_MX_STATE_DISC_WAIT_UA;
452 rfc_send_disc (p_mcb, RFCOMM_MX_DLCI);
456 p_mcb->state = RFC_MX_STATE_IDLE;
457 PORT_CloseInd (p_mcb);
463 rfc_send_ua (p_mcb, RFCOMM_MX_DLCI);
464 if (p_mcb->is_initiator)
466 L2CA_DisconnectReq (p_mcb->lcid);
469 PORT_CloseInd (p_mcb);
472 RFCOMM_TRACE_EVENT ("RFCOMM MX ignored - evt:%d in state:%d", event, p_mcb->state);
486 void rfc_mx_sm_state_disc_wait_ua (tRFC_MCB *p_mcb, UINT16 event, void *p_data)
496 L2CA_DisconnectReq (p_mcb->lcid);
498 if (p_mcb->restart_required)
501 if ((p_mcb->lcid = L2CA_ConnectReq (BT_PSM_RFCOMM, p_mcb->bd_addr)) == 0)
503 PORT_StartCnf (p_mcb, RFCOMM_ERROR);
507 rfc_save_lcid_mcb (p_mcb, p_mcb->lcid);
510 while ((p_buf = (BT_HDR *)GKI_dequeue(&p_mcb->cmd_q)) != NULL)
513 rfc_timer_start (p_mcb, RFC_MCB_INIT_INACT_TIMER);
515 p_mcb
516 p_mcb->restart_required = FALSE;
517 p_mcb->local_cfg_sent = FALSE;
518 p_mcb->peer_cfg_rcvd = FALSE;
520 p_mcb->state = RFC_MX_STATE_WAIT_CONN_CNF;
523 rfc_release_multiplexer_channel (p_mcb);
527 rfc_send_ua (p_mcb, RFCOMM_MX_DLCI);
532 rfc_send_dm (p_mcb, RFCOMM_MX_DLCI, FALSE);
536 p_mcb->restart_required = TRUE;
540 p_mcb->state = RFC_MX_STATE_IDLE;
541 PORT_CloseInd (p_mcb);
550 RFCOMM_TRACE_EVENT ("RFCOMM MX ignored - evt:%d in state:%d", event, p_mcb->state);
562 static void rfc_mx_send_config_req (tRFC_MCB *p_mcb)
581 L2CA_ConfigReq (p_mcb->lcid, &cfg);
595 static void rfc_mx_conf_cnf (tRFC_MCB *p_mcb, tL2CAP_CFG_INFO *p_cfg)
601 if (p_mcb->is_initiator)
603 PORT_StartCnf (p_mcb, p_cfg->result);
604 L2CA_DisconnectReq (p_mcb->lcid);
606 rfc_release_multiplexer_channel (p_mcb);
610 p_mcb->local_cfg_sent = TRUE;
611 if ((p_mcb->state == RFC_MX_STATE_CONFIGURE) && p_mcb->peer_cfg_rcvd)
613 if (p_mcb->is_initiator)
615 p_mcb->state = RFC_MX_STATE_SABME_WAIT_UA;
616 rfc_send_sabme (p_mcb, RFCOMM_MX_DLCI);
617 rfc_timer_start (p_mcb, RFC_T1_TIMEOUT);
621 p_mcb->state = RFC_MX_STATE_WAIT_SABME;
622 rfc_timer_start (p_mcb, RFCOMM_CONN_TIMEOUT); /* - increased from T2=20 to CONN=120
638 static void rfc_mx_conf_ind (tRFC_MCB *p_mcb, tL2CAP_CFG_INFO *p_cfg)
643 p_mcb->peer_l2cap_mtu = p_cfg->mtu - RFCOMM_MIN_OFFSET - 1;
645 p_mcb->peer_l2cap_mtu = L2CAP_DEFAULT_MTU - RFCOMM_MIN_OFFSET - 1;
653 L2CA_ConfigRsp (p_mcb->lcid, p_cfg);
655 p_mcb->peer_cfg_rcvd = TRUE;
656 if ((p_mcb->state == RFC_MX_STATE_CONFIGURE) && p_mcb->local_cfg_sent)
658 if (p_mcb->is_initiator)
660 p_mcb->state = RFC_MX_STATE_SABME_WAIT_UA;
661 rfc_send_sabme (p_mcb, RFCOMM_MX_DLCI);
662 rfc_timer_start (p_mcb, RFC_T1_TIMEOUT);
666 p_mcb->state = RFC_MX_STATE_WAIT_SABME;
667 rfc_timer_start (p_mcb, RFCOMM_CONN_TIMEOUT); /* - increased from T2=20 to CONN=120