Lines Matching defs:wpipe

392  *  FWRITE | fd1 | -->[struct wpipe] --X              / 
400 struct pipe *rpipe, *wpipe;
407 rpipe = wpipe = NULL;
408 if (pipe_create(&rpipe) || pipe_create(&wpipe)) {
422 TAILQ_INIT(&wpipe->pipe_evlist);
446 wf->f_data = (caddr_t)wpipe;
449 rpipe->pipe_peer = wpipe;
450 wpipe->pipe_peer = rpipe;
452 rpipe->pipe_mtxp = wpipe->pipe_mtxp = pmtx;
466 wpipe->pipe_label = rpipe->pipe_label;
480 pipeclose(wpipe);
867 struct pipe *wpipe, *rpipe;
875 wpipe = rpipe->pipe_peer;
880 if (wpipe == NULL || (wpipe->pipe_state & (PIPE_DRAIN | PIPE_EOF))) {
885 error = mac_pipe_check_write(kauth_cred_get(), wpipe);
891 ++wpipe->pipe_busy;
902 if ( wpipe->pipe_buffer.buffer == 0 || (
903 (unsigned)orig_resid > wpipe->pipe_buffer.size - wpipe->pipe_buffer.cnt &&
906 pipe_size = choose_pipespace(wpipe->pipe_buffer.size, wpipe->pipe_buffer.cnt + orig_resid);
913 if ((error = pipeio_lock(wpipe, 1)) == 0) {
914 if (wpipe->pipe_buffer.cnt == 0)
915 error = pipespace(wpipe, pipe_size);
917 error = expand_pipespace(wpipe, pipe_size);
919 pipeio_unlock(wpipe);
922 if (wpipe->pipe_buffer.buffer == 0)
930 --wpipe->pipe_busy;
931 if ((wpipe->pipe_busy == 0) &&
932 (wpipe->pipe_state & PIPE_WANT)) {
933 wpipe->pipe_state &= ~(PIPE_WANT | PIPE_WANTR);
934 wakeup(wpipe);
944 space = wpipe->pipe_buffer.size - wpipe->pipe_buffer.cnt;
952 if ((error = pipeio_lock(wpipe,1)) == 0) {
956 if (wpipe->pipe_state & (PIPE_DRAIN | PIPE_EOF)) {
957 pipeio_unlock(wpipe);
966 if (space > (int)(wpipe->pipe_buffer.size -
967 wpipe->pipe_buffer.cnt)) {
968 pipeio_unlock(wpipe);
988 segsize = wpipe->pipe_buffer.size -
989 wpipe->pipe_buffer.in;
996 error = uiomove(&wpipe->pipe_buffer.buffer[wpipe->pipe_buffer.in],
1006 if (wpipe->pipe_buffer.in + segsize !=
1007 wpipe->pipe_buffer.size)
1013 &wpipe->pipe_buffer.buffer[0],
1021 wpipe->pipe_buffer.in += size;
1022 if (wpipe->pipe_buffer.in >
1023 wpipe->pipe_buffer.size) {
1024 if (wpipe->pipe_buffer.in !=
1026 wpipe->pipe_buffer.size)
1029 wpipe->pipe_buffer.in = size -
1033 wpipe->pipe_buffer.cnt += size;
1034 if (wpipe->pipe_buffer.cnt >
1035 wpipe->pipe_buffer.size)
1039 pipeio_unlock(wpipe);
1048 if (wpipe->pipe_state & PIPE_WANTR) {
1049 wpipe->pipe_state &= ~PIPE_WANTR;
1050 wakeup(wpipe);
1065 if (wpipe->pipe_state & (PIPE_DRAIN | PIPE_EOF)) {
1074 pipeselwakeup(wpipe, wpipe);
1076 wpipe->pipe_state |= PIPE_WANTW;
1078 error = msleep(wpipe, PIPE_MTX(wpipe), PRIBIO | PCATCH, "pipewr", 0);
1084 --wpipe->pipe_busy;
1086 if ((wpipe->pipe_busy == 0) && (wpipe->pipe_state & PIPE_WANT)) {
1087 wpipe->pipe_state &= ~(PIPE_WANT | PIPE_WANTR);
1088 wakeup(wpipe);
1090 if (wpipe->pipe_buffer.cnt > 0) {
1095 if (wpipe->pipe_state & PIPE_WANTR) {
1096 wpipe->pipe_state &= ~PIPE_WANTR;
1097 wakeup(wpipe);
1102 pipeselwakeup(wpipe, wpipe);
1107 pipe_touch(wpipe, PIPE_MTIME | PIPE_CTIME);
1179 struct pipe *wpipe;
1187 wpipe = rpipe->pipe_peer;
1216 if (wpipe)
1217 wpipe->pipe_state |= PIPE_WSELECT;
1218 if (wpipe == NULL || (wpipe->pipe_state & (PIPE_DRAIN | PIPE_EOF)) ||
1219 (((wpipe->pipe_state & PIPE_DIRECTW) == 0) &&
1220 (MAX_PIPESIZE(wpipe) - wpipe->pipe_buffer.cnt) > 0)) {
1224 wpipe->pipe_state |= PIPE_SEL;
1225 selrecord(vfs_context_proc(ctx), &wpipe->pipe_sel, wql);
1431 struct pipe *wpipe;
1443 wpipe = rpipe->pipe_peer;
1446 (wpipe == NULL) || (wpipe->pipe_state & (PIPE_DRAIN | PIPE_EOF))) {
1471 struct pipe *wpipe;
1482 wpipe = rpipe->pipe_peer;
1484 if ((wpipe == NULL) || (wpipe->pipe_state & (PIPE_DRAIN | PIPE_EOF))) {
1492 kn->kn_data = MAX_PIPESIZE(wpipe) - wpipe->pipe_buffer.cnt;
1496 if (wpipe->pipe_buffer.size && kn->kn_sdata > MAX_PIPESIZE(wpipe))
1497 lowwat = MAX_PIPESIZE(wpipe);