summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2012-07-23 16:32:49 -0400
committerRich Felker <dalias@aerifal.cx>2012-07-23 16:32:49 -0400
commit42f0e965c42d7611e7a02718bffb1a8ffba74488 (patch)
tree7f56c41bc1d0067828c7f318b9be5cca3acf7cad
parent845a5e69fa33bf49eea81a7b8c80902ab1687f2e (diff)
downloadmusl-42f0e965c42d7611e7a02718bffb1a8ffba74488.tar.gz
add pipe2 syscall
based on patch by orc and Isaac Dunham, with some details fixed.
-rw-r--r--include/unistd.h1
-rw-r--r--src/linux/pipe2.c8
2 files changed, 9 insertions, 0 deletions
diff --git a/include/unistd.h b/include/unistd.h
index 9c737f7c..17fe5e7c 100644
--- a/include/unistd.h
+++ b/include/unistd.h
@@ -174,6 +174,7 @@ int setresgid(gid_t, gid_t, gid_t);
int getresuid(uid_t *, uid_t *, uid_t *);
int getresgid(gid_t *, gid_t *, gid_t *);
char *get_current_dir_name(void);
+int pipe2(int [2], int);
#endif
#if defined(_LARGEFILE64_SOURCE) || defined(_GNU_SOURCE)
diff --git a/src/linux/pipe2.c b/src/linux/pipe2.c
new file mode 100644
index 00000000..83282bb9
--- /dev/null
+++ b/src/linux/pipe2.c
@@ -0,0 +1,8 @@
+#define _GNU_SOURCE
+#include <unistd.h>
+#include "syscall.h"
+
+int pipe2(int fd[2], int flg)
+{
+ return syscall(SYS_pipe2, fd, flg);
+}