summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/libcgroup.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/include/libcgroup.h b/include/libcgroup.h
index 3d5660c..d3fad97 100644
--- a/include/libcgroup.h
+++ b/include/libcgroup.h
@@ -114,6 +114,21 @@ enum cgroup_daemon_type {
CGROUP_DAEMON_UNCHANGE_CHILDREN = 0x1,
};
+/**
+ * Flags for cgroup_delete_cgroup_ext
+ */
+enum cgroup_delete_flag {
+ /**
+ * Ignore errors caused by migration of tasks to parent group.
+ */
+ CGFLAG_DELETE_IGNORE_MIGRATION = 1,
+
+ /**
+ * Recursively delete all child groups.
+ */
+ CGFLAG_DELETE_RECURSIVE = 2,
+};
+
struct cgroup_file_info {
enum cgroup_file_type type;
const char *path;
@@ -155,6 +170,21 @@ int cgroup_create_cgroup_from_parent(struct cgroup *cgroup, int ignore_ownership
int cgroup_copy_cgroup(struct cgroup *dst, struct cgroup *src);
/**
+ * Delete control group.
+ * All tasks are automatically moved to parent group.
+ * If CGFLAG_DELETE_IGNORE_MIGRATION flag is used, the errors that occurred
+ * during the task movement are ignored.
+ * CGFLAG_DELETE_RECURSIVE flag specifies that all subgroups should be removed
+ * too. If root group is being removed with this flag specified, all subgroups
+ * are removed but the root group itself is left undeleted.
+ *
+ * @param cgroup Group to delete.
+ * @param flags Combination of CGFLAG_DELETE_* flags, which indicate what and
+ * how to delete.
+ */
+int cgroup_delete_cgroup_ext(struct cgroup *cgroup, int flags);
+
+/**
* Changes the cgroup of a program based on the rules in the config file.
* If a rule exists for the given UID, GID or PROCESS NAME, then the given
* PID is placed into the correct group. By default, this function parses