Add VCMD_{enter,set}_space_v2 support, in preparation of pivot_root.
[util-vserver.git] / lib / vserver.h
index 455e5b8..4d92b29 100644 (file)
 #define VC_CAP_LEASE                   28
 #define VC_CAP_AUDIT_WRITE             29
 #define VC_CAP_AUDIT_CONTROL           30
+#define VC_CAP_SETFCAP                 31
+#define VC_CAP_MAC_OVERRIDE            32
+#define VC_CAP_MAC_ADMIN               33
 
 #define VC_IMMUTABLE_FILE_FL           0x0000010lu
 #define VC_IMMUTABLE_LINK_FL           0x0008000lu
 #define VC_IATTR_ADMIN                 0x00000001u
 #define VC_IATTR_WATCH                 0x00000002u
 #define VC_IATTR_HIDE                  0x00000004u
-#define VC_IATTR_FLAGS                 0x00000007u
+#define VC_IATTR_WRITE                 0x00000008u
+#define VC_IATTR_FLAGS                 0x0000000fu
 
 #define VC_IATTR_BARRIER               0x00010000u
 #define        VC_IATTR_IUNLINK                0x00020000u
 #define VC_VXF_PROLIFIC                        (1ULL<<49)
 
 #define VC_VXF_IGNEG_NICE              (1ULL<<52)
+#define VC_VXF_IGNEG_IONICE            (1ULL<<53)
 
 
 // the ccapabilities
@@ -759,10 +764,11 @@ extern "C" {
                                char *val, size_t len)       VC_ATTR_NONNULL((3));
 
     /* namespace related functions */
-  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();
+  int          vc_enter_namespace(xid_t xid, uint_least64_t mask, uint32_t index);
+  int          vc_set_namespace(xid_t xid, uint_least64_t mask, uint32_t index);
+  int          vc_cleanup_namespace(void);
+  uint_least64_t vc_get_space_mask(void);
+  uint_least64_t vc_get_space_default(void);
 
 
     /* disk limit related things */
@@ -966,8 +972,9 @@ extern "C" {
                 vcFEATURE_COMPAT, vcFEATURE_MIGRATE, vcFEATURE_NAMESPACE,
                 vcFEATURE_SCHED,  vcFEATURE_VINFO,   vcFEATURE_VHI,
                  vcFEATURE_VSHELPER0, vcFEATURE_VSHELPER, vcFEATURE_VWAIT,
-                vcFEATURE_VNET, vcFEATURE_VSTAT,     vcFEATURE_PPTAG,
-                vcFEATURE_PIDSPACE, }
+                vcFEATURE_VNET,   vcFEATURE_VSTAT,   vcFEATURE_PPTAG,
+                vcFEATURE_PIDSPACE, vcFEATURE_SPACES, vcFEATURE_PERSISTENT,
+                }
     vcFeatureSet;
 
   bool         vc_isSupported(vcFeatureSet) VC_ATTR_CONST;
@@ -1047,6 +1054,8 @@ extern "C" {
 
   int          vc_compareVserverById(char const *lhs, vcCfgStyle lhs_style,
                                      char const *rhs, vcCfgStyle rhs_style);
+
+  void         vc_exitLikeProcess(int pid, int ret) VC_ATTR_NORETURN;
  
 #define vcSKEL_INTERFACES      1u
 #define vcSKEL_PKGMGMT         2u