Lines Matching refs:so
107 key_output(struct mbuf *m, struct socket *so)
152 error = key_parse(m, so);
220 /* so can be NULL if target != KEY_SENDUP_ONE */
222 _key_sendup_mbuf(struct socket *so, struct mbuf *m,
233 KASSERT(so != NULL || target != KEY_SENDUP_ONE);
239 * even if the socket is at or above its so->so_rcv.sb_max limits.
298 if (so && sotorawcb(so) == rp)
305 if (so && sotorawcb(so) == rp)
344 if (so) {
345 error = key_sendup0(sotorawcb(so), m, 0, sbprio);
355 key_sendup_mbuf(struct socket *so, struct mbuf *m,
360 if (so == NULL)
363 KASSERT(solocked(so));
365 error = _key_sendup_mbuf(so, m, target);
367 if (so == NULL)
373 key_attach(struct socket *so, int proto)
378 KASSERT(sotorawcb(so) == NULL);
381 so->so_pcb = kp;
385 if (so->so_lock != key_so_mtx) {
386 KASSERT(so->so_lock == NULL);
388 so->so_lock = key_so_mtx;
389 solock(so);
392 error = raw_attach(so, proto, &key_rawcb);
396 so->so_pcb = NULL;
407 soisconnected(so);
408 so->so_options |= SO_USELOOPBACK;
410 KASSERT(solocked(so));
416 key_detach(struct socket *so)
418 struct keycb *kp = (struct keycb *)sotorawcb(so);
422 KASSERT(solocked(so));
429 key_freereg(so);
430 raw_detach(so);
435 key_accept(struct socket *so, struct sockaddr *nam)
437 KASSERT(solocked(so));
445 key_bind(struct socket *so, struct sockaddr *nam, struct lwp *l)
447 KASSERT(solocked(so));
453 key_listen(struct socket *so, struct lwp *l)
455 KASSERT(solocked(so));
461 key_connect(struct socket *so, struct sockaddr *nam, struct lwp *l)
463 KASSERT(solocked(so));
469 key_connect2(struct socket *so, struct socket *so2)
471 KASSERT(solocked(so));
477 key_disconnect(struct socket *so)
479 struct rawcb *rp = sotorawcb(so);
482 KASSERT(solocked(so));
486 soisdisconnected(so);
494 key_shutdown(struct socket *so)
498 KASSERT(solocked(so));
504 socantsendmore(so);
511 key_abort(struct socket *so)
513 KASSERT(solocked(so));
521 key_ioctl(struct socket *so, u_long cmd, void *nam, struct ifnet *ifp)
527 key_stat(struct socket *so, struct stat *ub)
529 KASSERT(solocked(so));
535 key_peeraddr(struct socket *so, struct sockaddr *nam)
537 struct rawcb *rp = sotorawcb(so);
539 KASSERT(solocked(so));
551 key_sockaddr(struct socket *so, struct sockaddr *nam)
553 struct rawcb *rp = sotorawcb(so);
555 KASSERT(solocked(so));
567 key_rcvd(struct socket *so, int flags, struct lwp *l)
569 KASSERT(solocked(so));
575 key_recvoob(struct socket *so, struct mbuf *m, int flags)
577 KASSERT(solocked(so));
583 key_send(struct socket *so, struct mbuf *m, struct sockaddr *nam,
589 KASSERT(solocked(so));
590 KASSERT(so->so_proto == &keysw[0]);
593 error = raw_send(so, m, nam, control, l, &key_output);
600 key_sendoob(struct socket *so, struct mbuf *m, struct mbuf *control)
602 KASSERT(solocked(so));
611 key_purgeif(struct socket *so, struct ifnet *ifa)