about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2012-04-29 19:54:03 -0400
committerRich Felker <dalias@aerifal.cx>2012-04-29 19:54:03 -0400
commit50da5c264fd84ea2de8cf75bf39ceb81a4eecd71 (patch)
treec9e335639f79c933def5c64e3b935ec17be5c41e
parent8b7112191020f1e44386a6311e0cb62ee4cea2ef (diff)
downloadmusl-50da5c264fd84ea2de8cf75bf39ceb81a4eecd71.tar.gz
musl-50da5c264fd84ea2de8cf75bf39ceb81a4eecd71.tar.xz
musl-50da5c264fd84ea2de8cf75bf39ceb81a4eecd71.zip
add linux-specific unshare syscall wrapper
-rw-r--r--include/sched.h1
-rw-r--r--src/linux/unshare.c8
2 files changed, 9 insertions, 0 deletions
diff --git a/include/sched.h b/include/sched.h
index 7b3f1600..e411c92b 100644
--- a/include/sched.h
+++ b/include/sched.h
@@ -56,6 +56,7 @@ int     sched_yield(void);
 #define CLONE_NEWNET	0x40000000
 #define CLONE_IO	0x80000000
 int clone (int (*)(void *), void *, int, void *, ...);
+int unshare(int);
 #endif
 
 #ifdef __cplusplus
diff --git a/src/linux/unshare.c b/src/linux/unshare.c
new file mode 100644
index 00000000..3861db3b
--- /dev/null
+++ b/src/linux/unshare.c
@@ -0,0 +1,8 @@
+#define _GNU_SOURCE
+#include <sched.h>
+#include "syscall.h"
+
+int unshare(int flags)
+{
+	return syscall(SYS_unshare, flags);
+}