(root)/
util-linux-2.39/
include/
namespace.h
       1  
       2  /*
       3   * No copyright is claimed.  This code is in the public domain; do with
       4   * it what you wish.
       5   *
       6   * Compat code so unshare and setns can be used with older libcs
       7   */
       8  #ifndef UTIL_LINUX_NAMESPACE_H
       9  # define UTIL_LINUX_NAMESPACE_H
      10  
      11  # include <sched.h>
      12  
      13  # ifndef CLONE_NEWNS
      14  #  define CLONE_NEWNS 0x00020000
      15  # endif
      16  # ifndef CLONE_NEWCGROUP
      17  #  define CLONE_NEWCGROUP 0x02000000
      18  # endif
      19  # ifndef CLONE_NEWUTS
      20  #  define CLONE_NEWUTS 0x04000000
      21  # endif
      22  # ifndef CLONE_NEWIPC
      23  #  define CLONE_NEWIPC 0x08000000
      24  # endif
      25  # ifndef CLONE_NEWNET
      26  #  define CLONE_NEWNET 0x40000000
      27  # endif
      28  # ifndef CLONE_NEWUSER
      29  #  define CLONE_NEWUSER 0x10000000
      30  # endif
      31  # ifndef CLONE_NEWPID
      32  #  define CLONE_NEWPID 0x20000000
      33  # endif
      34  # ifndef CLONE_NEWTIME
      35  #  define CLONE_NEWTIME 0x00000080
      36  # endif
      37  
      38  # if !defined(HAVE_UNSHARE) || !defined(HAVE_SETNS)
      39  #  include <sys/syscall.h>
      40  # endif
      41  
      42  # if !defined(HAVE_UNSHARE) && defined(SYS_unshare)
      43  static inline int unshare(int flags)
      44  {
      45  	return syscall(SYS_unshare, flags);
      46  }
      47  # endif
      48  
      49  # if !defined(HAVE_SETNS) && defined(SYS_setns)
      50  static inline int setns(int fd, int nstype)
      51  {
      52  	return syscall(SYS_setns, fd, nstype);
      53  }
      54  # endif
      55  
      56  #endif	/* UTIL_LINUX_NAMESPACE_H */