Lines Matching refs:pipe

116 SYSCTL_NODE(_kern, OID_AUTO, pipe, CTLFLAG_RW, 0, "Pipe operation");
179 static void pipeclose (struct pipe *pipe,
182 static int pipe_create (struct pipe **pipep);
280 struct pipe *pipe; in kern_pipe() local
283 pipe = NULL; in kern_pipe()
284 if (pipe_create(&pipe)) { in kern_pipe()
285 pipeclose(pipe, &pipe->bufferA, &pipe->bufferB); in kern_pipe()
286 pipeclose(pipe, &pipe->bufferB, &pipe->bufferA); in kern_pipe()
292 pipeclose(pipe, &pipe->bufferA, &pipe->bufferB); in kern_pipe()
293 pipeclose(pipe, &pipe->bufferB, &pipe->bufferA); in kern_pipe()
307 rf->f_data = (void *)((intptr_t)pipe | 0); in kern_pipe()
319 pipeclose(pipe, &pipe->bufferB, &pipe->bufferA); in kern_pipe()
325 wf->f_data = (void *)((intptr_t)pipe | 1); in kern_pipe()
354 pipespace(struct pipe *pipe, struct pipebuf *pb, size_t size) in pipespace() argument
409 pipe_create(struct pipe **pipep) in pipe_create()
412 struct pipe *pipe; in pipe_create() local
415 if ((pipe = gd->gd_pipeq) != NULL) { in pipe_create()
416 gd->gd_pipeq = pipe->next; in pipe_create()
418 pipe->next = NULL; in pipe_create()
420 pipe = kmalloc(sizeof(*pipe), M_PIPE, M_WAITOK | M_ZERO); in pipe_create()
421 pipe->inum = gd->gd_anoninum++ * ncpus + gd->gd_cpuid + 2; in pipe_create()
422 lwkt_token_init(&pipe->bufferA.rlock, "piper"); in pipe_create()
423 lwkt_token_init(&pipe->bufferA.wlock, "pipew"); in pipe_create()
424 lwkt_token_init(&pipe->bufferB.rlock, "piper"); in pipe_create()
425 lwkt_token_init(&pipe->bufferB.wlock, "pipew"); in pipe_create()
427 *pipep = pipe; in pipe_create()
428 if ((error = pipespace(pipe, &pipe->bufferA, pipe_size)) != 0) { in pipe_create()
431 if ((error = pipespace(pipe, &pipe->bufferB, pipe_size)) != 0) { in pipe_create()
434 vfs_timestamp(&pipe->ctime); in pipe_create()
435 pipe->bufferA.atime = pipe->ctime; in pipe_create()
436 pipe->bufferA.mtime = pipe->ctime; in pipe_create()
437 pipe->bufferB.atime = pipe->ctime; in pipe_create()
438 pipe->bufferB.mtime = pipe->ctime; in pipe_create()
439 pipe->open_count = 2; in pipe_create()
452 struct pipe *pipe; in pipe_read() local
463 pipe = (struct pipe *)((intptr_t)fp->f_data & ~(intptr_t)1); in pipe_read()
465 rpb = &pipe->bufferB; in pipe_read()
466 wpb = &pipe->bufferA; in pipe_read()
468 rpb = &pipe->bufferA; in pipe_read()
469 wpb = &pipe->bufferB; in pipe_read()
699 struct pipe *pipe; in pipe_write() local
709 pipe = (struct pipe *)((intptr_t)fp->f_data & ~(intptr_t)1); in pipe_write()
711 rpb = &pipe->bufferB; in pipe_write()
712 wpb = &pipe->bufferA; in pipe_write()
714 rpb = &pipe->bufferA; in pipe_write()
715 wpb = &pipe->bufferB; in pipe_write()
991 struct pipe *pipe; in pipe_ioctl() local
994 pipe = (struct pipe *)((intptr_t)fp->f_data & ~(intptr_t)1); in pipe_ioctl()
996 rpb = &pipe->bufferB; in pipe_ioctl()
998 rpb = &pipe->bufferA; in pipe_ioctl()
1051 struct pipe *pipe; in pipe_stat() local
1053 pipe = (struct pipe *)((intptr_t)fp->f_data & ~(intptr_t)1); in pipe_stat()
1055 rpb = &pipe->bufferB; in pipe_stat()
1057 rpb = &pipe->bufferA; in pipe_stat()
1067 ub->st_ctimespec = pipe->ctime; in pipe_stat()
1070 ub->st_ino = pipe->inum; in pipe_stat()
1085 struct pipe *pipe; in pipe_close() local
1087 pipe = (struct pipe *)((intptr_t)fp->f_data & ~(intptr_t)1); in pipe_close()
1089 rpb = &pipe->bufferB; in pipe_close()
1090 wpb = &pipe->bufferA; in pipe_close()
1092 rpb = &pipe->bufferA; in pipe_close()
1093 wpb = &pipe->bufferB; in pipe_close()
1099 pipeclose(pipe, rpb, wpb); in pipe_close()
1112 struct pipe *pipe; in pipe_shutdown() local
1115 pipe = (struct pipe *)((intptr_t)fp->f_data & ~(intptr_t)1); in pipe_shutdown()
1117 rpb = &pipe->bufferB; in pipe_shutdown()
1118 wpb = &pipe->bufferA; in pipe_shutdown()
1120 rpb = &pipe->bufferA; in pipe_shutdown()
1121 wpb = &pipe->bufferB; in pipe_shutdown()
1198 pipeclose(struct pipe *pipe, struct pipebuf *rpb, struct pipebuf *wpb) in pipeclose() argument
1202 if (pipe == NULL) in pipeclose()
1266 if (atomic_fetchadd_int(&pipe->open_count, -1) == 1) { in pipeclose()
1273 kfree(pipe, M_PIPE); in pipeclose()
1277 pipe->next = gd->gd_pipeq; in pipeclose()
1278 gd->gd_pipeq = pipe; in pipeclose()
1289 struct pipe *pipe; in pipe_kqfilter() local
1291 pipe = (struct pipe *)((intptr_t)fp->f_data & ~(intptr_t)1); in pipe_kqfilter()
1293 rpb = &pipe->bufferB; in pipe_kqfilter()
1294 wpb = &pipe->bufferA; in pipe_kqfilter()
1296 rpb = &pipe->bufferA; in pipe_kqfilter()
1297 wpb = &pipe->bufferB; in pipe_kqfilter()
1311 if (rpb == &pipe->bufferA) in pipe_kqfilter()
1312 kn->kn_hook = (caddr_t)(void *)((intptr_t)pipe | 0); in pipe_kqfilter()
1314 kn->kn_hook = (caddr_t)(void *)((intptr_t)pipe | 1); in pipe_kqfilter()
1326 struct pipe *pipe; in filt_pipedetach() local
1328 pipe = (struct pipe *)((intptr_t)kn->kn_hook & ~(intptr_t)1); in filt_pipedetach()
1330 rpb = &pipe->bufferB; in filt_pipedetach()
1331 wpb = &pipe->bufferA; in filt_pipedetach()
1333 rpb = &pipe->bufferA; in filt_pipedetach()
1334 wpb = &pipe->bufferB; in filt_pipedetach()
1345 struct pipe *pipe; in filt_piperead() local
1348 pipe = (struct pipe *)((intptr_t)kn->kn_fp->f_data & ~(intptr_t)1); in filt_piperead()
1350 rpb = &pipe->bufferB; in filt_piperead()
1351 wpb = &pipe->bufferA; in filt_piperead()
1353 rpb = &pipe->bufferA; in filt_piperead()
1354 wpb = &pipe->bufferB; in filt_piperead()
1407 struct pipe *pipe; in filt_pipewrite() local
1410 pipe = (struct pipe *)((intptr_t)kn->kn_fp->f_data & ~(intptr_t)1); in filt_pipewrite()
1412 rpb = &pipe->bufferB; in filt_pipewrite()
1413 wpb = &pipe->bufferA; in filt_pipewrite()
1415 rpb = &pipe->bufferA; in filt_pipewrite()
1416 wpb = &pipe->bufferB; in filt_pipewrite()