// the VCI bit values
#define VC_VCI_NO_DYNAMIC (1 << 0)
+#define VC_VCI_PROC_SECURE (1 << 4)
+#define VC_VCI_HARDCPU (1 << 5)
+#define VC_VCI_IDLELIMIT (1 << 6)
+#define VC_VCI_IDLETIME (1 << 7)
+#define VC_VCI_COWBL (1 << 8)
+#define VC_VCI_FULLCOWBL (1 << 9)
#define VC_VCI_SPACES (1 << 10)
#define VC_VCI_NETV2 (1 << 11)
+#define VC_VCI_MEMCG (1 << 12)
+#define VC_VCI_DEBUG (1 << 16)
+#define VC_VCI_HISTORY (1 << 20)
+#define VC_VCI_TAGGED (1 << 24)
#define VC_VCI_PPTAG (1 << 28)
*/
vc_vci_t vc_get_vci();
+ int vc_get_kernel();
+
/** \brief Moves current process into a context
* \ingroup syscalls
*
int vc_set_badness(xid_t xid, int64_t badness);
+ /** \brief Namespaces allowed to unshare */
+ struct vc_umask {
+ uint_least64_t umask;
+ uint_least64_t mask;
+ };
+
+ int vc_get_umask(xid_t xid, struct vc_umask *umask);
+ int vc_set_umask(xid_t xid, struct vc_umask const *umask);
+
/** \brief Information about parsing errors
* \ingroup helper
*/
int vc_list2ccap(char const *, size_t len,
struct vc_err_listparser *err,
struct vc_ctx_caps *);
-
+ char const * vc_loumask2text(uint_least64_t *);
+ int vc_list2umask(char const *, size_t len,
+ struct vc_err_listparser *err,
+ struct vc_umask *);
int vc_list2cflag(char const *, size_t len,
struct vc_err_listparser *err,
struct vc_ctx_flags *flags);
vcFEATURE_VSHELPER0, vcFEATURE_VSHELPER, vcFEATURE_VWAIT,
vcFEATURE_VNET, vcFEATURE_VSTAT, vcFEATURE_PPTAG,
vcFEATURE_PIDSPACE, vcFEATURE_SPACES, vcFEATURE_PERSISTENT,
- vcFEATURE_PIVOT_ROOT,
+ vcFEATURE_PIVOT_ROOT, vcFEATURE_MEMCG, vcFEATURE_DYNAMIC,
+ vcFEATURE_BME,
}
vcFeatureSet;