xref: /minix3/minix/lib/libc/sys/pipe.c (revision 433d6423c39e34ec4b79c950597bb2d236f886be)
1*433d6423SLionel Sambuc #include <sys/cdefs.h>
2*433d6423SLionel Sambuc #include "namespace.h"
3*433d6423SLionel Sambuc #include <lib.h>
4*433d6423SLionel Sambuc 
5*433d6423SLionel Sambuc #include <string.h>
6*433d6423SLionel Sambuc #include <unistd.h>
7*433d6423SLionel Sambuc 
8*433d6423SLionel Sambuc #ifdef __weak_alias
9*433d6423SLionel Sambuc __weak_alias(pipe, _pipe)
10*433d6423SLionel Sambuc #endif
11*433d6423SLionel Sambuc 
12*433d6423SLionel Sambuc int
13*433d6423SLionel Sambuc pipe2(int fild[2], int flags)
14*433d6423SLionel Sambuc {
15*433d6423SLionel Sambuc 	message m;
16*433d6423SLionel Sambuc 
17*433d6423SLionel Sambuc 	memset(&m, 0, sizeof(m));
18*433d6423SLionel Sambuc 	m.m_lc_vfs_pipe2.flags = flags;
19*433d6423SLionel Sambuc 
20*433d6423SLionel Sambuc 	if (_syscall(VFS_PROC_NR, VFS_PIPE2, &m) < 0) return(-1);
21*433d6423SLionel Sambuc 	fild[0] = m.m_lc_vfs_pipe2.fd0;
22*433d6423SLionel Sambuc 	fild[1] = m.m_lc_vfs_pipe2.fd1;
23*433d6423SLionel Sambuc 	return(0);
24*433d6423SLionel Sambuc }
25*433d6423SLionel Sambuc 
26*433d6423SLionel Sambuc int
27*433d6423SLionel Sambuc pipe(int fild[2])
28*433d6423SLionel Sambuc {
29*433d6423SLionel Sambuc 	return pipe2(fild, 0);
30*433d6423SLionel Sambuc }
31