Lines Matching full:pcb

159 	(ng_btsocket_rfcomm_pcb_p pcb, u_int8_t cr, u_int8_t flow_control, 
168 (ng_btsocket_rfcomm_pcb_p pcb);
170 (ng_btsocket_rfcomm_pcb_p pcb);
172 (ng_btsocket_rfcomm_pcb_p pcb);
175 (ng_btsocket_rfcomm_pcb_p pcb, int limit);
177 (ng_btsocket_rfcomm_pcb_p pcb, int error);
184 (ng_btsocket_rfcomm_pcb_p pcb);
186 (ng_btsocket_rfcomm_pcb_p pcb);
380 ng_btsocket_rfcomm_pcb_p pcb = so2rfcomm_pcb(so); in ng_btsocket_rfcomm_attach() local
393 if (pcb != NULL) in ng_btsocket_rfcomm_attach()
404 /* Allocate the PCB */ in ng_btsocket_rfcomm_attach()
405 pcb = malloc(sizeof(*pcb), in ng_btsocket_rfcomm_attach()
407 if (pcb == NULL) in ng_btsocket_rfcomm_attach()
410 /* Link the PCB and the socket */ in ng_btsocket_rfcomm_attach()
411 so->so_pcb = (caddr_t) pcb; in ng_btsocket_rfcomm_attach()
412 pcb->so = so; in ng_btsocket_rfcomm_attach()
414 /* Initialize PCB */ in ng_btsocket_rfcomm_attach()
415 pcb->state = NG_BTSOCKET_RFCOMM_DLC_CLOSED; in ng_btsocket_rfcomm_attach()
416 pcb->flags = NG_BTSOCKET_RFCOMM_DLC_CFC; in ng_btsocket_rfcomm_attach()
418 pcb->lmodem = in ng_btsocket_rfcomm_attach()
419 pcb->rmodem = (RFCOMM_MODEM_RTC | RFCOMM_MODEM_RTR | RFCOMM_MODEM_DV); in ng_btsocket_rfcomm_attach()
421 pcb->mtu = RFCOMM_DEFAULT_MTU; in ng_btsocket_rfcomm_attach()
422 pcb->tx_cred = 0; in ng_btsocket_rfcomm_attach()
423 pcb->rx_cred = RFCOMM_DEFAULT_CREDITS; in ng_btsocket_rfcomm_attach()
425 mtx_init(&pcb->pcb_mtx, "btsocks_rfcomm_pcb_mtx", NULL, MTX_DEF); in ng_btsocket_rfcomm_attach()
426 callout_init_mtx(&pcb->timo, &pcb->pcb_mtx, 0); in ng_btsocket_rfcomm_attach()
428 /* Add the PCB to the list */ in ng_btsocket_rfcomm_attach()
430 LIST_INSERT_HEAD(&ng_btsocket_rfcomm_sockets, pcb, next); in ng_btsocket_rfcomm_attach()
444 ng_btsocket_rfcomm_pcb_t *pcb = so2rfcomm_pcb(so), *pcb1; in ng_btsocket_rfcomm_bind() local
447 if (pcb == NULL) in ng_btsocket_rfcomm_bind()
460 mtx_lock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_bind()
470 mtx_unlock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_bind()
479 bcopy(&sa->rfcomm_bdaddr, &pcb->src, sizeof(pcb->src)); in ng_btsocket_rfcomm_bind()
480 pcb->channel = sa->rfcomm_channel; in ng_btsocket_rfcomm_bind()
482 mtx_unlock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_bind()
495 ng_btsocket_rfcomm_pcb_t *pcb = so2rfcomm_pcb(so); in ng_btsocket_rfcomm_connect() local
501 if (pcb == NULL) in ng_btsocket_rfcomm_connect()
527 * Look for session between "pcb->src" and "sa->rfcomm_bdaddr" (dst) in ng_btsocket_rfcomm_connect()
532 s = ng_btsocket_rfcomm_session_by_addr(&pcb->src, &sa->rfcomm_bdaddr); in ng_btsocket_rfcomm_connect()
546 &pcb->src, &sa->rfcomm_bdaddr, td); in ng_btsocket_rfcomm_connect()
561 mtx_lock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_connect()
566 mtx_unlock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_connect()
586 bcopy(&sa->rfcomm_bdaddr, &pcb->dst, sizeof(pcb->dst)); in ng_btsocket_rfcomm_connect()
587 pcb->channel = sa->rfcomm_channel; in ng_btsocket_rfcomm_connect()
588 pcb->dlci = dlci; in ng_btsocket_rfcomm_connect()
590 LIST_INSERT_HEAD(&s->dlcs, pcb, session_next); in ng_btsocket_rfcomm_connect()
591 pcb->session = s; in ng_btsocket_rfcomm_connect()
593 ng_btsocket_rfcomm_timeout(pcb); in ng_btsocket_rfcomm_connect()
594 soisconnecting(pcb->so); in ng_btsocket_rfcomm_connect()
597 pcb->mtu = s->mtu; in ng_btsocket_rfcomm_connect()
598 bcopy(&so2l2cap_pcb(s->l2so)->src, &pcb->src, in ng_btsocket_rfcomm_connect()
599 sizeof(pcb->src)); in ng_btsocket_rfcomm_connect()
601 pcb->state = NG_BTSOCKET_RFCOMM_DLC_CONFIGURING; in ng_btsocket_rfcomm_connect()
603 error = ng_btsocket_rfcomm_send_pn(pcb); in ng_btsocket_rfcomm_connect()
607 pcb->state = NG_BTSOCKET_RFCOMM_DLC_W4_CONNECT; in ng_btsocket_rfcomm_connect()
615 mtx_unlock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_connect()
641 ng_btsocket_rfcomm_pcb_p pcb = so2rfcomm_pcb(so); in ng_btsocket_rfcomm_ctloutput() local
645 if (pcb == NULL) in ng_btsocket_rfcomm_ctloutput()
650 mtx_lock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_ctloutput()
656 error = sooptcopyout(sopt, &pcb->mtu, sizeof(pcb->mtu)); in ng_btsocket_rfcomm_ctloutput()
660 fcinfo.lmodem = pcb->lmodem; in ng_btsocket_rfcomm_ctloutput()
661 fcinfo.rmodem = pcb->rmodem; in ng_btsocket_rfcomm_ctloutput()
662 fcinfo.tx_cred = pcb->tx_cred; in ng_btsocket_rfcomm_ctloutput()
663 fcinfo.rx_cred = pcb->rx_cred; in ng_btsocket_rfcomm_ctloutput()
664 fcinfo.cfc = (pcb->flags & NG_BTSOCKET_RFCOMM_DLC_CFC)? in ng_btsocket_rfcomm_ctloutput()
690 mtx_unlock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_ctloutput()
702 ng_btsocket_rfcomm_pcb_p pcb = so2rfcomm_pcb(so); in ng_btsocket_rfcomm_detach() local
704 KASSERT(pcb != NULL, ("ng_btsocket_rfcomm_detach: pcb == NULL")); in ng_btsocket_rfcomm_detach()
706 mtx_lock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_detach()
708 switch (pcb->state) { in ng_btsocket_rfcomm_detach()
714 if (pcb->flags & NG_BTSOCKET_RFCOMM_DLC_TIMO) in ng_btsocket_rfcomm_detach()
715 ng_btsocket_rfcomm_untimeout(pcb); in ng_btsocket_rfcomm_detach()
717 if (pcb->state == NG_BTSOCKET_RFCOMM_DLC_W4_CONNECT) in ng_btsocket_rfcomm_detach()
718 pcb->flags |= NG_BTSOCKET_RFCOMM_DLC_DETACHED; in ng_btsocket_rfcomm_detach()
720 pcb->state = NG_BTSOCKET_RFCOMM_DLC_DISCONNECTING; in ng_btsocket_rfcomm_detach()
730 while (pcb->state != NG_BTSOCKET_RFCOMM_DLC_CLOSED) in ng_btsocket_rfcomm_detach()
731 msleep(&pcb->state, &pcb->pcb_mtx, PZERO, "rf_det", 0); in ng_btsocket_rfcomm_detach()
733 if (pcb->session != NULL) in ng_btsocket_rfcomm_detach()
734 panic("%s: pcb->session != NULL\n", __func__); in ng_btsocket_rfcomm_detach()
735 if (pcb->flags & NG_BTSOCKET_RFCOMM_DLC_TIMO) in ng_btsocket_rfcomm_detach()
737 __func__, pcb->flags); in ng_btsocket_rfcomm_detach()
740 LIST_REMOVE(pcb, next); in ng_btsocket_rfcomm_detach()
743 mtx_unlock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_detach()
745 mtx_destroy(&pcb->pcb_mtx); in ng_btsocket_rfcomm_detach()
746 bzero(pcb, sizeof(*pcb)); in ng_btsocket_rfcomm_detach()
747 free(pcb, M_NETGRAPH_BTSOCKET_RFCOMM); in ng_btsocket_rfcomm_detach()
760 ng_btsocket_rfcomm_pcb_p pcb = so2rfcomm_pcb(so); in ng_btsocket_rfcomm_disconnect() local
762 if (pcb == NULL) in ng_btsocket_rfcomm_disconnect()
765 mtx_lock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_disconnect()
767 if (pcb->state == NG_BTSOCKET_RFCOMM_DLC_DISCONNECTING) { in ng_btsocket_rfcomm_disconnect()
768 mtx_unlock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_disconnect()
773 if (pcb->flags & NG_BTSOCKET_RFCOMM_DLC_TIMO) in ng_btsocket_rfcomm_disconnect()
774 ng_btsocket_rfcomm_untimeout(pcb); in ng_btsocket_rfcomm_disconnect()
776 switch (pcb->state) { in ng_btsocket_rfcomm_disconnect()
786 pcb->state = NG_BTSOCKET_RFCOMM_DLC_DISCONNECTING; in ng_btsocket_rfcomm_disconnect()
798 __func__, pcb->state, pcb->flags); in ng_btsocket_rfcomm_disconnect()
802 mtx_unlock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_disconnect()
814 ng_btsocket_rfcomm_pcb_p pcb = so2rfcomm_pcb(so), pcb1; in ng_btsocket_rfcomm_listen() local
819 if (pcb == NULL) in ng_btsocket_rfcomm_listen()
821 if (pcb->channel > 30) in ng_btsocket_rfcomm_listen()
826 mtx_lock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_listen()
828 if (pcb->channel == 0) { in ng_btsocket_rfcomm_listen()
833 bcmp(&pcb1->src, &pcb->src, sizeof(pcb->src)) == 0) in ng_btsocket_rfcomm_listen()
836 for (pcb->channel = 30; pcb->channel > 0; pcb->channel --) in ng_btsocket_rfcomm_listen()
837 if (!(usedchannels & (1 << (pcb->channel - 1)))) in ng_btsocket_rfcomm_listen()
840 if (pcb->channel == 0) { in ng_btsocket_rfcomm_listen()
842 mtx_unlock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_listen()
850 mtx_unlock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_listen()
924 ng_btsocket_rfcomm_pcb_p pcb = so2rfcomm_pcb(so); in ng_btsocket_rfcomm_peeraddr() local
927 if (pcb == NULL) in ng_btsocket_rfcomm_peeraddr()
933 .rfcomm_channel = pcb->channel, in ng_btsocket_rfcomm_peeraddr()
935 bcopy(&pcb->dst, &rfcomm->rfcomm_bdaddr, sizeof(rfcomm->rfcomm_bdaddr)); in ng_btsocket_rfcomm_peeraddr()
948 ng_btsocket_rfcomm_pcb_t *pcb = so2rfcomm_pcb(so); in ng_btsocket_rfcomm_send() local
952 if (pcb == NULL || m == NULL || control != NULL) { in ng_btsocket_rfcomm_send()
957 mtx_lock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_send()
960 if (pcb->state != NG_BTSOCKET_RFCOMM_DLC_CONNECTED) { in ng_btsocket_rfcomm_send()
961 mtx_unlock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_send()
967 sbappend(&pcb->so->so_snd, m, flags); in ng_btsocket_rfcomm_send()
970 if (!(pcb->flags & NG_BTSOCKET_RFCOMM_DLC_SENDING)) { in ng_btsocket_rfcomm_send()
971 pcb->flags |= NG_BTSOCKET_RFCOMM_DLC_SENDING; in ng_btsocket_rfcomm_send()
975 mtx_unlock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_send()
990 ng_btsocket_rfcomm_pcb_p pcb = so2rfcomm_pcb(so); in ng_btsocket_rfcomm_sockaddr() local
993 if (pcb == NULL) in ng_btsocket_rfcomm_sockaddr()
999 .rfcomm_channel = pcb->channel, in ng_btsocket_rfcomm_sockaddr()
1001 bcopy(&pcb->src, &rfcomm->rfcomm_bdaddr, sizeof(rfcomm->rfcomm_bdaddr)); in ng_btsocket_rfcomm_sockaddr()
1142 ng_btsocket_rfcomm_pcb_p pcb = NULL, pcb1 = NULL; in ng_btsocket_rfcomm_connect_ind() local
1154 pcb = ng_btsocket_rfcomm_pcb_listener(&l2pcb->src, channel); in ng_btsocket_rfcomm_connect_ind()
1155 if (pcb == NULL) in ng_btsocket_rfcomm_connect_ind()
1164 mtx_lock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_connect_ind()
1166 CURVNET_SET(pcb->so->so_vnet); in ng_btsocket_rfcomm_connect_ind()
1167 so1 = sonewconn(pcb->so, 0); in ng_btsocket_rfcomm_connect_ind()
1170 mtx_unlock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_connect_ind()
1206 ng_btsocket_rfcomm_pcb_p pcb = NULL, pcb_next = NULL; in ng_btsocket_rfcomm_connect_cfm() local
1219 for (pcb = LIST_FIRST(&s->dlcs); pcb != NULL; ) { in ng_btsocket_rfcomm_connect_cfm()
1220 mtx_lock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_connect_cfm()
1221 pcb_next = LIST_NEXT(pcb, session_next); in ng_btsocket_rfcomm_connect_cfm()
1223 if (pcb->state == NG_BTSOCKET_RFCOMM_DLC_W4_CONNECT) { in ng_btsocket_rfcomm_connect_cfm()
1224 pcb->mtu = s->mtu; in ng_btsocket_rfcomm_connect_cfm()
1225 bcopy(&so2l2cap_pcb(s->l2so)->src, &pcb->src, in ng_btsocket_rfcomm_connect_cfm()
1226 sizeof(pcb->src)); in ng_btsocket_rfcomm_connect_cfm()
1228 error = ng_btsocket_rfcomm_send_pn(pcb); in ng_btsocket_rfcomm_connect_cfm()
1230 pcb->state = NG_BTSOCKET_RFCOMM_DLC_CONFIGURING; in ng_btsocket_rfcomm_connect_cfm()
1232 ng_btsocket_rfcomm_pcb_kill(pcb, error); in ng_btsocket_rfcomm_connect_cfm()
1235 mtx_unlock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_connect_cfm()
1236 pcb = pcb_next; in ng_btsocket_rfcomm_connect_cfm()
1649 ng_btsocket_rfcomm_pcb_p pcb = NULL, pcb_next = NULL; in ng_btsocket_rfcomm_session_clean() local
1659 for (pcb = LIST_FIRST(&s->dlcs); pcb != NULL; ) { in ng_btsocket_rfcomm_session_clean()
1660 mtx_lock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_session_clean()
1661 pcb_next = LIST_NEXT(pcb, session_next); in ng_btsocket_rfcomm_session_clean()
1665 __func__, pcb->dlci, pcb->state, pcb->flags); in ng_btsocket_rfcomm_session_clean()
1667 if (pcb->state == NG_BTSOCKET_RFCOMM_DLC_CONNECTED) in ng_btsocket_rfcomm_session_clean()
1672 ng_btsocket_rfcomm_pcb_kill(pcb, error); in ng_btsocket_rfcomm_session_clean()
1674 mtx_unlock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_session_clean()
1675 pcb = pcb_next; in ng_btsocket_rfcomm_session_clean()
1686 ng_btsocket_rfcomm_pcb_p pcb = NULL, pcb_next = NULL; in ng_btsocket_rfcomm_session_process_pcb() local
1696 for (pcb = LIST_FIRST(&s->dlcs); pcb != NULL; ) { in ng_btsocket_rfcomm_session_process_pcb()
1697 mtx_lock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_session_process_pcb()
1698 pcb_next = LIST_NEXT(pcb, session_next); in ng_btsocket_rfcomm_session_process_pcb()
1700 switch (pcb->state) { in ng_btsocket_rfcomm_session_process_pcb()
1707 if (pcb->flags & NG_BTSOCKET_RFCOMM_DLC_DETACHED) in ng_btsocket_rfcomm_session_process_pcb()
1708 ng_btsocket_rfcomm_pcb_kill(pcb, 0); in ng_btsocket_rfcomm_session_process_pcb()
1709 else if (pcb->flags & NG_BTSOCKET_RFCOMM_DLC_TIMEDOUT) in ng_btsocket_rfcomm_session_process_pcb()
1710 ng_btsocket_rfcomm_pcb_kill(pcb, ETIMEDOUT); in ng_btsocket_rfcomm_session_process_pcb()
1721 if (pcb->flags & NG_BTSOCKET_RFCOMM_DLC_TIMEDOUT) in ng_btsocket_rfcomm_session_process_pcb()
1722 ng_btsocket_rfcomm_pcb_kill(pcb, ETIMEDOUT); in ng_btsocket_rfcomm_session_process_pcb()
1735 error = ng_btsocket_rfcomm_pcb_send(pcb, ALOT); in ng_btsocket_rfcomm_session_process_pcb()
1737 ng_btsocket_rfcomm_pcb_kill(pcb, error); in ng_btsocket_rfcomm_session_process_pcb()
1750 if (!(pcb->flags & NG_BTSOCKET_RFCOMM_DLC_TIMO)) { in ng_btsocket_rfcomm_session_process_pcb()
1752 pcb->session, RFCOMM_FRAME_DISC, in ng_btsocket_rfcomm_session_process_pcb()
1753 pcb->dlci); in ng_btsocket_rfcomm_session_process_pcb()
1755 ng_btsocket_rfcomm_timeout(pcb); in ng_btsocket_rfcomm_session_process_pcb()
1757 ng_btsocket_rfcomm_pcb_kill(pcb, error); in ng_btsocket_rfcomm_session_process_pcb()
1758 } else if (pcb->flags & NG_BTSOCKET_RFCOMM_DLC_TIMEDOUT) in ng_btsocket_rfcomm_session_process_pcb()
1759 ng_btsocket_rfcomm_pcb_kill(pcb, ETIMEDOUT); in ng_btsocket_rfcomm_session_process_pcb()
1765 __func__, pcb->state, pcb->flags); in ng_btsocket_rfcomm_session_process_pcb()
1769 mtx_unlock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_session_process_pcb()
1770 pcb = pcb_next; in ng_btsocket_rfcomm_session_process_pcb()
1953 ng_btsocket_rfcomm_pcb_p pcb = NULL; in ng_btsocket_rfcomm_receive_sabm() local
2003 pcb = ng_btsocket_rfcomm_pcb_by_dlci(s, dlci); in ng_btsocket_rfcomm_receive_sabm()
2004 if (pcb != NULL) { in ng_btsocket_rfcomm_receive_sabm()
2005 mtx_lock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_receive_sabm()
2007 if (pcb->state != NG_BTSOCKET_RFCOMM_DLC_CONNECTING) { in ng_btsocket_rfcomm_receive_sabm()
2010 __func__, dlci, pcb->state, pcb->flags); in ng_btsocket_rfcomm_receive_sabm()
2011 mtx_unlock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_receive_sabm()
2016 ng_btsocket_rfcomm_untimeout(pcb); in ng_btsocket_rfcomm_receive_sabm()
2020 error = ng_btsocket_rfcomm_send_msc(pcb); in ng_btsocket_rfcomm_receive_sabm()
2023 pcb->state = NG_BTSOCKET_RFCOMM_DLC_CONNECTED; in ng_btsocket_rfcomm_receive_sabm()
2024 soisconnected(pcb->so); in ng_btsocket_rfcomm_receive_sabm()
2026 ng_btsocket_rfcomm_pcb_kill(pcb, error); in ng_btsocket_rfcomm_receive_sabm()
2028 mtx_unlock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_receive_sabm()
2038 pcb = ng_btsocket_rfcomm_connect_ind(s, RFCOMM_SRVCHANNEL(dlci)); in ng_btsocket_rfcomm_receive_sabm()
2039 if (pcb != NULL) { in ng_btsocket_rfcomm_receive_sabm()
2040 mtx_lock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_receive_sabm()
2042 pcb->dlci = dlci; in ng_btsocket_rfcomm_receive_sabm()
2046 error = ng_btsocket_rfcomm_send_msc(pcb); in ng_btsocket_rfcomm_receive_sabm()
2049 pcb->state = NG_BTSOCKET_RFCOMM_DLC_CONNECTED; in ng_btsocket_rfcomm_receive_sabm()
2050 soisconnected(pcb->so); in ng_btsocket_rfcomm_receive_sabm()
2052 ng_btsocket_rfcomm_pcb_kill(pcb, error); in ng_btsocket_rfcomm_receive_sabm()
2054 mtx_unlock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_receive_sabm()
2069 ng_btsocket_rfcomm_pcb_p pcb = NULL; in ng_btsocket_rfcomm_receive_disc() local
2092 pcb = ng_btsocket_rfcomm_pcb_by_dlci(s, dlci); in ng_btsocket_rfcomm_receive_disc()
2093 if (pcb != NULL) { in ng_btsocket_rfcomm_receive_disc()
2096 mtx_lock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_receive_disc()
2100 __func__, dlci, pcb->state, pcb->flags); in ng_btsocket_rfcomm_receive_disc()
2105 if (pcb->state == NG_BTSOCKET_RFCOMM_DLC_CONNECTED) in ng_btsocket_rfcomm_receive_disc()
2110 ng_btsocket_rfcomm_pcb_kill(pcb, err); in ng_btsocket_rfcomm_receive_disc()
2112 mtx_unlock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_receive_disc()
2132 ng_btsocket_rfcomm_pcb_p pcb = NULL; in ng_btsocket_rfcomm_receive_ua() local
2167 pcb = ng_btsocket_rfcomm_pcb_by_dlci(s, dlci); in ng_btsocket_rfcomm_receive_ua()
2168 if (pcb != NULL) { in ng_btsocket_rfcomm_receive_ua()
2169 mtx_lock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_receive_ua()
2173 __func__, dlci, pcb->state, pcb->flags); in ng_btsocket_rfcomm_receive_ua()
2175 switch (pcb->state) { in ng_btsocket_rfcomm_receive_ua()
2177 ng_btsocket_rfcomm_untimeout(pcb); in ng_btsocket_rfcomm_receive_ua()
2179 error = ng_btsocket_rfcomm_send_msc(pcb); in ng_btsocket_rfcomm_receive_ua()
2181 pcb->state = NG_BTSOCKET_RFCOMM_DLC_CONNECTED; in ng_btsocket_rfcomm_receive_ua()
2182 soisconnected(pcb->so); in ng_btsocket_rfcomm_receive_ua()
2187 ng_btsocket_rfcomm_pcb_kill(pcb, 0); in ng_btsocket_rfcomm_receive_ua()
2193 __func__, dlci, pcb->state, pcb->flags); in ng_btsocket_rfcomm_receive_ua()
2198 mtx_unlock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_receive_ua()
2216 ng_btsocket_rfcomm_pcb_p pcb = NULL; in ng_btsocket_rfcomm_receive_dm() local
2231 pcb = ng_btsocket_rfcomm_pcb_by_dlci(s, dlci); in ng_btsocket_rfcomm_receive_dm()
2232 if (pcb != NULL) { in ng_btsocket_rfcomm_receive_dm()
2233 mtx_lock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_receive_dm()
2237 __func__, dlci, pcb->state, pcb->flags); in ng_btsocket_rfcomm_receive_dm()
2239 if (pcb->state == NG_BTSOCKET_RFCOMM_DLC_CONNECTED) in ng_btsocket_rfcomm_receive_dm()
2244 ng_btsocket_rfcomm_pcb_kill(pcb, error); in ng_btsocket_rfcomm_receive_dm()
2246 mtx_unlock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_receive_dm()
2263 ng_btsocket_rfcomm_pcb_p pcb = NULL; in ng_btsocket_rfcomm_receive_uih() local
2282 pcb = ng_btsocket_rfcomm_pcb_by_dlci(s, dlci); in ng_btsocket_rfcomm_receive_uih()
2283 if (pcb == NULL) { in ng_btsocket_rfcomm_receive_uih()
2290 mtx_lock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_receive_uih()
2293 if (pcb->state != NG_BTSOCKET_RFCOMM_DLC_CONNECTED) { in ng_btsocket_rfcomm_receive_uih()
2296 __func__, dlci, pcb->state, pcb->flags); in ng_btsocket_rfcomm_receive_uih()
2302 if (((pcb->flags & NG_BTSOCKET_RFCOMM_DLC_CFC) && pcb->rx_cred <= 0) || in ng_btsocket_rfcomm_receive_uih()
2303 (pcb->lmodem & RFCOMM_MODEM_FC)) { in ng_btsocket_rfcomm_receive_uih()
2307 __func__, dlci, pcb->state, pcb->flags, in ng_btsocket_rfcomm_receive_uih()
2308 pcb->rx_cred, pcb->lmodem); in ng_btsocket_rfcomm_receive_uih()
2313 if ((pcb->flags & NG_BTSOCKET_RFCOMM_DLC_CFC) && pf) { in ng_btsocket_rfcomm_receive_uih()
2317 __func__, *mtod(m0, u_int8_t *), dlci, pcb->state, in ng_btsocket_rfcomm_receive_uih()
2318 pcb->flags, pcb->rx_cred, pcb->tx_cred); in ng_btsocket_rfcomm_receive_uih()
2320 pcb->tx_cred += *mtod(m0, u_int8_t *); in ng_btsocket_rfcomm_receive_uih()
2324 ng_btsocket_rfcomm_pcb_send(pcb, ALOT); in ng_btsocket_rfcomm_receive_uih()
2330 if (pcb->flags & NG_BTSOCKET_RFCOMM_DLC_CFC) { in ng_btsocket_rfcomm_receive_uih()
2332 if (-- pcb->rx_cred <= RFCOMM_MAX_CREDITS / 2) in ng_btsocket_rfcomm_receive_uih()
2333 ng_btsocket_rfcomm_send_credits(pcb); in ng_btsocket_rfcomm_receive_uih()
2337 "rx_cred=%d, tx_cred=%d\n", __func__, dlci, pcb->state, pcb->flags, in ng_btsocket_rfcomm_receive_uih()
2338 pcb->rx_cred, pcb->tx_cred); in ng_btsocket_rfcomm_receive_uih()
2342 if (m0->m_pkthdr.len > pcb->mtu) { in ng_btsocket_rfcomm_receive_uih()
2345 __func__, dlci, pcb->state, pcb->flags, in ng_btsocket_rfcomm_receive_uih()
2346 pcb->mtu, m0->m_pkthdr.len); in ng_btsocket_rfcomm_receive_uih()
2349 } else if (m0->m_pkthdr.len > sbspace(&pcb->so->so_rcv)) { in ng_btsocket_rfcomm_receive_uih()
2359 __func__, dlci, pcb->state, pcb->flags, in ng_btsocket_rfcomm_receive_uih()
2360 m0->m_pkthdr.len, sbspace(&pcb->so->so_rcv)); in ng_btsocket_rfcomm_receive_uih()
2365 sbappend(&pcb->so->so_rcv, m0, 0); in ng_btsocket_rfcomm_receive_uih()
2368 sorwakeup(pcb->so); in ng_btsocket_rfcomm_receive_uih()
2372 mtx_unlock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_receive_uih()
2572 ng_btsocket_rfcomm_pcb_t *pcb = NULL; in ng_btsocket_rfcomm_receive_msc() local
2585 pcb = ng_btsocket_rfcomm_pcb_by_dlci(s, RFCOMM_DLCI(msc->address)); in ng_btsocket_rfcomm_receive_msc()
2586 if (pcb == NULL) { in ng_btsocket_rfcomm_receive_msc()
2595 mtx_lock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_receive_msc()
2597 if (pcb->state != NG_BTSOCKET_RFCOMM_DLC_CONNECTING && in ng_btsocket_rfcomm_receive_msc()
2598 pcb->state != NG_BTSOCKET_RFCOMM_DLC_CONNECTED) { in ng_btsocket_rfcomm_receive_msc()
2602 pcb->state); in ng_btsocket_rfcomm_receive_msc()
2604 mtx_unlock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_receive_msc()
2610 pcb->rmodem = msc->modem; /* Update remote port signals */ in ng_btsocket_rfcomm_receive_msc()
2618 if (!(pcb->rmodem & RFCOMM_MODEM_FC) && in ng_btsocket_rfcomm_receive_msc()
2619 !(pcb->flags & NG_BTSOCKET_RFCOMM_DLC_CFC)) in ng_btsocket_rfcomm_receive_msc()
2620 ng_btsocket_rfcomm_pcb_send(pcb, ALOT); in ng_btsocket_rfcomm_receive_msc()
2623 mtx_unlock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_receive_msc()
2788 ng_btsocket_rfcomm_pcb_t *pcb = NULL; in ng_btsocket_rfcomm_receive_pn() local
2810 pcb = ng_btsocket_rfcomm_pcb_by_dlci(s, pn->dlci); in ng_btsocket_rfcomm_receive_pn()
2811 if (pcb != NULL) { in ng_btsocket_rfcomm_receive_pn()
2812 mtx_lock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_receive_pn()
2816 ng_btsocket_rfcomm_set_pn(pcb, 1, pn->flow_control, in ng_btsocket_rfcomm_receive_pn()
2819 if (pcb->flags & NG_BTSOCKET_RFCOMM_DLC_CFC) { in ng_btsocket_rfcomm_receive_pn()
2833 if (pcb->state == NG_BTSOCKET_RFCOMM_DLC_CONFIGURING) { in ng_btsocket_rfcomm_receive_pn()
2834 ng_btsocket_rfcomm_set_pn(pcb, 0, in ng_btsocket_rfcomm_receive_pn()
2837 pcb->state = NG_BTSOCKET_RFCOMM_DLC_CONNECTING; in ng_btsocket_rfcomm_receive_pn()
2843 __func__, pn->dlci, pcb->state); in ng_btsocket_rfcomm_receive_pn()
2848 mtx_unlock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_receive_pn()
2851 pcb = ng_btsocket_rfcomm_connect_ind(s, in ng_btsocket_rfcomm_receive_pn()
2853 if (pcb != NULL) { in ng_btsocket_rfcomm_receive_pn()
2854 mtx_lock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_receive_pn()
2856 pcb->dlci = pn->dlci; in ng_btsocket_rfcomm_receive_pn()
2858 ng_btsocket_rfcomm_set_pn(pcb, 1, pn->flow_control, in ng_btsocket_rfcomm_receive_pn()
2861 if (pcb->flags & NG_BTSOCKET_RFCOMM_DLC_CFC) { in ng_btsocket_rfcomm_receive_pn()
2875 ng_btsocket_rfcomm_timeout(pcb); in ng_btsocket_rfcomm_receive_pn()
2876 pcb->state = NG_BTSOCKET_RFCOMM_DLC_CONNECTING; in ng_btsocket_rfcomm_receive_pn()
2877 soisconnecting(pcb->so); in ng_btsocket_rfcomm_receive_pn()
2879 ng_btsocket_rfcomm_pcb_kill(pcb, error); in ng_btsocket_rfcomm_receive_pn()
2881 mtx_unlock(&pcb->pcb_mtx); in ng_btsocket_rfcomm_receive_pn()
2895 * Set PN parameters for dlci. Caller must hold pcb->pcb_mtx.
2917 ng_btsocket_rfcomm_set_pn(ng_btsocket_rfcomm_pcb_p pcb, u_int8_t cr, in ng_btsocket_rfcomm_set_pn() argument
2920 mtx_assert(&pcb->pcb_mtx, MA_OWNED); in ng_btsocket_rfcomm_set_pn()
2922 pcb->mtu = le16toh(mtu); in ng_btsocket_rfcomm_set_pn()
2926 pcb->flags |= NG_BTSOCKET_RFCOMM_DLC_CFC; in ng_btsocket_rfcomm_set_pn()
2927 pcb->tx_cred = credits; in ng_btsocket_rfcomm_set_pn()
2929 pcb->flags &= ~NG_BTSOCKET_RFCOMM_DLC_CFC; in ng_btsocket_rfcomm_set_pn()
2930 pcb->tx_cred = 0; in ng_btsocket_rfcomm_set_pn()
2934 pcb->flags |= NG_BTSOCKET_RFCOMM_DLC_CFC; in ng_btsocket_rfcomm_set_pn()
2935 pcb->tx_cred = credits; in ng_btsocket_rfcomm_set_pn()
2937 pcb->flags &= ~NG_BTSOCKET_RFCOMM_DLC_CFC; in ng_btsocket_rfcomm_set_pn()
2938 pcb->tx_cred = 0; in ng_btsocket_rfcomm_set_pn()
2944 __func__, cr, pcb->dlci, pcb->state, pcb->flags, pcb->mtu, in ng_btsocket_rfcomm_set_pn()
2945 pcb->rx_cred, pcb->tx_cred); in ng_btsocket_rfcomm_set_pn()
3075 * Send MSC request. Caller must hold pcb->pcb_mtx and pcb->session->session_mtx
3079 ng_btsocket_rfcomm_send_msc(ng_btsocket_rfcomm_pcb_p pcb) in ng_btsocket_rfcomm_send_msc() argument
3085 mtx_assert(&pcb->session->session_mtx, MA_OWNED); in ng_btsocket_rfcomm_send_msc()
3086 mtx_assert(&pcb->pcb_mtx, MA_OWNED); in ng_btsocket_rfcomm_send_msc()
3100 msc->address = RFCOMM_MKADDRESS(1, pcb->dlci); in ng_btsocket_rfcomm_send_msc()
3101 msc->modem = pcb->lmodem; in ng_btsocket_rfcomm_send_msc()
3105 __func__, pcb->dlci, pcb->state, pcb->flags, msc->address, in ng_btsocket_rfcomm_send_msc()
3108 return (ng_btsocket_rfcomm_send_uih(pcb->session, in ng_btsocket_rfcomm_send_msc()
3109 RFCOMM_MKADDRESS(INITIATOR(pcb->session), 0), 0, 0, m)); in ng_btsocket_rfcomm_send_msc()
3113 * Send PN request. Caller must hold pcb->pcb_mtx and pcb->session->session_mtx
3117 ng_btsocket_rfcomm_send_pn(ng_btsocket_rfcomm_pcb_p pcb) in ng_btsocket_rfcomm_send_pn() argument
3123 mtx_assert(&pcb->session->session_mtx, MA_OWNED); in ng_btsocket_rfcomm_send_pn()
3124 mtx_assert(&pcb->pcb_mtx, MA_OWNED); in ng_btsocket_rfcomm_send_pn()
3138 pn->dlci = pcb->dlci; in ng_btsocket_rfcomm_send_pn()
3145 pn->priority = (pcb->dlci < 56)? (((pcb->dlci >> 3) << 3) + 7) : 61; in ng_btsocket_rfcomm_send_pn()
3147 pn->mtu = htole16(pcb->mtu); in ng_btsocket_rfcomm_send_pn()
3150 if (pcb->flags & NG_BTSOCKET_RFCOMM_DLC_CFC) { in ng_btsocket_rfcomm_send_pn()
3152 pn->credits = pcb->rx_cred; in ng_btsocket_rfcomm_send_pn()
3160 "credits=%d\n", __func__, pcb->dlci, pcb->state, pcb->flags, pcb->mtu, in ng_btsocket_rfcomm_send_pn()
3163 return (ng_btsocket_rfcomm_send_uih(pcb->session, in ng_btsocket_rfcomm_send_pn()
3164 RFCOMM_MKADDRESS(INITIATOR(pcb->session), 0), 0, 0, m)); in ng_btsocket_rfcomm_send_pn()
3172 ng_btsocket_rfcomm_send_credits(ng_btsocket_rfcomm_pcb_p pcb) in ng_btsocket_rfcomm_send_credits() argument
3177 mtx_assert(&pcb->pcb_mtx, MA_OWNED); in ng_btsocket_rfcomm_send_credits()
3178 mtx_assert(&pcb->session->session_mtx, MA_OWNED); in ng_btsocket_rfcomm_send_credits()
3183 __func__, pcb->dlci, pcb->state, pcb->flags, pcb->mtu, in ng_btsocket_rfcomm_send_credits()
3184 sbspace(&pcb->so->so_rcv), pcb->tx_cred, pcb->rx_cred); in ng_btsocket_rfcomm_send_credits()
3186 credits = sbspace(&pcb->so->so_rcv) / pcb->mtu; in ng_btsocket_rfcomm_send_credits()
3188 if (pcb->rx_cred + credits > RFCOMM_MAX_CREDITS) in ng_btsocket_rfcomm_send_credits()
3189 credits = RFCOMM_MAX_CREDITS - pcb->rx_cred; in ng_btsocket_rfcomm_send_credits()
3192 pcb->session, in ng_btsocket_rfcomm_send_credits()
3193 RFCOMM_MKADDRESS(INITIATOR(pcb->session), in ng_btsocket_rfcomm_send_credits()
3194 pcb->dlci), 1, credits, NULL); in ng_btsocket_rfcomm_send_credits()
3196 pcb->rx_cred += credits; in ng_btsocket_rfcomm_send_credits()
3200 "rx_cred=%d, tx_cred=%d\n", __func__, credits, pcb->dlci, pcb->state, in ng_btsocket_rfcomm_send_credits()
3201 pcb->flags, pcb->rx_cred, pcb->tx_cred); in ng_btsocket_rfcomm_send_credits()
3206 __func__, error, pcb->dlci, pcb->state, in ng_btsocket_rfcomm_send_credits()
3207 pcb->flags, pcb->mtu, sbspace(&pcb->so->so_rcv), in ng_btsocket_rfcomm_send_credits()
3208 pcb->tx_cred, pcb->rx_cred); in ng_btsocket_rfcomm_send_credits()
3222 * Caller must hold pcb->pcb_mtx and pcb->session->session_mtx
3226 ng_btsocket_rfcomm_pcb_send(ng_btsocket_rfcomm_pcb_p pcb, int limit) in ng_btsocket_rfcomm_pcb_send() argument
3231 mtx_assert(&pcb->session->session_mtx, MA_OWNED); in ng_btsocket_rfcomm_pcb_send()
3232 mtx_assert(&pcb->pcb_mtx, MA_OWNED); in ng_btsocket_rfcomm_pcb_send()
3234 if (pcb->flags & NG_BTSOCKET_RFCOMM_DLC_CFC) in ng_btsocket_rfcomm_pcb_send()
3235 limit = min(limit, pcb->tx_cred); in ng_btsocket_rfcomm_pcb_send()
3236 else if (!(pcb->rmodem & RFCOMM_MODEM_FC)) in ng_btsocket_rfcomm_pcb_send()
3245 __func__, pcb->dlci, pcb->flags, pcb->rmodem, in ng_btsocket_rfcomm_pcb_send()
3246 pcb->tx_cred); in ng_btsocket_rfcomm_pcb_send()
3252 length = min(pcb->mtu, sbavail(&pcb->so->so_snd)); in ng_btsocket_rfcomm_pcb_send()
3257 m = ng_btsocket_rfcomm_prepare_packet(&pcb->so->so_snd, length); in ng_btsocket_rfcomm_pcb_send()
3263 sbdrop(&pcb->so->so_snd, length); in ng_btsocket_rfcomm_pcb_send()
3265 error = ng_btsocket_rfcomm_send_uih(pcb->session, in ng_btsocket_rfcomm_pcb_send()
3266 RFCOMM_MKADDRESS(INITIATOR(pcb->session), in ng_btsocket_rfcomm_pcb_send()
3267 pcb->dlci), 0, 0, m); in ng_btsocket_rfcomm_pcb_send()
3272 if (pcb->flags & NG_BTSOCKET_RFCOMM_DLC_CFC) in ng_btsocket_rfcomm_pcb_send()
3273 pcb->tx_cred -= sent; in ng_btsocket_rfcomm_pcb_send()
3276 pcb->flags &= ~NG_BTSOCKET_RFCOMM_DLC_SENDING; in ng_btsocket_rfcomm_pcb_send()
3277 sowwakeup(pcb->so); in ng_btsocket_rfcomm_pcb_send()
3286 * Caller must hold pcb->pcb_mtx and pcb->session->session_mtx
3290 ng_btsocket_rfcomm_pcb_kill(ng_btsocket_rfcomm_pcb_p pcb, int error) in ng_btsocket_rfcomm_pcb_kill() argument
3292 ng_btsocket_rfcomm_session_p s = pcb->session; in ng_btsocket_rfcomm_pcb_kill()
3296 __func__, pcb->so, pcb->dlci, pcb->state, pcb->flags, error); in ng_btsocket_rfcomm_pcb_kill()
3298 if (pcb->session == NULL) in ng_btsocket_rfcomm_pcb_kill()
3299 panic("%s: DLC without session, pcb=%p, state=%d, flags=%#x\n", in ng_btsocket_rfcomm_pcb_kill()
3300 __func__, pcb, pcb->state, pcb->flags); in ng_btsocket_rfcomm_pcb_kill()
3302 mtx_assert(&pcb->session->session_mtx, MA_OWNED); in ng_btsocket_rfcomm_pcb_kill()
3303 mtx_assert(&pcb->pcb_mtx, MA_OWNED); in ng_btsocket_rfcomm_pcb_kill()
3305 if (pcb->flags & NG_BTSOCKET_RFCOMM_DLC_TIMO) in ng_btsocket_rfcomm_pcb_kill()
3306 ng_btsocket_rfcomm_untimeout(pcb); in ng_btsocket_rfcomm_pcb_kill()
3309 LIST_REMOVE(pcb, session_next); in ng_btsocket_rfcomm_pcb_kill()
3310 pcb->session = NULL; in ng_btsocket_rfcomm_pcb_kill()
3313 pcb->state = NG_BTSOCKET_RFCOMM_DLC_CLOSED; in ng_btsocket_rfcomm_pcb_kill()
3314 pcb->so->so_error = error; in ng_btsocket_rfcomm_pcb_kill()
3315 soisdisconnected(pcb->so); in ng_btsocket_rfcomm_pcb_kill()
3316 wakeup(&pcb->state); in ng_btsocket_rfcomm_pcb_kill()
3367 ng_btsocket_rfcomm_pcb_p pcb = NULL; in ng_btsocket_rfcomm_pcb_by_dlci() local
3371 LIST_FOREACH(pcb, &s->dlcs, session_next) in ng_btsocket_rfcomm_pcb_by_dlci()
3372 if (pcb->dlci == dlci) in ng_btsocket_rfcomm_pcb_by_dlci()
3375 return (pcb); in ng_btsocket_rfcomm_pcb_by_dlci()
3385 ng_btsocket_rfcomm_pcb_p pcb = NULL, pcb1 = NULL; in ng_btsocket_rfcomm_pcb_listener() local
3389 LIST_FOREACH(pcb, &ng_btsocket_rfcomm_sockets, next) { in ng_btsocket_rfcomm_pcb_listener()
3390 if (pcb->channel != channel || !SOLISTENING(pcb->so)) in ng_btsocket_rfcomm_pcb_listener()
3393 if (bcmp(&pcb->src, src, sizeof(*src)) == 0) in ng_btsocket_rfcomm_pcb_listener()
3396 if (bcmp(&pcb->src, NG_HCI_BDADDR_ANY, sizeof(bdaddr_t)) == 0) in ng_btsocket_rfcomm_pcb_listener()
3397 pcb1 = pcb; in ng_btsocket_rfcomm_pcb_listener()
3402 return ((pcb != NULL)? pcb : pcb1); in ng_btsocket_rfcomm_pcb_listener()
3416 ng_btsocket_rfcomm_timeout(ng_btsocket_rfcomm_pcb_p pcb) in ng_btsocket_rfcomm_timeout() argument
3418 mtx_assert(&pcb->pcb_mtx, MA_OWNED); in ng_btsocket_rfcomm_timeout()
3420 if (!(pcb->flags & NG_BTSOCKET_RFCOMM_DLC_TIMO)) { in ng_btsocket_rfcomm_timeout()
3421 pcb->flags |= NG_BTSOCKET_RFCOMM_DLC_TIMO; in ng_btsocket_rfcomm_timeout()
3422 pcb->flags &= ~NG_BTSOCKET_RFCOMM_DLC_TIMEDOUT; in ng_btsocket_rfcomm_timeout()
3423 callout_reset(&pcb->timo, ng_btsocket_rfcomm_timo * hz, in ng_btsocket_rfcomm_timeout()
3424 ng_btsocket_rfcomm_process_timeout, pcb); in ng_btsocket_rfcomm_timeout()
3430 * Unset pcb timeout. Caller MUST hold pcb_mtx
3434 ng_btsocket_rfcomm_untimeout(ng_btsocket_rfcomm_pcb_p pcb) in ng_btsocket_rfcomm_untimeout() argument
3436 mtx_assert(&pcb->pcb_mtx, MA_OWNED); in ng_btsocket_rfcomm_untimeout()
3438 if (pcb->flags & NG_BTSOCKET_RFCOMM_DLC_TIMO) { in ng_btsocket_rfcomm_untimeout()
3439 callout_stop(&pcb->timo); in ng_btsocket_rfcomm_untimeout()
3440 pcb->flags &= ~NG_BTSOCKET_RFCOMM_DLC_TIMO; in ng_btsocket_rfcomm_untimeout()
3441 pcb->flags &= ~NG_BTSOCKET_RFCOMM_DLC_TIMEDOUT; in ng_btsocket_rfcomm_untimeout()
3447 * Process pcb timeout
3453 ng_btsocket_rfcomm_pcb_p pcb = (ng_btsocket_rfcomm_pcb_p) xpcb; in ng_btsocket_rfcomm_process_timeout() local
3455 mtx_assert(&pcb->pcb_mtx, MA_OWNED); in ng_btsocket_rfcomm_process_timeout()
3459 __func__, pcb->so, pcb->dlci, pcb->state, pcb->flags); in ng_btsocket_rfcomm_process_timeout()
3461 pcb->flags &= ~NG_BTSOCKET_RFCOMM_DLC_TIMO; in ng_btsocket_rfcomm_process_timeout()
3462 pcb->flags |= NG_BTSOCKET_RFCOMM_DLC_TIMEDOUT; in ng_btsocket_rfcomm_process_timeout()
3464 switch (pcb->state) { in ng_btsocket_rfcomm_process_timeout()
3467 pcb->state = NG_BTSOCKET_RFCOMM_DLC_DISCONNECTING; in ng_btsocket_rfcomm_process_timeout()
3477 __func__, pcb->dlci, pcb->state, pcb->flags); in ng_btsocket_rfcomm_process_timeout()