Home | History | Annotate | Download | only in rfcomm

Lines Matching refs:p_mcb

42 static void rfc_mx_sm_state_idle (tRFC_MCB *p_mcb, UINT16 event, void *p_data);
43 static void rfc_mx_sm_state_wait_conn_cnf (tRFC_MCB *p_mcb, UINT16 event, void *p_data);
44 static void rfc_mx_sm_state_configure (tRFC_MCB *p_mcb, UINT16 event, void *p_data);
45 static void rfc_mx_sm_sabme_wait_ua (tRFC_MCB *p_mcb, UINT16 event, void *p_data);
46 static void rfc_mx_sm_state_wait_sabme (tRFC_MCB *p_mcb, UINT16 event, void *p_data);
47 static void rfc_mx_sm_state_connected (tRFC_MCB *p_mcb, UINT16 event, void *p_data);
48 static void rfc_mx_sm_state_disc_wait_ua (tRFC_MCB *p_mcb, UINT16 event, void *p_data);
50 static void rfc_mx_send_config_req (tRFC_MCB *p_mcb);
51 static void rfc_mx_conf_ind (tRFC_MCB *p_mcb, tL2CAP_CFG_INFO *p_cfg);
52 static void rfc_mx_conf_cnf (tRFC_MCB *p_mcb, tL2CAP_CFG_INFO *p_cfg);
66 void rfc_mx_sm_execute (tRFC_MCB *p_mcb, UINT16 event, void *p_data)
68 switch (p_mcb->state)
71 rfc_mx_sm_state_idle (p_mcb, event, p_data);
75 rfc_mx_sm_state_wait_conn_cnf (p_mcb, event, p_data);
79 rfc_mx_sm_state_configure (p_mcb, event, p_data);
83 rfc_mx_sm_sabme_wait_ua (p_mcb, event, p_data);
87 rfc_mx_sm_state_wait_sabme (p_mcb, event, p_data);
91 rfc_mx_sm_state_connected (p_mcb, event, p_data);
95 rfc_mx_sm_state_disc_wait_ua (p_mcb, event, p_data);
113 void rfc_mx_sm_state_idle (tRFC_MCB *p_mcb, UINT16 event, void *p_data)
121 p_mcb->peer_l2cap_mtu = L2CAP_DEFAULT_MTU - RFCOMM_MIN_OFFSET - 1;
123 if ((p_mcb->lcid = L2CA_ConnectReq (BT_PSM_RFCOMM, p_mcb->bd_addr)) == 0)
125 PORT_StartCnf (p_mcb, RFCOMM_ERROR);
129 rfc_save_lcid_mcb (p_mcb, p_mcb->lcid);
131 p_mcb->state = RFC_MX_STATE_WAIT_CONN_CNF;
138 RFCOMM_TRACE_ERROR2 ("Mx error state %d event %d", p_mcb->state, event);
143 rfc_timer_start (p_mcb, RFCOMM_CONN_TIMEOUT);
144 L2CA_ConnectRsp (p_mcb->bd_addr, *((UINT8 *)p_data), p_mcb->lcid, L2CAP_CONN_OK, 0);
146 rfc_mx_send_config_req (p_mcb);
148 p_mcb->state = RFC_MX_STATE_CONFIGURE;
159 rfc_send_dm (p_mcb, RFCOMM_MX_DLCI, TRUE);
163 rfc_send_dm (p_mcb, RFCOMM_MX_DLCI, FALSE);
166 RFCOMM_TRACE_EVENT2 ("RFCOMM MX ignored - evt:%d in state:%d", event, p_mcb->state);
180 void rfc_mx_sm_state_wait_conn_cnf (tRFC_MCB *p_mcb, UINT16 event, void *p_data)
186 RFCOMM_TRACE_ERROR2 ("Mx error state %d event %d", p_mcb->state, event);
192 rfc_mx_conf_ind (p_mcb, (tL2CAP_CFG_INFO *)p_data);
198 p_mcb->state = RFC_MX_STATE_IDLE;
200 PORT_StartCnf (p_mcb, *((UINT16 *)p_data));
203 p_mcb->state = RFC_MX_STATE_CONFIGURE;
204 rfc_mx_send_config_req (p_mcb);
208 p_mcb->state = RFC_MX_STATE_IDLE;
209 PORT_CloseInd (p_mcb);
213 p_mcb->state = RFC_MX_STATE_IDLE;
214 L2CA_DisconnectReq (p_mcb->lcid);
217 if (p_mcb->pending_lcid)
222 RFCOMM_TRACE_DEBUG2 ("RFCOMM MX retry as acceptor in collision case - evt:%d in state:%d", event, p_mcb->state);
224 rfc_save_lcid_mcb (NULL, p_mcb->lcid);
225 p_mcb->lcid = p_mcb->pending_lcid;
226 rfc_save_lcid_mcb (p_mcb, p_mcb->lcid);
228 p_mcb->is_initiator = FALSE;
233 if ((idx = p_mcb->port_inx[i]) != 0)
235 p_mcb->port_inx[i] = 0;
236 p_mcb->port_inx[i+1] = idx;
242 rfc_mx_sm_execute (p_mcb, RFC_MX_EVENT_CONN_IND, &(p_mcb->pending_id));
246 PORT_CloseInd (p_mcb);
250 RFCOMM_TRACE_EVENT2 ("RFCOMM MX ignored - evt:%d in state:%d", event, p_mcb->state);
264 void rfc_mx_sm_state_configure (tRFC_MCB *p_mcb, UINT16 event, void *p_data)
272 RFCOMM_TRACE_ERROR2 ("Mx error state %d event %d", p_mcb->state, event);
276 rfc_mx_conf_ind (p_mcb, (tL2CAP_CFG_INFO *)p_data);
280 rfc_mx_conf_cnf (p_mcb, (tL2CAP_CFG_INFO *)p_data);
284 p_mcb->state = RFC_MX_STATE_IDLE;
285 PORT_CloseInd (p_mcb);
289 p_mcb->state = RFC_MX_STATE_IDLE;
290 L2CA_DisconnectReq (p_mcb->lcid);
292 PORT_StartCnf (p_mcb, RFCOMM_ERROR);
295 RFCOMM_TRACE_EVENT2 ("RFCOMM MX ignored - evt:%d in state:%d", event, p_mcb->state);
309 void rfc_mx_sm_sabme_wait_ua (tRFC_MCB *p_mcb, UINT16 event, void *p_data)
316 RFCOMM_TRACE_ERROR2 ("Mx error state %d event %d", p_mcb->state, event);
322 rfc_mx_conf_ind (p_mcb, (tL2CAP_CFG_INFO *)p_data);
326 rfc_mx_conf_cnf (p_mcb, (tL2CAP_CFG_INFO *)p_data);
331 p_mcb->state = RFC_MX_STATE_IDLE;
332 PORT_CloseInd (p_mcb);
336 rfc_timer_stop (p_mcb);
338 p_mcb->state = RFC_MX_STATE_CONNECTED;
339 p_mcb->peer_ready = TRUE;
341 PORT_StartCnf (p_mcb, RFCOMM_SUCCESS);
345 rfc_timer_stop (p_mcb);
351 p_mcb->state = RFC_MX_STATE_IDLE;
352 L2CA_DisconnectReq (p_mcb->lcid);
354 PORT_StartCnf (p_mcb, RFCOMM_ERROR);
357 RFCOMM_TRACE_EVENT2 ("RFCOMM MX ignored - evt:%d in state:%d", event, p_mcb->state);
370 void rfc_mx_sm_state_wait_sabme (tRFC_MCB *p_mcb, UINT16 event, void *p_data)
376 p_mcb->state = RFC_MX_STATE_IDLE;
377 PORT_CloseInd (p_mcb);
382 if (p_mcb->pending_lcid)
384 p_mcb->pending_lcid = 0;
386 rfc_send_ua (p_mcb, RFCOMM_MX_DLCI);
388 rfc_timer_stop (p_mcb);
389 p_mcb->state = RFC_MX_STATE_CONNECTED;
390 p_mcb->peer_ready = TRUE;
393 PORT_StartCnf (p_mcb, RFCOMM_SUCCESS);
397 rfc_timer_stop (p_mcb);
398 PORT_StartInd (p_mcb);
404 rfc_send_dm (p_mcb, RFCOMM_MX_DLCI, TRUE);
407 rfc_send_ua (p_mcb, RFCOMM_MX_DLCI);
409 p_mcb->state = RFC_MX_STATE_CONNECTED;
410 p_mcb->peer_ready = TRUE;
417 p_mcb->state = RFC_MX_STATE_IDLE;
418 L2CA_DisconnectReq (p_mcb->lcid);
420 PORT_CloseInd (p_mcb);
423 RFCOMM_TRACE_EVENT2 ("RFCOMM MX ignored - evt:%d in state:%d", event, p_mcb->state);
437 void rfc_mx_sm_state_connected (tRFC_MCB *p_mcb, UINT16 event, void *p_data)
445 rfc_timer_start (p_mcb, RFC_DISC_TIMEOUT);
446 p_mcb->state = RFC_MX_STATE_DISC_WAIT_UA;
447 rfc_send_disc (p_mcb, RFCOMM_MX_DLCI);
451 p_mcb->state = RFC_MX_STATE_IDLE;
452 PORT_CloseInd (p_mcb);
458 rfc_send_ua (p_mcb, RFCOMM_MX_DLCI);
459 if (p_mcb->is_initiator)
461 L2CA_DisconnectReq (p_mcb->lcid);
464 PORT_CloseInd (p_mcb);
467 RFCOMM_TRACE_EVENT2 ("RFCOMM MX ignored - evt:%d in state:%d", event, p_mcb->state);
481 void rfc_mx_sm_state_disc_wait_ua (tRFC_MCB *p_mcb, UINT16 event, void *p_data)
491 L2CA_DisconnectReq (p_mcb->lcid);
493 if (p_mcb->restart_required)
496 if ((p_mcb->lcid = L2CA_ConnectReq (BT_PSM_RFCOMM, p_mcb->bd_addr)) == 0)
498 PORT_StartCnf (p_mcb, RFCOMM_ERROR);
502 rfc_save_lcid_mcb (p_mcb, p_mcb->lcid);
505 while ((p_buf = (BT_HDR *)GKI_dequeue(&p_mcb->cmd_q)) != NULL)
508 rfc_timer_start (p_mcb, RFC_MCB_INIT_INACT_TIMER);
510 p_mcb->is_initiator = TRUE;
511 p_mcb
512 p_mcb->local_cfg_sent = FALSE;
513 p_mcb->peer_cfg_rcvd = FALSE;
515 p_mcb->state = RFC_MX_STATE_WAIT_CONN_CNF;
518 rfc_release_multiplexer_channel (p_mcb);
522 rfc_send_ua (p_mcb, RFCOMM_MX_DLCI);
527 rfc_send_dm (p_mcb, RFCOMM_MX_DLCI, FALSE);
531 p_mcb->restart_required = TRUE;
535 p_mcb->state = RFC_MX_STATE_IDLE;
536 PORT_CloseInd (p_mcb);
545 RFCOMM_TRACE_EVENT2 ("RFCOMM MX ignored - evt:%d in state:%d", event, p_mcb->state);
557 static void rfc_mx_send_config_req (tRFC_MCB *p_mcb)
576 L2CA_ConfigReq (p_mcb->lcid, &cfg);
590 static void rfc_mx_conf_cnf (tRFC_MCB *p_mcb, tL2CAP_CFG_INFO *p_cfg)
596 if (p_mcb->is_initiator)
598 PORT_StartCnf (p_mcb, p_cfg->result);
599 L2CA_DisconnectReq (p_mcb->lcid);
601 rfc_release_multiplexer_channel (p_mcb);
605 p_mcb->local_cfg_sent = TRUE;
606 if ((p_mcb->state == RFC_MX_STATE_CONFIGURE) && p_mcb->peer_cfg_rcvd)
608 if (p_mcb->is_initiator)
610 p_mcb->state = RFC_MX_STATE_SABME_WAIT_UA;
611 rfc_send_sabme (p_mcb, RFCOMM_MX_DLCI);
612 rfc_timer_start (p_mcb, RFC_T1_TIMEOUT);
616 p_mcb->state = RFC_MX_STATE_WAIT_SABME;
617 rfc_timer_start (p_mcb, RFC_T2_TIMEOUT);
631 static void rfc_mx_conf_ind (tRFC_MCB *p_mcb, tL2CAP_CFG_INFO *p_cfg)
636 p_mcb->peer_l2cap_mtu = p_cfg->mtu - RFCOMM_MIN_OFFSET - 1;
638 p_mcb->peer_l2cap_mtu = L2CAP_DEFAULT_MTU - RFCOMM_MIN_OFFSET - 1;
646 L2CA_ConfigRsp (p_mcb->lcid, p_cfg);
648 p_mcb->peer_cfg_rcvd = TRUE;
649 if ((p_mcb->state == RFC_MX_STATE_CONFIGURE) && p_mcb->local_cfg_sent)
651 if (p_mcb->is_initiator)
653 p_mcb->state = RFC_MX_STATE_SABME_WAIT_UA;
654 rfc_send_sabme (p_mcb, RFCOMM_MX_DLCI);
655 rfc_timer_start (p_mcb, RFC_T1_TIMEOUT);
659 p_mcb->state = RFC_MX_STATE_WAIT_SABME;
660 rfc_timer_start (p_mcb, RFC_T2_TIMEOUT);