162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci#ifndef __CGROUP_HELPERS_H 362306a36Sopenharmony_ci#define __CGROUP_HELPERS_H 462306a36Sopenharmony_ci 562306a36Sopenharmony_ci#include <errno.h> 662306a36Sopenharmony_ci#include <string.h> 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci#define clean_errno() (errno == 0 ? "None" : strerror(errno)) 962306a36Sopenharmony_ci#define log_err(MSG, ...) fprintf(stderr, "(%s:%d: errno: %s) " MSG "\n", \ 1062306a36Sopenharmony_ci __FILE__, __LINE__, clean_errno(), ##__VA_ARGS__) 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci/* cgroupv2 related */ 1362306a36Sopenharmony_ciint enable_controllers(const char *relative_path, const char *controllers); 1462306a36Sopenharmony_ciint write_cgroup_file(const char *relative_path, const char *file, 1562306a36Sopenharmony_ci const char *buf); 1662306a36Sopenharmony_ciint write_cgroup_file_parent(const char *relative_path, const char *file, 1762306a36Sopenharmony_ci const char *buf); 1862306a36Sopenharmony_ciint cgroup_setup_and_join(const char *relative_path); 1962306a36Sopenharmony_ciint get_root_cgroup(void); 2062306a36Sopenharmony_ciint create_and_get_cgroup(const char *relative_path); 2162306a36Sopenharmony_civoid remove_cgroup(const char *relative_path); 2262306a36Sopenharmony_ciunsigned long long get_cgroup_id(const char *relative_path); 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ciint join_cgroup(const char *relative_path); 2562306a36Sopenharmony_ciint join_root_cgroup(void); 2662306a36Sopenharmony_ciint join_parent_cgroup(const char *relative_path); 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ciint setup_cgroup_environment(void); 2962306a36Sopenharmony_civoid cleanup_cgroup_environment(void); 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci/* cgroupv1 related */ 3262306a36Sopenharmony_ciint set_classid(unsigned int id); 3362306a36Sopenharmony_ciint join_classid(void); 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ciint setup_classid_environment(void); 3662306a36Sopenharmony_civoid cleanup_classid_environment(void); 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ci#endif /* __CGROUP_HELPERS_H */ 39