diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/libcgroup.h | 30 |
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 |