blob: 3a219ceba0c038d69d886fa22db8b3c4a9b1cd4f [file] [log] [blame]
bigbiff bigbiffe60683a2013-02-22 20:55:50 -05001/* 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>
28static 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>
36static 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 */