- int vc_set_iattr(dev_t dev, ino_t ino, xid_t xid, uint32_t flags, uint32_t mask);
- int vc_get_iattr(dev_t dev, ino_t ino, xid_t * /*@null@*/ xid,
+ int vc_set_iattr(char const *filename, xid_t xid, uint32_t flags, uint32_t mask);
+ int vc_get_iattr(char const *filename, xid_t * /*@null@*/ xid,
uint32_t * /*@null@*/ flags, uint32_t * /*@null@*/ mask);
- int vc_set_iattr_compat(char const *filename,
- dev_t dev, ino_t ino, xid_t xid,
- uint32_t flags, uint32_t mask,
- mode_t const * /*@null@*/ mode);
-
- int vc_get_iattr_compat(char const *filename,
- dev_t dev, ino_t ino,
- xid_t * /*@null@*/ xid,
- uint32_t * /*@null@*/ flags,
- uint32_t * /*@inout@*/ mask,
- mode_t const * /*@null@*/ mode);
-
struct vc_vx_info {
xid_t xid;
pid_t initpid;
int vc_set_vhi_name(xid_t xid, vc_uts_type type, char const *val, size_t len);
int vc_get_vhi_name(xid_t xid, vc_uts_type type, char *val, size_t len);
+
+ int vc_enter_namespace(xid_t xid);
+
+
+ uint32_t vc_textlist2flag(char const *, size_t len,
+ char const **err_ptr, size_t *err_len);
+ uint32_t vc_text2flag(char const *, size_t len);
+ char const * vc_hiflag2text(unsigned int);
int vc_text2cap(char const *);
- char const * vc_cap2text(int);
+ char const * vc_cap2text(unsigned int);
inline static int vc_get_securecaps() {
return ( (1<<VC_CAP_LINUX_IMMUTABLE) | (1<<VC_CAP_NET_BROADCAST) |
(1<<VC_CAP_MKNOD) | (1<<VC_CAP_QUOTACTL) );
}
- inline static int vc_setfilecontext(dev_t dev, ino_t ino, xid_t xid) {
- return vc_set_iattr(dev, ino, xid, 0, VC_IATTR_XID);
+ inline static int vc_setfilecontext(char const *filename, xid_t xid) {
+ return vc_set_iattr(filename, xid, 0, VC_IATTR_XID);
}
- inline static xid_t vc_getfilecontext(dev_t dev, ino_t ino) {
+ inline static xid_t vc_getfilecontext(char const *filename) {
xid_t res;
- if (vc_get_iattr(dev, ino, &res, 0,0)==-1) return VC_NOCTX;
+ if (vc_get_iattr(filename, &res, 0,0)==-1) return VC_NOCTX;
return res;
}
freed by the caller. */
char * vc_getVserverByCtx(xid_t ctx, /*@null@*/vcCfgStyle *style,
/*@null@*/char const *revdir);
+
+#define vcSKEL_INTERFACES 1u
+#define vcSKEL_PKGMGMT 2u
+#define vcSKEL_FILESYSTEM 4u
+
+ /** Create a basic configuration skeleton for a vserver plus toplevel
+ * directories for pkgmanagemt and filesystem (when requested). */
+ int vc_createSkeleton(char const *id, vcCfgStyle style, int flags);
#ifdef __cplusplus
}