Lines Matching refs:so
86 l2cap_attach(struct socket *so, int proto)
90 KASSERT(so->so_pcb == NULL);
92 if (so->so_lock == NULL) {
94 so->so_lock = bt_lock;
95 solock(so);
97 KASSERT(solocked(so));
103 error = soreserve(so, l2cap_sendspace, l2cap_recvspace);
107 return l2cap_attach_pcb((struct l2cap_channel **)&so->so_pcb,
108 &l2cap_proto, so);
112 l2cap_detach(struct socket *so)
114 KASSERT(so->so_pcb != NULL);
115 l2cap_detach_pcb((struct l2cap_channel **)&so->so_pcb);
116 KASSERT(so->so_pcb == NULL);
120 l2cap_accept(struct socket *so, struct sockaddr *nam)
122 struct l2cap_channel *pcb = so->so_pcb;
124 KASSERT(solocked(so));
134 l2cap_bind(struct socket *so, struct sockaddr *nam, struct lwp *l)
136 struct l2cap_channel *pcb = so->so_pcb;
139 KASSERT(solocked(so));
155 l2cap_listen(struct socket *so, struct lwp *l)
157 struct l2cap_channel *pcb = so->so_pcb;
159 KASSERT(solocked(so));
168 l2cap_connect(struct socket *so, struct sockaddr *nam, struct lwp *l)
170 struct l2cap_channel *pcb = so->so_pcb;
173 KASSERT(solocked(so));
185 soisconnecting(so);
190 l2cap_connect2(struct socket *so, struct socket *so2)
192 KASSERT(solocked(so));
194 if (so->so_pcb == NULL)
201 l2cap_disconnect(struct socket *so)
203 struct l2cap_channel *pcb = so->so_pcb;
205 KASSERT(solocked(so));
210 soisdisconnecting(so);
211 return l2cap_disconnect_pcb(pcb, so->so_linger);
215 l2cap_shutdown(struct socket *so)
217 KASSERT(solocked(so));
219 socantsendmore(so);
224 l2cap_abort(struct socket *so)
226 struct l2cap_channel *pcb = so->so_pcb;
228 KASSERT(solocked(so));
234 soisdisconnected(so);
235 l2cap_detach(so);
240 l2cap_ioctl(struct socket *so, u_long cmd, void *nam, struct ifnet *ifp)
246 l2cap_stat(struct socket *so, struct stat *ub)
248 KASSERT(solocked(so));
254 l2cap_peeraddr(struct socket *so, struct sockaddr *nam)
256 struct l2cap_channel *pcb = so->so_pcb;
258 KASSERT(solocked(so));
266 l2cap_sockaddr(struct socket *so, struct sockaddr *nam)
268 struct l2cap_channel *pcb = so->so_pcb;
270 KASSERT(solocked(so));
278 l2cap_rcvd(struct socket *so, int flags, struct lwp *l)
280 KASSERT(solocked(so));
286 l2cap_recvoob(struct socket *so, struct mbuf *m, int flags)
288 KASSERT(solocked(so));
294 l2cap_send(struct socket *so, struct mbuf *m, struct sockaddr *nam,
297 struct l2cap_channel *pcb = so->so_pcb;
301 KASSERT(solocked(so));
325 sbappendrecord(&so->so_snd, m);
335 l2cap_sendoob(struct socket *so, struct mbuf *m, struct mbuf *control)
337 KASSERT(solocked(so));
346 l2cap_purgeif(struct socket *so, struct ifnet *ifp)
359 l2cap_ctloutput(int req, struct socket *so, struct sockopt *sopt)
361 struct l2cap_channel *pcb = so->so_pcb;
398 struct socket *so = arg;
401 soisconnecting(so);
407 struct socket *so = arg;
410 soisconnected(so);
416 struct socket *so = arg;
420 so->so_error = err;
421 soisdisconnected(so);
428 struct socket *so = arg;
431 so = sonewconn(so, false);
432 if (so == NULL)
435 soisconnecting(so);
437 return so->so_pcb;
443 struct socket *so = arg;
446 sbdroprecord(&so->so_snd);
448 sowwakeup(so);
454 struct socket *so = arg;
464 (void)l2cap_getopt(so->so_pcb, &sopt);
471 l2cap_disconnect_pcb(so->so_pcb, 0);
477 struct socket *so = arg;
479 if (m->m_pkthdr.len > sbspace(&so->so_rcv)) {
488 sbappendrecord(&so->so_rcv, m);
489 sorwakeup(so);