Lines Matching defs:unp
239 unp_connid(struct lwp *l, struct unpcb *unp, int flags)
241 unp->unp_connid.unp_pid = l->l_proc->p_pid;
242 unp->unp_connid.unp_euid = kauth_cred_geteuid(l->l_cred);
243 unp->unp_connid.unp_egid = kauth_cred_getegid(l->l_cred);
244 unp->unp_flags |= flags;
258 struct unpcb *unp;
291 unp = sotounpcb(so);
292 KASSERT(unp->unp_streamlock != NULL);
294 lock = unp->unp_streamlock;
295 unp->unp_streamlock = NULL;
319 struct unpcb *unp;
327 unp = sotounpcb(so);
328 KASSERT(unp->unp_streamlock == NULL);
329 unp->unp_streamlock = olock;
337 unp_free(struct unpcb *unp)
339 if (unp->unp_addr)
340 free(unp->unp_addr, M_SONAME);
341 if (unp->unp_streamlock != NULL)
342 mutex_obj_free(unp->unp_streamlock);
343 kmem_free(unp, sizeof(*unp));
347 unp_output(struct mbuf *m, struct mbuf *control, struct unpcb *unp)
353 if (unp->unp_conn == NULL)
355 so2 = unp->unp_conn->unp_socket;
359 if (unp->unp_addr)
360 sun = unp->unp_addr;
363 if (unp->unp_conn->unp_flags & UNP_WANTCRED)
365 if (unp->unp_conn->unp_flags & UNP_OWANTCRED)
387 struct unpcb *unp;
390 unp = sotounpcb(so);
393 if (unp->unp_conn && unp->unp_conn->unp_addr)
394 sun = unp->unp_conn->unp_addr;
396 if (unp->unp_addr)
397 sun = unp->unp_addr;
408 struct unpcb *unp = sotounpcb(so);
413 KASSERT(unp != NULL);
425 if (unp->unp_conn == 0)
427 so2 = unp->unp_conn->unp_socket;
433 snd->sb_mbmax += unp->unp_mbcnt - rcv->sb_mbcnt;
434 unp->unp_mbcnt = rcv->sb_mbcnt;
435 newhiwat = snd->sb_hiwat + unp->unp_cc - rcv->sb_cc;
438 unp->unp_cc = rcv->sb_cc;
463 struct unpcb *unp = sotounpcb(so);
469 KASSERT(unp != NULL);
518 error = unp_output(m, control, unp);
520 unp_disconnect1(unp);
528 if (unp->unp_conn == NULL) {
532 so2 = unp->unp_conn->unp_socket;
534 if (unp->unp_conn->unp_flags & UNP_WANTCRED) {
539 unp->unp_conn->unp_flags &= ~UNP_WANTCRED;
542 if (unp->unp_conn->unp_flags & UNP_OWANTCRED) {
547 unp->unp_conn->unp_flags &= ~UNP_OWANTCRED;
574 rcv->sb_mbcnt - unp->unp_conn->unp_mbcnt;
575 unp->unp_conn->unp_mbcnt = rcv->sb_mbcnt;
577 (rcv->sb_cc - unp->unp_conn->unp_cc);
580 unp->unp_conn->unp_cc = rcv->sb_cc;
614 struct unpcb *unp = sotounpcb(so);
639 unp->unp_flags |= (bit); \
641 unp->unp_flags &= ~(bit);
666 if (unp->unp_flags & UNP_EIDSVALID) {
667 error = sockopt_set(sopt, &unp->unp_connid,
668 sizeof(unp->unp_connid));
674 #define OPTBIT(bit) (unp->unp_flags & (bit) ? 1 : 0)
719 struct unpcb *unp = sotounpcb(so);
723 KASSERT(unp == NULL);
758 unp = kmem_zalloc(sizeof(*unp), KM_SLEEP);
759 nanotime(&unp->unp_ctime);
760 unp->unp_socket = so;
761 so->so_pcb = unp;
770 struct unpcb *unp;
773 unp = sotounpcb(so);
774 KASSERT(unp != NULL);
777 if ((vp = unp->unp_vnode) != NULL) {
786 unp->unp_vnode = NULL;
788 if (unp->unp_conn)
789 unp_disconnect1(unp);
790 while (unp->unp_refs) {
791 KASSERT(solocked2(so, unp->unp_refs->unp_socket));
792 if (unp_drop(unp->unp_refs, SET_ERROR(ECONNRESET))) {
807 unp_free(unp);
810 unp_free(unp);
816 struct unpcb *unp = sotounpcb(so);
822 /* XXX code review required to determine if unp can ever be NULL */
823 if (unp == NULL)
832 if (unp->unp_conn == NULL) {
840 so2 = unp->unp_conn->unp_socket;
885 struct unpcb *unp;
890 unp = sotounpcb(so);
891 if (unp == NULL)
898 if (unp->unp_conn == 0)
901 so2 = unp->unp_conn->unp_socket;
909 if (unp->unp_ino == 0)
910 unp->unp_ino = unp_ino++;
911 ub->st_atimespec = ub->st_mtimespec = ub->st_ctimespec = unp->unp_ctime;
912 ub->st_ino = unp->unp_ino;
960 struct unpcb *unp;
969 unp = sotounpcb(so);
972 KASSERT(unp != NULL);
975 if (unp->unp_vnode != NULL)
977 if ((unp->unp_flags & UNP_BUSY) != 0) {
984 unp->unp_flags |= UNP_BUSY;
1026 vp->v_socket = unp->unp_socket;
1027 unp->unp_vnode = vp;
1028 unp->unp_addrlen = addrlen;
1029 unp->unp_addr = sun;
1032 unp->unp_flags &= ~UNP_BUSY;
1039 unp->unp_flags &= ~UNP_BUSY;
1046 struct unpcb *unp = sotounpcb(so);
1049 KASSERT(unp != NULL);
1056 if (unp->unp_vnode == NULL)
1059 unp_connid(l, unp, UNP_EIDSBIND);
1100 struct unpcb *unp = sotounpcb(so);
1121 unp->unp_conn = unp2;
1126 unp->unp_nextref = unp2->unp_refs;
1127 unp2->unp_refs = unp;
1154 struct unpcb *unp, *unp2, *unp3;
1160 unp = sotounpcb(so);
1161 if ((unp->unp_flags & UNP_BUSY) != 0) {
1168 unp->unp_flags |= UNP_BUSY;
1245 memcpy(&unp->unp_connid, &unp2->unp_connid,
1246 sizeof(unp->unp_connid));
1247 unp->unp_flags |= UNP_EIDSVALID;
1266 unp2->unp_conn = unp;
1267 if ((unp->unp_flags | unp2->unp_flags) & UNP_CONNWAIT)
1288 unp->unp_flags &= ~UNP_BUSY;
1295 struct unpcb *unp = sotounpcb(so);
1316 unp2->unp_conn = unp;
1326 unp_disconnect1(struct unpcb *unp)
1328 struct unpcb *unp2 = unp->unp_conn;
1333 unp->unp_conn = 0;
1334 so = unp->unp_socket;
1337 if (unp2->unp_refs == unp)
1338 unp2->unp_refs = unp->unp_nextref;
1345 if (unp2->unp_nextref == unp)
1349 unp2->unp_nextref = unp->unp_nextref;
1351 unp->unp_nextref = 0;
1366 unp_shutdown1(struct unpcb *unp)
1370 switch(unp->unp_socket->so_type) {
1373 if (unp->unp_conn && (so = unp->unp_conn->unp_socket))
1382 unp_drop(struct unpcb *unp, int errno)
1384 struct socket *so = unp->unp_socket;
1389 unp_disconnect1(unp);
1394 unp_free(unp);