Lines Matching defs:fnp
175 fifonode_t *fnp = &fdp->fifo_fnode[0];
182 while ((char *)fnp < (char *)buf + size) {
188 fnp->fn_vnode = NULL; /* mark for destructor */
192 fnp->fn_vnode = vp;
194 fnp->fn_lock = flp;
195 fnp->fn_open = 0;
196 fnp->fn_dest = fnp;
197 fnp->fn_mp = NULL;
198 fnp->fn_count = 0;
199 fnp->fn_rsynccnt = 0;
200 fnp->fn_wsynccnt = 0;
201 fnp->fn_wwaitcnt = 0;
202 fnp->fn_insync = 0;
203 fnp->fn_pcredp = NULL;
204 fnp->fn_cpid = -1;
208 fnp->fn_ino = 0;
210 cv_init(&fnp->fn_wait_cv, NULL, CV_DEFAULT, NULL);
215 vp->v_data = (caddr_t)fnp;
218 fnp++;
228 fifonode_t *fnp = &fdp->fifo_fnode[0];
235 while ((char *)fnp < (char *)buf + size) {
237 vnode_t *vp = FTOV(fnp);
243 ASSERT(fnp->fn_mp == NULL);
244 ASSERT(fnp->fn_count == 0);
245 ASSERT(fnp->fn_lock == flp);
246 ASSERT(fnp->fn_open == 0);
247 ASSERT(fnp->fn_insync == 0);
248 ASSERT(fnp->fn_rsynccnt == 0 && fnp->fn_wsynccnt == 0);
249 ASSERT(fnp->fn_wwaitcnt == 0);
250 ASSERT(fnp->fn_pcredp == NULL);
254 ASSERT(vp->v_data == (caddr_t)fnp);
257 cv_destroy(&fnp->fn_wait_cv);
261 fnp++;
409 fifonode_t *fnp;
421 fnp = &fdp->fifo_fnode[0];
434 fnp->fn_realvp = vp;
435 fnp->fn_wcnt = 0;
436 fnp->fn_rcnt = 0;
440 fnp->fn_flag = 0;
442 fnp->fn_flag = FIFOFAST;
445 fnp->fn_flag = FIFOFAST;
453 fnp->fn_atime = va.va_atime.tv_sec;
454 fnp->fn_mtime = va.va_mtime.tv_sec;
455 fnp->fn_ctime = va.va_ctime.tv_sec;
457 fnp->fn_atime = 0;
458 fnp->fn_mtime = 0;
459 fnp->fn_ctime = 0;
486 newvp = FTOV(fnp);
501 fifoinsert(fnp);
590 fifonode_t *fnp = VTOF(*vpp);
595 fn_lock = fnp->fn_lock;
598 ASSERT(MUTEX_HELD(&fnp->fn_lock->flk_lock));
605 while (fnp->fn_flag & FIFOOPEN) {
606 if (!cv_wait_sig(&fnp->fn_wait_cv, &fn_lock->flk_lock)) {
619 if ((fnp->fn_flag & (FIFOCLOSE|ISPIPE)) == (FIFOCLOSE|ISPIPE)) {
621 cv_broadcast(&fnp->fn_wait_cv);
627 fnp->fn_flag |= FIFOOPEN;
639 if (fnp->fn_flag & FIFOCONNLD) {
672 ASSERT(fnp->fn_open > 0);
673 fnp->fn_open++;
698 fnp = VTOF(*vpp);
699 fn_lock = fnp->fn_lock;
724 ASSERT(fnp->fn_open != 0 || oldvp->v_stream == NULL);
741 fnp->fn_open++;
746 fnp->fn_flag &= ~FIFOOPEN;
748 fnp->fn_flag |= FIFOISOPEN;
755 if (((fnp->fn_flag & (ISPIPE|FIFOCLOSE)) == FIFOCLOSE) &&
756 fnp->fn_wcnt > 0)
757 fnp->fn_flag &= ~FIFOCLOSE;
759 cv_broadcast(&fnp->fn_wait_cv);
773 fifonode_t *fnp = VTOF(vp);
775 ASSERT(MUTEX_HELD(&fnp->fn_lock->flk_lock));
780 fnp->fn_rcnt--;
783 fnp->fn_wcnt--;
785 cv_broadcast(&fnp->fn_wait_cv);
793 fifoinsert(fifonode_t *fnp)
795 int idx = FIFOHASH(fnp->fn_realvp);
804 fnp->fn_backp = NULL;
805 fnp->fn_nextp = fifoalloc[idx];
806 fifoalloc[idx] = fnp;
807 if (fnp->fn_nextp)
808 fnp->fn_nextp->fn_backp = fnp;
839 fiforemove(fifonode_t *fnp)
841 int idx = FIFOHASH(fnp->fn_realvp);
849 if (fnode != NULL && fnode == fnp &&
855 if (fnode == fnp) {
859 if (fnp == fifoalloc[idx])
860 fifoalloc[idx] = fnp->fn_nextp;
878 fifo_fastflush(fifonode_t *fnp)
881 ASSERT(MUTEX_HELD(&fnp->fn_lock->flk_lock));
883 if ((bp = fnp->fn_mp) != NULL) {
884 fnp->fn_mp = NULL;
885 fnp->fn_count = 0;
888 fifo_wakewriter(fnp->fn_dest, fnp->fn_lock);
1045 fifo_fastoff(fifonode_t *fnp)
1047 ASSERT(MUTEX_HELD(&fnp->fn_lock->flk_lock));
1048 ASSERT(FTOV(fnp)->v_stream);
1051 while ((fnp->fn_flag & FIFOSTAYFAST) || ((fnp->fn_flag & ISPIPE) &&
1052 (fnp->fn_dest->fn_flag & FIFOSTAYFAST))) {
1053 ASSERT(fnp->fn_flag & FIFOFAST);
1055 fnp->fn_flag |= FIFOWAITMODE;
1056 cv_wait(&fnp->fn_wait_cv, &fnp->fn_lock->flk_lock);
1057 fnp->fn_flag &= ~FIFOWAITMODE;
1061 if (!(fnp->fn_flag & FIFOFAST))
1068 fifo_fastturnoff(fnp);
1069 if (fnp->fn_flag & ISPIPE) {
1070 fifo_fastturnoff(fnp->fn_dest);
1081 fifo_fastturnoff(fifonode_t *fnp)
1083 fifonode_t *fn_dest = fnp->fn_dest;
1087 ASSERT(MUTEX_HELD(&fnp->fn_lock->flk_lock));
1092 if ((fn_mp = fnp->fn_mp) != NULL) {
1093 ASSERT(fnp->fn_flag & FIFOISOPEN);
1094 ASSERT(FTOV(fnp)->v_stream != NULL);
1095 ASSERT(FTOV(fnp)->v_stream->sd_wrq != NULL);
1096 ASSERT(RD(FTOV(fnp)->v_stream->sd_wrq) != NULL);
1097 ASSERT(strvp2wq(FTOV(fnp)) != NULL);
1098 fnp->fn_mp = NULL;
1099 fnp->fn_count = 0;
1105 put(RD(strvp2wq(FTOV(fnp))), fn_mp);
1111 * Writers would be waiting on fnp and readers on fn_dest
1113 if ((fnp->fn_flag & (FIFOISOPEN | FIFOPOLLW)) ==
1115 strpollwakeup(FTOV(fnp), POLLWRNORM);
1127 fnp->fn_flag &= ~(FIFOFAST|FIFOWANTW|FIFOWANTR);
1128 cv_broadcast(&fnp->fn_wait_cv);
1138 fifonode_t *fnp = VTOF(vp);
1140 mutex_enter(&fnp->fn_lock->flk_lock);
1141 if (!(fnp->fn_flag & FIFOFAST)) {
1142 mutex_exit(&fnp->fn_lock->flk_lock);
1145 fifo_fastoff(fnp);
1146 mutex_exit(&fnp->fn_lock->flk_lock);