X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fvserver.h;h=5ab9bc4e7a6616a45d1f6e9b8ab9a2d1c0c08e54;hb=60295bc3135d3e16d4f5c4aed6882132546326d5;hp=20b35f0130194faa3eb2bcc7dc60916d1c81a453;hpb=9fd81ffc8ad3800fe8e309cd9121b33d4cafae3d;p=util-vserver.git diff --git a/lib/vserver.h b/lib/vserver.h index 20b35f0..5ab9bc4 100644 --- a/lib/vserver.h +++ b/lib/vserver.h @@ -28,6 +28,7 @@ #include #include #include +#include #ifndef IS_DOXYGEN #if defined(__GNUC__) @@ -232,6 +233,8 @@ #define VC_NXF_INFO_LOCK 0x00000001ull #define VC_NXF_INFO_PRIVATE 0x00000008ull +#define VC_NXF_SINGLE_IP 0x00000100ull + #define VC_NXF_HIDE_NETIF 0x02000000ull #define VC_NXF_STATE_SETUP (1ULL<<32) @@ -249,6 +252,30 @@ #define VC_VLIMIT_SEMARY 20 #define VC_VLIMIT_NSEMS 21 #define VC_VLIMIT_DENTRY 22 +#define VC_VLIMIT_MAPPED 23 + + +// the VCI bit values +#define VC_VCI_NO_DYNAMIC (1 << 0) +#define VC_VCI_SPACES (1 << 10) + + +// the device mapping flags +#define VC_DATTR_CREATE 0x00000001 +#define VC_DATTR_OPEN 0x00000002 + +#define VC_DATTR_REMAP 0x00000010 + + +#ifndef CLONE_NEWNS +# define CLONE_NEWNS 0x00020000 +#endif +#ifndef CLONE_NEWUTS +# define CLONE_NEWUTS 0x04000000 +#endif +#ifndef CLONE_NEWIPC +# define CLONE_NEWIPC 0x08000000 +#endif @@ -605,9 +632,10 @@ extern "C" { /** Returns true iff \a xid is a dynamic xid */ bool vc_is_dynamic_xid(xid_t xid); - int vc_enter_namespace(xid_t xid); - int vc_set_namespace(); + int vc_enter_namespace(xid_t xid, uint_least64_t mask); + int vc_set_namespace(xid_t xid, uint_least64_t mask); int vc_cleanup_namespace(); + uint_least64_t vc_get_space_mask(); /** \brief Flags of process-contexts @@ -828,6 +856,8 @@ extern "C" { * \ingroup syscalls */ int vc_wait_exit(xid_t xid); + + int vc_set_mapping(xid_t xid, const char *device, const char *target, uint32_t flags); typedef enum { vcFEATURE_VKILL, vcFEATURE_IATTR, vcFEATURE_RLIMIT, vcFEATURE_COMPAT, vcFEATURE_MIGRATE, vcFEATURE_NAMESPACE,