Lines Matching defs:so

193  * here primarily so that should sockmod be popped the resulting
197 so_update_attrs(struct sonode *so, int flag)
201 if (SOCK_IS_NONSTR(so))
204 mutex_enter(&so->so_lock);
205 so->so_flag |= flag;
207 SOTOTPI(so)->sti_atime = now;
209 SOTOTPI(so)->sti_mtime = now;
210 mutex_exit(&so->so_lock);
317 so_lock_single(struct sonode *so)
319 ASSERT(MUTEX_HELD(&so->so_lock));
321 while (so->so_flag & (SOLOCKED | SOASYNC_UNBIND)) {
322 cv_wait_stop(&so->so_single_cv, &so->so_lock,
325 so->so_flag |= SOLOCKED;
333 so_unlock_single(struct sonode *so, int flag)
335 ASSERT(MUTEX_HELD(&so->so_lock));
338 ASSERT(so->so_flag & flag);
345 if (!SOCK_IS_NONSTR(so)) {
346 sotpi_info_t *sti = SOTOTPI(so);
349 so_drain_discon_ind(so);
352 cv_signal(&so->so_single_cv);
353 so->so_flag &= ~flag;
361 so_lock_read(struct sonode *so, int fmode)
363 ASSERT(MUTEX_HELD(&so->so_lock));
365 while (so->so_flag & SOREADLOCKED) {
368 cv_wait_stop(&so->so_read_cv, &so->so_lock,
371 so->so_flag |= SOREADLOCKED;
379 so_lock_read_intr(struct sonode *so, int fmode)
381 ASSERT(MUTEX_HELD(&so->so_lock));
383 while (so->so_flag & SOREADLOCKED) {
386 if (!cv_wait_sig(&so->so_read_cv, &so->so_lock))
389 so->so_flag |= SOREADLOCKED;
398 so_unlock_read(struct sonode *so)
400 ASSERT(MUTEX_HELD(&so->so_lock));
401 ASSERT(so->so_flag & SOREADLOCKED);
403 cv_signal(&so->so_read_cv);
404 so->so_flag &= ~SOREADLOCKED;
441 so_ux_lookup(struct sonode *so, struct sockaddr_un *soun, int checkaccess,
450 dprintso(so, 1, ("so_ux_lookup(%p) name <%s>\n", (void *)so,
455 eprintsoline(so, error);
470 eprintsoline(so, error);
481 eprintsoline(so, error);
495 if (so->so_type == SOCK_DGRAM)
500 eprintsoline(so, error);
515 eprintsoline(so, error);
521 if (so->so_type != so2->so_type) {
523 eprintsoline(so, error);
545 so_addr_verify(struct sonode *so, const struct sockaddr *name,
550 dprintso(so, 1, ("so_addr_verify(%p, %p, %d)\n",
551 (void *)so, (void *)name, namelen));
555 family = so->so_family;
559 eprintsoline(so, EAFNOSUPPORT);
563 eprintsoline(so, EINVAL);
573 eprintsoline(so, EAFNOSUPPORT);
577 eprintsoline(so, EINVAL);
594 if (SOTOTPI(so)->sti_faddr_noxlate) {
598 eprintsoline(so, ENOENT);
602 eprintsoline(so, EAFNOSUPPORT);
607 eprintsoline(so, ENAMETOOLONG);
631 so_ux_addr_xlate(struct sonode *so, struct sockaddr *name,
640 sotpi_info_t *sti = SOTOTPI(so);
642 dprintso(so, 1, ("so_ux_addr_xlate(%p, %p, %d, %d)\n",
643 (void *)so, (void *)name, namelen, checkaccess));
646 ASSERT(so->so_family == AF_UNIX);
655 error = so_ux_lookup(so, soun, checkaccess, &vp);
657 eprintsoline(so, error);
670 dprintso(so, 1, ("ux_xlate UNIX: addrlen %d, vp %p\n",
1266 * so use bcopy to avoid alignment trouble
1626 * Return 1 if OK, otherwise 0 so that it can be used as
1627 * ASSERT(verify_oobstate(so));
1630 so_verify_oobstate(struct sonode *so)
1634 ASSERT(MUTEX_HELD(&so->so_lock));
1644 switch (so->so_state & (SS_OOBPEND|SS_HAVEOOBDATA|SS_HADOOBDATA)) {
1653 (void *)so, pr_state(so->so_state, so->so_mode));
1658 if ((so->so_state & (SS_RCVATMARK|SS_OOBPEND)) == SS_RCVATMARK) {
1660 (void *)so, pr_state(so->so_state, so->so_mode));
1668 havemark = (SOCK_IS_NONSTR(so)) ? so->so_oobmark > 0 :
1669 SOTOTPI(so)->sti_oobsigcnt > 0;
1671 if (!EQUIVALENT(havemark || (so->so_state & SS_RCVATMARK),
1672 so->so_state & SS_OOBPEND)) {
1674 (void *)so, pr_state(so->so_state, so->so_mode));
1681 if (!(so->so_options & SO_OOBINLINE) &&
1682 !EQUIVALENT(so->so_oobmsg != NULL, so->so_state & SS_HAVEOOBDATA)) {
1684 (void *)so, pr_state(so->so_state, so->so_mode));
1688 if (!SOCK_IS_NONSTR(so) &&
1689 SOTOTPI(so)->sti_oobsigcnt < SOTOTPI(so)->sti_oobcnt) {
1691 (void *)so, SOTOTPI(so)->sti_oobsigcnt,
1692 SOTOTPI(so)->sti_oobcnt,
1693 pr_state(so->so_state, so->so_mode));
1742 * driver will keep it locked between the update and the snapshot, so no
1750 struct sonode *so; /* current sonode on socklist */
1759 for (so = socklist.sl_list; so != NULL; so = SOTOTPI(so)->sti_next_so) {
1760 if (so->so_count != 0 && so->so_zoneid == myzoneid) {
1774 struct sonode *so; /* current sonode on socklist */
1794 for (so = socklist.sl_list; so != NULL; so = SOTOTPI(so)->sti_next_so) {
1796 if (so->so_count == 0 || so->so_zoneid != myzoneid) {
1808 sti = SOTOTPI(so);
1811 pksi->ks_si.si_family = so->so_family;
1812 pksi->ks_si.si_type = so->so_type;
1813 pksi->ks_si.si_flag = so->so_flag;
1814 pksi->ks_si.si_state = so->so_state;
1822 pksi->ks_si.si_szoneid = so->so_zoneid;
1825 mutex_enter(&so->so_lock);
1862 mutex_exit(&so->so_lock);
1864 (void) sprintf(pksi->ks_straddr[0], "%p", (void *)so);