150472Speter/* SPDX-License-Identifier: GPL-2.0 */ 237Srgrimes#ifndef __CGROUP_HELPERS_H 337Srgrimes#define __CGROUP_HELPERS_H 437Srgrimes 581020Srwatson#include <errno.h> 681020Srwatson#include <string.h> 781020Srwatson 837Srgrimes#define clean_errno() (errno == 0 ? "None" : strerror(errno)) 981020Srwatson#define log_err(MSG, ...) fprintf(stderr, "(%s:%d: errno: %s) " MSG "\n", \ 1081020Srwatson __FILE__, __LINE__, clean_errno(), ##__VA_ARGS__) 11116119Smarkm 12116119Smarkm/* cgroupv2 related */ 1381020Srwatsonint enable_controllers(const char *relative_path, const char *controllers); 1481020Srwatsonint write_cgroup_file(const char *relative_path, const char *file, 1566621Skris const char *buf); 1675017Speterint write_cgroup_file_parent(const char *relative_path, const char *file, 1766621Skris const char *buf); 1875017Speterint cgroup_setup_and_join(const char *relative_path); 19206039Sdesint get_root_cgroup(void); 20206039Sdesint create_and_get_cgroup(const char *relative_path); 2181020Srwatsonvoid remove_cgroup(const char *relative_path); 2241444Sdillonunsigned long long get_cgroup_id(const char *relative_path); 2341444Sdillonint get_cgroup1_hierarchy_id(const char *subsys_name); 2481020Srwatson 2581020Srwatsonint join_cgroup(const char *relative_path); 2681020Srwatsonint join_root_cgroup(void); 2781020Srwatsonint join_parent_cgroup(const char *relative_path); 28126863Sdes 29126863Sdesint setup_cgroup_environment(void); 3018639Spstvoid cleanup_cgroup_environment(void); 3118639Spst 3218639Spst/* cgroupv1 related */ 3318639Spstint set_classid(void); 3418639Spstint join_classid(void); 3518639Spstunsigned long long get_classid_cgroup_id(void); 3618639Spstint open_classid(void); 3775017Speter 3818639Spstint setup_classid_environment(void); 3975017Spetervoid cleanup_classid_environment(void); 4018639Spst 4175017Speter#endif /* __CGROUP_HELPERS_H */ 4218639Spst