summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/namespace.h43
-rw-r--r--sys-utils/nsenter.c28
-rw-r--r--sys-utils/unshare.c29
3 files changed, 45 insertions, 55 deletions
diff --git a/include/namespace.h b/include/namespace.h
new file mode 100644
index 000000000..8ccc3f6b3
--- /dev/null
+++ b/include/namespace.h
@@ -0,0 +1,43 @@
+/* Compat code so unshare and setns can be used with older libcs */
+#ifndef UTIL_LINUX_NAMESPACE_H
+#define UTIL_LINUX_NAMESPACE_H
+
+#include <sched.h>
+
+#ifndef CLONE_NEWSNS
+# define CLONE_NEWNS 0x00020000
+#endif
+#ifndef CLONE_NEWUTS
+# define CLONE_NEWUTS 0x04000000
+#endif
+#ifndef CLONE_NEWIPC
+# define CLONE_NEWIPC 0x08000000
+#endif
+#ifndef CLONE_NEWNET
+# define CLONE_NEWNET 0x40000000
+#endif
+#ifndef CLONE_NEWUSER
+# define CLONE_NEWUSER 0x10000000
+#endif
+#ifndef CLONE_NEWPID
+# define CLONE_NEWPID 0x20000000
+#endif
+
+#ifndef HAVE_UNSHARE
+# include <sys/syscall.h>
+
+static inline int unshare(int flags)
+{
+ return syscall(SYS_unshare, flags);
+}
+#endif
+
+#ifndef HAVE_SETNS
+# include <sys/syscall.h>
+static inline int setns(int fd, int nstype)
+{
+ return syscall(SYS_setns, fd, nstype);
+}
+#endif /* HAVE_SETNS */
+
+#endif /* UTIL_LINUX_NAMESPACE_H */
diff --git a/sys-utils/nsenter.c b/sys-utils/nsenter.c
index 99b18b05f..0b5d17da7 100644
--- a/sys-utils/nsenter.c
+++ b/sys-utils/nsenter.c
@@ -31,33 +31,7 @@
#include "nls.h"
#include "c.h"
#include "closestream.h"
-
-#ifndef CLONE_NEWSNS
-# define CLONE_NEWNS 0x00020000
-#endif
-#ifndef CLONE_NEWUTS
-# define CLONE_NEWUTS 0x04000000
-#endif
-#ifndef CLONE_NEWIPC
-# define CLONE_NEWIPC 0x08000000
-#endif
-#ifndef CLONE_NEWNET
-# define CLONE_NEWNET 0x40000000
-#endif
-#ifndef CLONE_NEWUSER
-# define CLONE_NEWUSER 0x10000000
-#endif
-#ifndef CLONE_NEWPID
-# define CLONE_NEWPID 0x20000000
-#endif
-
-#ifndef HAVE_SETNS
-# include <sys/syscall.h>
-static int setns(int fd, int nstype)
-{
- return syscall(SYS_setns, fd, nstype);
-}
-#endif /* HAVE_SETNS */
+#include "namespace.h"
static struct namespace_file{
int nstype;
diff --git a/sys-utils/unshare.c b/sys-utils/unshare.c
index 00cc2cf79..9b849ee9e 100644
--- a/sys-utils/unshare.c
+++ b/sys-utils/unshare.c
@@ -28,34 +28,7 @@
#include "nls.h"
#include "c.h"
#include "closestream.h"
-
-#ifndef CLONE_NEWSNS
-# define CLONE_NEWNS 0x00020000
-#endif
-#ifndef CLONE_NEWUTS
-# define CLONE_NEWUTS 0x04000000
-#endif
-#ifndef CLONE_NEWIPC
-# define CLONE_NEWIPC 0x08000000
-#endif
-#ifndef CLONE_NEWNET
-# define CLONE_NEWNET 0x40000000
-#endif
-#ifndef CLONE_NEWUSER
-# define CLONE_NEWUSER 0x10000000
-#endif
-#ifndef CLONE_NEWPID
-# define CLONE_NEWPID 0x20000000
-#endif
-
-#ifndef HAVE_UNSHARE
-# include <sys/syscall.h>
-
-static int unshare(int flags)
-{
- return syscall(SYS_unshare, flags);
-}
-#endif
+#include "namespace.h"
static void usage(int status)
{