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