Lines Matching defs:rpipe
209 struct pipe *rpipe, *wpipe;
218 rpipe = wpipe = NULL;
220 if ((error = pipe_create(&rpipe, pipe_rd_cache, &nt)) ||
224 rpipe->pipe_lock = mutex_obj_alloc(MUTEX_DEFAULT, IPL_NONE);
225 wpipe->pipe_lock = rpipe->pipe_lock;
240 rf->f_pipe = rpipe;
252 rpipe->pipe_peer = wpipe;
253 wpipe->pipe_peer = rpipe;
262 pipeclose(rpipe);
410 struct pipe *rpipe = fp->f_pipe;
411 struct pipebuf *bp = &rpipe->pipe_buffer;
412 kmutex_t *lock = rpipe->pipe_lock;
432 (atomic_load_relaxed(&rpipe->pipe_state) & PIPE_EOF) == 0)
437 ++rpipe->pipe_busy;
441 error = pipelock(rpipe, true);
491 if (rpipe->pipe_state & PIPE_EOF)
507 pipeunlock(rpipe);
513 pipeselwakeup(rpipe, rpipe->pipe_peer, POLL_OUT);
518 cv_broadcast(&rpipe->pipe_wcv);
527 error = cv_wait_sig(&rpipe->pipe_rcv, lock);
530 wakeup_state = rpipe->pipe_state;
535 getnanotime(&rpipe->pipe_atime);
536 pipeunlock(rpipe);
539 --rpipe->pipe_busy;
540 if (rpipe->pipe_busy == 0) {
541 rpipe->pipe_state &= ~PIPE_RESTART;
542 cv_broadcast(&rpipe->pipe_draincv);
545 cv_broadcast(&rpipe->pipe_wcv);
554 && (ocnt != bp->cnt || (rpipe->pipe_state & PIPE_SIGNALR))) {
555 pipeselwakeup(rpipe, rpipe->pipe_peer, POLL_OUT);
556 rpipe->pipe_state &= ~PIPE_SIGNALR;
567 struct pipe *wpipe, *rpipe;
574 rpipe = fp->f_pipe;
575 lock = rpipe->pipe_lock;
579 wpipe = rpipe->pipe_peer;
820 struct pipe *rpipe = fp->f_pipe;
825 mutex_enter(rpipe->pipe_lock);
826 wpipe = rpipe->pipe_peer;
829 if ((rpipe->pipe_buffer.cnt > 0) ||
830 (rpipe->pipe_state & PIPE_EOF))
833 eof |= (rpipe->pipe_state & PIPE_EOF);
851 selrecord(curlwp, &rpipe->pipe_sel);
856 mutex_exit(rpipe->pipe_lock);
1068 struct pipe *rpipe = ((file_t *)kn->kn_obj)->f_pipe;
1073 mutex_enter(rpipe->pipe_lock);
1075 wpipe = rpipe->pipe_peer;
1076 kn->kn_data = rpipe->pipe_buffer.cnt;
1078 if ((rpipe->pipe_state & PIPE_EOF) ||
1087 mutex_exit(rpipe->pipe_lock);
1095 struct pipe *rpipe = ((file_t *)kn->kn_obj)->f_pipe;
1100 mutex_enter(rpipe->pipe_lock);
1102 wpipe = rpipe->pipe_peer;
1114 mutex_exit(rpipe->pipe_lock);