1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | #ifndef __CGROUP_HELPERS_H |
3 | #define __CGROUP_HELPERS_H |
4 | |
5 | #include <errno.h> |
6 | #include <string.h> |
7 | |
8 | #define clean_errno() (errno == 0 ? "None" : strerror(errno)) |
9 | #define log_err(MSG, ...) fprintf(stderr, "(%s:%d: errno: %s) " MSG "\n", \ |
10 | __FILE__, __LINE__, clean_errno(), ##__VA_ARGS__) |
11 | |
12 | /* cgroupv2 related */ |
13 | int enable_controllers(const char *relative_path, const char *controllers); |
14 | int write_cgroup_file(const char *relative_path, const char *file, |
15 | const char *buf); |
16 | int write_cgroup_file_parent(const char *relative_path, const char *file, |
17 | const char *buf); |
18 | int cgroup_setup_and_join(const char *relative_path); |
19 | int get_root_cgroup(void); |
20 | int create_and_get_cgroup(const char *relative_path); |
21 | void remove_cgroup(const char *relative_path); |
22 | unsigned long long get_cgroup_id(const char *relative_path); |
23 | int get_cgroup1_hierarchy_id(const char *subsys_name); |
24 | |
25 | int join_cgroup(const char *relative_path); |
26 | int join_root_cgroup(void); |
27 | int join_parent_cgroup(const char *relative_path); |
28 | |
29 | int setup_cgroup_environment(void); |
30 | void cleanup_cgroup_environment(void); |
31 | |
32 | /* cgroupv1 related */ |
33 | int set_classid(void); |
34 | int join_classid(void); |
35 | unsigned long long get_classid_cgroup_id(void); |
36 | int open_classid(void); |
37 | |
38 | int setup_classid_environment(void); |
39 | void cleanup_classid_environment(void); |
40 | |
41 | #endif /* __CGROUP_HELPERS_H */ |
42 | |