• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/sys/netgraph/bluetooth/socket/

Lines Matching refs:pcb

419 			ng_btsocket_l2cap_raw_pcb_p	pcb = NULL;
423 LIST_FOREACH(pcb,&ng_btsocket_l2cap_raw_sockets,next) {
424 mtx_lock(&pcb->pcb_mtx);
426 if (pcb->token == msg->header.token) {
427 pcb->msg = msg;
429 wakeup(&pcb->msg);
430 mtx_unlock(&pcb->pcb_mtx);
434 mtx_unlock(&pcb->pcb_mtx);
461 ng_btsocket_l2cap_raw_pcb_p pcb = NULL;
470 LIST_FOREACH(pcb, &ng_btsocket_l2cap_raw_sockets, next) {
471 mtx_lock(&pcb->pcb_mtx);
473 if (pcb->rt != NULL &&
474 pcb->rt->hook != NULL && NG_HOOK_NOT_VALID(pcb->rt->hook)) {
475 if (pcb->so != NULL &&
476 pcb->so->so_state & SS_ISCONNECTED)
477 soisdisconnected(pcb->so);
479 pcb->rt = NULL;
482 mtx_unlock(&pcb->pcb_mtx);
611 ng_btsocket_l2cap_raw_pcb_p pcb = so2l2cap_raw_pcb(so);
614 if (pcb != NULL)
629 pcb = malloc(sizeof(*pcb),
631 if (pcb == NULL)
635 so->so_pcb = (caddr_t) pcb;
636 pcb->so = so;
639 pcb->flags |= NG_BTSOCKET_L2CAP_RAW_PRIVILEGED;
641 mtx_init(&pcb->pcb_mtx, "btsocks_l2cap_raw_pcb_mtx", NULL, MTX_DEF);
645 LIST_INSERT_HEAD(&ng_btsocket_l2cap_raw_sockets, pcb, next);
659 ng_btsocket_l2cap_raw_pcb_t *pcb = so2l2cap_raw_pcb(so);
663 if (pcb == NULL)
696 mtx_lock(&pcb->pcb_mtx);
697 bcopy(&sa->l2cap_bdaddr, &pcb->src, sizeof(pcb->src));
698 pcb->rt = rt;
699 mtx_unlock(&pcb->pcb_mtx);
712 ng_btsocket_l2cap_raw_pcb_t *pcb = so2l2cap_raw_pcb(so);
717 if (pcb == NULL)
733 mtx_lock(&pcb->pcb_mtx);
735 bcopy(&sa->l2cap_bdaddr, &pcb->dst, sizeof(pcb->dst));
737 if (bcmp(&pcb->src, &pcb->dst, sizeof(pcb->src)) == 0) {
738 mtx_unlock(&pcb->pcb_mtx);
747 if (pcb->rt != NULL) {
749 mtx_unlock(&pcb->pcb_mtx);
764 if (bcmp(&pcb->dst, &rt->src, sizeof(rt->src)) != 0)
771 pcb->rt = rt;
772 bcopy(&rt->src, &pcb->src, sizeof(pcb->src));
779 mtx_unlock(&pcb->pcb_mtx);
792 ng_btsocket_l2cap_raw_pcb_p pcb = so2l2cap_raw_pcb(so);
796 if (pcb == NULL)
801 mtx_lock(&pcb->pcb_mtx);
804 if (pcb->rt == NULL) {
805 mtx_unlock(&pcb->pcb_mtx);
810 if (pcb->token != 0) {
811 mtx_unlock(&pcb->pcb_mtx);
820 error = ng_btsocket_l2cap_raw_send_sync_ngmsg(pcb,
829 error = ng_btsocket_l2cap_raw_send_sync_ngmsg(pcb,
838 if (pcb->flags & NG_BTSOCKET_L2CAP_RAW_PRIVILEGED)
839 error = ng_btsocket_l2cap_raw_send_ngmsg(pcb->rt->hook,
855 mtx_unlock(&pcb->pcb_mtx);
862 mtx_unlock(&pcb->pcb_mtx);
866 pcb->token = msg->header.token;
867 pcb->msg = NULL;
870 pcb->rt->hook, 0);
872 pcb->token = 0;
873 mtx_unlock(&pcb->pcb_mtx);
877 error = msleep(&pcb->msg, &pcb->pcb_mtx, PZERO|PCATCH, "l2ctl",
879 pcb->token = 0;
882 mtx_unlock(&pcb->pcb_mtx);
886 msg = pcb->msg;
887 pcb->msg = NULL;
889 mtx_unlock(&pcb->pcb_mtx);
919 mtx_unlock(&pcb->pcb_mtx);
926 mtx_unlock(&pcb->pcb_mtx);
930 pcb->token = msg->header.token;
931 pcb->msg = NULL;
934 pcb->rt->hook, 0);
936 pcb->token = 0;
937 mtx_unlock(&pcb->pcb_mtx);
941 error = msleep(&pcb->msg, &pcb->pcb_mtx, PZERO|PCATCH, "l2ctl",
943 pcb->token = 0;
946 mtx_unlock(&pcb->pcb_mtx);
950 msg = pcb->msg;
951 pcb->msg = NULL;
953 mtx_unlock(&pcb->pcb_mtx);
982 mtx_unlock(&pcb->pcb_mtx);
990 mtx_unlock(&pcb->pcb_mtx);
994 pcb->token = msg->header.token;
995 pcb->msg = NULL;
998 bcopy(&pcb->dst, &ip->bdaddr, sizeof(ip->bdaddr));
1002 mtx_unlock(&pcb->pcb_mtx);
1004 mtx_lock(&pcb->pcb_mtx);
1008 pcb->token = 0;
1009 mtx_unlock(&pcb->pcb_mtx);
1015 pcb->rt->hook, 0);
1017 pcb->token = 0;
1018 mtx_unlock(&pcb->pcb_mtx);
1022 error = msleep(&pcb->msg, &pcb->pcb_mtx, PZERO|PCATCH, "l2ctl",
1024 pcb->token = 0;
1027 mtx_unlock(&pcb->pcb_mtx);
1031 msg = pcb->msg;
1032 pcb->msg = NULL;
1034 mtx_unlock(&pcb->pcb_mtx);
1059 if (!(pcb->flags & NG_BTSOCKET_L2CAP_RAW_PRIVILEGED)) {
1060 mtx_unlock(&pcb->pcb_mtx);
1065 mtx_unlock(&pcb->pcb_mtx);
1073 mtx_unlock(&pcb->pcb_mtx);
1077 pcb->token = msg->header.token;
1078 pcb->msg = NULL;
1081 bcopy(&pcb->dst, &ip->bdaddr, sizeof(ip->bdaddr));
1085 pcb->rt->hook, 0);
1087 pcb->token = 0;
1088 mtx_unlock(&pcb->pcb_mtx);
1092 error = msleep(&pcb->msg, &pcb->pcb_mtx, PZERO|PCATCH, "l2ctl",
1094 pcb->token = 0;
1097 mtx_unlock(&pcb->pcb_mtx);
1101 msg = pcb->msg;
1102 pcb->msg = NULL;
1104 mtx_unlock(&pcb->pcb_mtx);
1127 error = ng_btsocket_l2cap_raw_send_sync_ngmsg(pcb,
1136 if (pcb->flags & NG_BTSOCKET_L2CAP_RAW_PRIVILEGED)
1137 error = ng_btsocket_l2cap_raw_send_ngmsg(pcb->rt->hook,
1149 mtx_unlock(&pcb->pcb_mtx);
1161 ng_btsocket_l2cap_raw_pcb_p pcb = so2l2cap_raw_pcb(so);
1163 KASSERT(pcb != NULL, ("nt_btsocket_l2cap_raw_detach: pcb == NULL"));
1168 mtx_lock(&pcb->pcb_mtx);
1170 LIST_REMOVE(pcb, next);
1172 mtx_unlock(&pcb->pcb_mtx);
1175 mtx_destroy(&pcb->pcb_mtx);
1177 bzero(pcb, sizeof(*pcb));
1178 free(pcb, M_NETGRAPH_BTSOCKET_L2CAP_RAW);
1190 ng_btsocket_l2cap_raw_pcb_p pcb = so2l2cap_raw_pcb(so);
1192 if (pcb == NULL)
1197 mtx_lock(&pcb->pcb_mtx);
1198 pcb->rt = NULL;
1200 mtx_unlock(&pcb->pcb_mtx);
1212 ng_btsocket_l2cap_raw_pcb_p pcb = so2l2cap_raw_pcb(so);
1215 if (pcb == NULL)
1220 mtx_lock(&pcb->pcb_mtx);
1221 bcopy(&pcb->dst, &sa.l2cap_bdaddr, sizeof(sa.l2cap_bdaddr));
1222 mtx_unlock(&pcb->pcb_mtx);
1256 ng_btsocket_l2cap_raw_pcb_p pcb = so2l2cap_raw_pcb(so);
1259 if (pcb == NULL)
1264 mtx_lock(&pcb->pcb_mtx);
1265 bcopy(&pcb->src, &sa.l2cap_bdaddr, sizeof(sa.l2cap_bdaddr));
1266 mtx_unlock(&pcb->pcb_mtx);
1322 ng_btsocket_l2cap_raw_send_sync_ngmsg(ng_btsocket_l2cap_raw_pcb_p pcb,
1328 mtx_assert(&pcb->pcb_mtx, MA_OWNED);
1335 pcb->token = msg->header.token;
1336 pcb->msg = NULL;
1339 pcb->rt->hook, 0);
1341 pcb->token = 0;
1345 error = msleep(&pcb->msg, &pcb->pcb_mtx, PZERO|PCATCH, "l2ctl",
1347 pcb->token = 0;
1352 if (pcb->msg != NULL && pcb->msg->header.cmd == cmd)
1353 bcopy(pcb->msg->data, rsp, rsplen);
1357 NG_FREE_MSG(pcb->msg); /* checks for != NULL */