bigbiff bigbiff | e60683a | 2013-02-22 20:55:50 -0500 | [diff] [blame] | 1 | /* Compat code so unshare and setns can be used with older libcs */ |
| 2 | #ifndef UTIL_LINUX_NAMESPACE_H |
| 3 | # define UTIL_LINUX_NAMESPACE_H |
| 4 | |
| 5 | # include <sched.h> |
| 6 | |
| 7 | # ifndef CLONE_NEWSNS |
| 8 | # define CLONE_NEWNS 0x00020000 |
| 9 | # endif |
| 10 | # ifndef CLONE_NEWUTS |
| 11 | # define CLONE_NEWUTS 0x04000000 |
| 12 | # endif |
| 13 | # ifndef CLONE_NEWIPC |
| 14 | # define CLONE_NEWIPC 0x08000000 |
| 15 | # endif |
| 16 | # ifndef CLONE_NEWNET |
| 17 | # define CLONE_NEWNET 0x40000000 |
| 18 | # endif |
| 19 | # ifndef CLONE_NEWUSER |
| 20 | # define CLONE_NEWUSER 0x10000000 |
| 21 | # endif |
| 22 | # ifndef CLONE_NEWPID |
| 23 | # define CLONE_NEWPID 0x20000000 |
| 24 | # endif |
| 25 | |
| 26 | # ifndef HAVE_UNSHARE |
| 27 | # include <sys/syscall.h> |
| 28 | static inline int unshare(int flags) |
| 29 | { |
| 30 | return syscall(SYS_unshare, flags); |
| 31 | } |
| 32 | # endif |
| 33 | |
| 34 | # ifndef HAVE_SETNS |
| 35 | # include <sys/syscall.h> |
| 36 | static inline int setns(int fd, int nstype) |
| 37 | { |
| 38 | return syscall(SYS_setns, fd, nstype); |
| 39 | } |
| 40 | # endif |
| 41 | |
| 42 | #endif /* UTIL_LINUX_NAMESPACE_H */ |