summaryrefslogtreecommitdiffstats
path: root/include/libcgroup.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/libcgroup.h')
-rw-r--r--include/libcgroup.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/include/libcgroup.h b/include/libcgroup.h
index 0942161..9b11321 100644
--- a/include/libcgroup.h
+++ b/include/libcgroup.h
@@ -130,6 +130,18 @@ struct cgroup_file_info {
*/
#define CG_HIER_MAX CG_CONTROLLER_MAX
+
+/**
+ * Ignore errors caused by migration of tasks to parent group.
+ */
+#define CGFLAG_DELETE_IGNORE_MIGRATION 1
+
+/**
+ * Recursively delete all child groups.
+ */
+#define CGFLAG_DELETE_RECURSIVE 2
+
+
struct cgroup_stat {
char name[FILENAME_MAX];
char value[CG_VALUE_MAX];
@@ -155,6 +167,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