cgroup-util.h revision 03a7b521e3ffb7f5d153d90480ba5d4bc29d1e8f
124baf9a815afca02e01743867baf8319557e921kenneth_suter/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
124baf9a815afca02e01743867baf8319557e921kenneth_suter This file is part of systemd.
124baf9a815afca02e01743867baf8319557e921kenneth_suter Copyright 2010 Lennart Poettering
124baf9a815afca02e01743867baf8319557e921kenneth_suter systemd is free software; you can redistribute it and/or modify it
124baf9a815afca02e01743867baf8319557e921kenneth_suter under the terms of the GNU Lesser General Public License as published by
124baf9a815afca02e01743867baf8319557e921kenneth_suter the Free Software Foundation; either version 2.1 of the License, or
124baf9a815afca02e01743867baf8319557e921kenneth_suter (at your option) any later version.
124baf9a815afca02e01743867baf8319557e921kenneth_suter systemd is distributed in the hope that it will be useful, but
124baf9a815afca02e01743867baf8319557e921kenneth_suter WITHOUT ANY WARRANTY; without even the implied warranty of
124baf9a815afca02e01743867baf8319557e921kenneth_suter MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
124baf9a815afca02e01743867baf8319557e921kenneth_suter Lesser General Public License for more details.
124baf9a815afca02e01743867baf8319557e921kenneth_suter You should have received a copy of the GNU Lesser General Public License
124baf9a815afca02e01743867baf8319557e921kenneth_suter along with systemd; If not, see <http://www.gnu.org/licenses/>.
124baf9a815afca02e01743867baf8319557e921kenneth_suter/* An enum of well known cgroup controllers */
9aa7345ed04cb0b19c9302863d6012606c67c0c6kenneth_suter#define CGROUP_CONTROLLER_TO_MASK(c) (1 << (c))
b4d83f40b246f01d3fce58e93251be9776f36ac1kenneth_suter/* A bit mask of well known cgroup controllers */
124baf9a815afca02e01743867baf8319557e921kenneth_suter CGROUP_MASK_CPU = CGROUP_CONTROLLER_TO_MASK(CGROUP_CONTROLLER_CPU),
} CGroupMask;
int cg_kill(const char *controller, const char *path, int sig, bool sigcont, bool ignore_self, Set *s);
int cg_kill_recursive(const char *controller, const char *path, int sig, bool sigcont, bool ignore_self, bool remove, Set *s);
int cg_migrate(const char *cfrom, const char *pfrom, const char *cto, const char *pto, bool ignore_self);
int cg_migrate_recursive(const char *cfrom, const char *pfrom, const char *cto, const char *pto, bool ignore_self, bool remove);
int cg_migrate_recursive_fallback(const char *cfrom, const char *pfrom, const char *cto, const char *pto, bool ignore_self, bool rem);
int cg_set_attribute(const char *controller, const char *path, const char *attribute, const char *value);
int cg_set_group_access(const char *controller, const char *path, mode_t mode, uid_t uid, gid_t gid);
int cg_set_task_access(const char *controller, const char *path, mode_t mode, uid_t uid, gid_t gid);
char *cg_escape(const char *p);
bool cg_controller_is_valid(const char *p);
int cg_attach_everywhere(CGroupMask supported, const char *path, pid_t pid, cg_migrate_callback_t callback, void *userdata);
int cg_attach_many_everywhere(CGroupMask supported, const char *path, Set* pids, cg_migrate_callback_t callback, void *userdata);
int cg_migrate_everywhere(CGroupMask supported, const char *from, const char *to, cg_migrate_callback_t callback, void *userdata);
int cg_unified(void);
void cg_unified_flush(void);
bool cg_is_unified_wanted(void);
bool cg_is_legacy_wanted(void);