#include "manager.h"
#include "job.h"
#include "cgroup.h"
+#include "cgroup-attr.h"
struct Meta {
Manager *manager;
/* Counterparts in the cgroup filesystem */
CGroupBonding *cgroup_bondings;
+ CGroupAttribute *cgroup_attributes;
/* Per type list */
LIST_FIELDS(Meta, units_by_type);
struct UnitVTable {
const char *suffix;
+ /* Config file sections this unit type understands, separated
+ * by NUL chars */
+ const char *sections;
+
/* This should reset all type-specific variables. This should
* not allocate memory, and is called with zero-initialized
* data. It should hence only initialize variables that need
int unit_add_cgroup_from_text(Unit *u, const char *name);
int unit_add_default_cgroups(Unit *u);
CGroupBonding* unit_get_default_cgroup(Unit *u);
+int unit_add_cgroup_attribute(Unit *u, const char *controller, const char *name, const char *value, CGroupAttributeMapCallback map_callback);
int unit_choose_id(Unit *u, const char *name);
int unit_set_description(Unit *u, const char *description);
int unit_coldplug(Unit *u);
-void unit_status_printf(Unit *u, const char *format, ...);
+void unit_status_printf(Unit *u, const char *status, const char *format, ...);
bool unit_need_daemon_reload(Unit *u);