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