Greg Kroah-Hartman | b244131 | 2017-11-01 15:07:57 +0100 | [diff] [blame] | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
Sargun Dhillon | 1a922fe | 2016-12-02 02:42:18 -0800 | [diff] [blame] | 2 | #ifndef __CGROUP_HELPERS_H |
| 3 | #define __CGROUP_HELPERS_H |
Daniel Borkmann | d8079d8 | 2021-09-14 01:07:58 +0200 | [diff] [blame] | 4 | |
Sargun Dhillon | 1a922fe | 2016-12-02 02:42:18 -0800 | [diff] [blame] | 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 | |
Daniel Borkmann | d8079d8 | 2021-09-14 01:07:58 +0200 | [diff] [blame] | 12 | /* cgroupv2 related */ |
Yosry Ahmed | 434992b | 2022-08-24 16:31:16 -0700 | [diff] [blame] | 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); |
Hou Tao | 2a42461 | 2022-11-21 15:34:39 +0800 | [diff] [blame] | 21 | void remove_cgroup(const char *relative_path); |
Yosry Ahmed | 434992b | 2022-08-24 16:31:16 -0700 | [diff] [blame] | 22 | unsigned long long get_cgroup_id(const char *relative_path); |
Yafang Shao | bf47300 | 2023-11-11 09:00:33 +0000 | [diff] [blame] | 23 | int get_cgroup1_hierarchy_id(const char *subsys_name); |
Sargun Dhillon | 1a922fe | 2016-12-02 02:42:18 -0800 | [diff] [blame] | 24 | |
Yosry Ahmed | 434992b | 2022-08-24 16:31:16 -0700 | [diff] [blame] | 25 | int join_cgroup(const char *relative_path); |
Kui-Feng Lee | 539c7e6 | 2023-06-23 18:46:00 -0700 | [diff] [blame] | 26 | int join_root_cgroup(void); |
Yosry Ahmed | 434992b | 2022-08-24 16:31:16 -0700 | [diff] [blame] | 27 | int join_parent_cgroup(const char *relative_path); |
Daniel Borkmann | d8079d8 | 2021-09-14 01:07:58 +0200 | [diff] [blame] | 28 | |
| 29 | int setup_cgroup_environment(void); |
| 30 | void cleanup_cgroup_environment(void); |
| 31 | |
| 32 | /* cgroupv1 related */ |
Yafang Shao | f744d35 | 2023-11-11 09:00:31 +0000 | [diff] [blame] | 33 | int set_classid(void); |
Daniel Borkmann | d8079d8 | 2021-09-14 01:07:58 +0200 | [diff] [blame] | 34 | int join_classid(void); |
Yafang Shao | c1dcc05 | 2023-11-11 09:00:32 +0000 | [diff] [blame] | 35 | unsigned long long get_classid_cgroup_id(void); |
Yafang Shao | f419927 | 2023-12-06 11:53:25 +0000 | [diff] [blame] | 36 | int open_classid(void); |
Daniel Borkmann | d8079d8 | 2021-09-14 01:07:58 +0200 | [diff] [blame] | 37 | |
| 38 | int setup_classid_environment(void); |
| 39 | void cleanup_classid_environment(void); |
| 40 | |
Yosry Ahmed | 434992b | 2022-08-24 16:31:16 -0700 | [diff] [blame] | 41 | #endif /* __CGROUP_HELPERS_H */ |