.set = cgfsng_set,
.unfreeze = cgfsng_unfreeze,
.setup_limits = cgfsng_setup_limits,
- .name = "cgroupfs-ng",
+ .driver = "cgfsng",
+ .version = "1.0.0",
.attach = cgfsng_attach,
.chown = cgfsng_chown,
.mount_cgroup = cgfsng_mount,
.nrtasks = cgfsng_nrtasks,
- .driver = CGFSNG,
/* unsupported */
.create_legacy = NULL,
__attribute__((constructor)) void cgroup_ops_init(void)
{
if (ops) {
- INFO("cgroup driver %s", ops->name);
+ INFO("Running with %s in version %s", ops->driver, ops->version);
return;
}
DEBUG("cgroup_init");
ops = cgfsng_ops_init();
if (ops)
- INFO("Initialized cgroup driver %s", ops->name);
+ INFO("Initialized cgroup driver %s", ops->driver);
}
bool cgroup_init(struct lxc_handler *handler)
}
if (ops) {
- INFO("cgroup driver %s initing for %s", ops->name, handler->name);
+ INFO("cgroup driver %s initing for %s", ops->driver, handler->name);
handler->cgroup_data = ops->init(handler);
}
if (ops->nrtasks)
return ops->nrtasks(handler->cgroup_data);
else
- WARN("cgroup driver \"%s\" doesn't implement nrtasks", ops->name);
+ WARN("cgroup driver \"%s\" doesn't implement nrtasks", ops->driver);
}
return -1;
ops->disconnect();
}
-cgroup_driver_t cgroup_driver(void)
-{
- return ops->driver;
-}
-
#define INIT_SCOPE "/init.scope"
void prune_init_scope(char *cg)
{
CGROUP_LAYOUT_UNIFIED = 2,
} cgroup_layout_t;
-typedef enum {
- CGFS,
- CGMANAGER,
- CGFSNG,
-} cgroup_driver_t;
-
struct cgroup_ops {
- const char *name;
+ const char *driver;
+ const char *version;
void *(*init)(struct lxc_handler *handler);
void (*destroy)(void *hdata, struct lxc_conf *conf);
bool (*mount_cgroup)(void *hdata, const char *root, int type);
int (*nrtasks)(void *hdata);
void (*disconnect)(void);
- cgroup_driver_t driver;
};
extern bool cgroup_attach(const char *name, const char *lxcpath, pid_t pid);
extern bool cgroup_get_hierarchies(int i, char ***out);
extern bool cgroup_unfreeze(struct lxc_handler *handler);
extern void cgroup_disconnect(void);
-extern cgroup_driver_t cgroup_driver(void);
extern void prune_init_scope(char *cg);
extern bool is_crucial_cgroup_subsystem(const char *s);