From 1323a8cca0aeedeb0093b1fff5b426f6338e26b9 Mon Sep 17 00:00:00 2001 From: drakenclimber Date: Fri, 22 Apr 2022 20:55:56 +0000 Subject: [PATCH] deploy: 7f9134019910a6357ce0ab778caa50d957ef9ce3 --- error_8h_source.html | 4 +- group__group__groups.html | 4 +- groups_8h_source.html | 20 +- iterators_8h_source.html | 44 ++-- libcgroup-internal_8h_source.html | 375 +++++++++++++++--------------- structcg__mount__table__s.html | 3 + tasks_8h_source.html | 24 +- 7 files changed, 239 insertions(+), 235 deletions(-) diff --git a/error_8h_source.html b/error_8h_source.html index d73b3568..26688ef1 100644 --- a/error_8h_source.html +++ b/error_8h_source.html @@ -131,8 +131,8 @@ $(function() {
109#endif
110
111#endif /* _LIBCGROUP_INIT_H */
-
int cgroup_get_last_errno(void)
Definition: api.c:4669
-
const char * cgroup_strerror(int code)
Definition: api.c:4658
+
int cgroup_get_last_errno(void)
Definition: api.c:4731
+
const char * cgroup_strerror(int code)
Definition: api.c:4720
@ ECGROUPMULTIMOUNTED
Definition: error.h:40
@ ECGEOF
Definition: error.h:68
@ ECGNOVERSIONCONVERT
Definition: error.h:79
diff --git a/group__group__groups.html b/group__group__groups.html index f77c5d55..3f84f3bb 100644 --- a/group__group__groups.html +++ b/group__group__groups.html @@ -712,7 +712,7 @@ int cgroup_convert_cgroup<

Physically create new control group in kernel, with all parameters and values copied from its parent group. The group is created in all hierarchies, where the parent group exists. I.e. following code creates subgroup in all hierarchies, because all of them have root (=parent) group.

struct cgroup *foo = cgroup_new_cgroup("foo");
-
int cgroup_create_cgroup_from_parent(struct cgroup *cgroup, int ignore_ownership)
Definition: api.c:2836
+
int cgroup_create_cgroup_from_parent(struct cgroup *cgroup, int ignore_ownership)
Definition: api.c:2898
Todo:
what is this good for? Why the list of controllers added by cgroup_add_controller() is not used, like in cgroup_create_cgroup()? I can't crate subgroup of root group in just one hierarchy with this function!
Parameters
@@ -874,7 +874,7 @@ int 
cgroup_convert_cgroup<

Read all information regarding the group from kernel. Based on name of the group, list of controllers and all parameters and their values are read from all hierarchies, where a group with given name exists. All existing controllers are replaced. I.e. following code will fill root with controllers from all hierarchies, because the root group is available in all of them.

struct cgroup *root = cgroup_new_cgroup("/");
-
int cgroup_get_cgroup(struct cgroup *cgroup)
Definition: api.c:3399
+
int cgroup_get_cgroup(struct cgroup *cgroup)
Definition: api.c:3461
Todo:
what is this function good for? Why is not considered only the list of controllers attached by cgroup_add_controller()? What owners will return cgroup_get_uid_gid() if the group is in multiple hierarchies, each with different owner of tasks file?
Parameters
diff --git a/groups_8h_source.html b/groups_8h_source.html index 921167f4..0bd42935 100644 --- a/groups_8h_source.html +++ b/groups_8h_source.html @@ -231,37 +231,37 @@ $(function() {
648
649#endif /* _LIBCGROUP_GROUPS_H */
int cgroup_get_uid_gid(struct cgroup *cgroup, uid_t *tasks_uid, gid_t *tasks_gid, uid_t *control_uid, gid_t *control_gid)
Definition: wrapper.c:417
-
int cgroup_get_procs(char *name, char *controller, pid_t **pids, int *size)
Definition: api.c:5706
-
int cgroup_list_mount_points(const enum cg_version_t cgrp_version, char ***mount_paths)
Definition: api.c:6029
+
int cgroup_get_procs(char *name, char *controller, pid_t **pids, int *size)
Definition: api.c:5768
+
int cgroup_list_mount_points(const enum cg_version_t cgrp_version, char ***mount_paths)
Definition: api.c:6091
int cgroup_get_value_int64(struct cgroup_controller *controller, const char *name, int64_t *value)
Definition: wrapper.c:497
-
int cgroup_delete_cgroup(struct cgroup *cgroup, int ignore_migration)
Definition: api.c:3090
+
int cgroup_delete_cgroup(struct cgroup *cgroup, int ignore_migration)
Definition: api.c:3152
int cgroup_get_value_name_count(struct cgroup_controller *controller)
Definition: wrapper.c:721
-
int cgroup_modify_cgroup(struct cgroup *cgroup)
Definition: api.c:2377
+
int cgroup_modify_cgroup(struct cgroup *cgroup)
Definition: api.c:2410
struct cgroup_controller * cgroup_add_controller(struct cgroup *cgroup, const char *name)
Definition: wrapper.c:52
-
int cgroup_get_controller_version(const char *const controller, enum cg_version_t *const version)
Definition: api.c:5964
+
int cgroup_get_controller_version(const char *const controller, enum cg_version_t *const version)
Definition: api.c:6026
int cgroup_add_value_string(struct cgroup_controller *controller, const char *name, const char *value)
Definition: wrapper.c:209
int cgroup_add_value_bool(struct cgroup_controller *controller, const char *name, bool value)
Definition: wrapper.c:290
int cgroup_set_uid_gid(struct cgroup *cgroup, uid_t tasks_uid, gid_t tasks_gid, uid_t control_uid, gid_t control_gid)
Definition: wrapper.c:403
struct cgroup_controller * cgroup_get_controller(struct cgroup *cgroup, const char *name)
Definition: wrapper.c:431
int cgroup_add_value_int64(struct cgroup_controller *controller, const char *name, int64_t value)
Definition: wrapper.c:254
-
int cgroup_delete_cgroup_ext(struct cgroup *cgroup, int flags)
Definition: api.c:3097
+
int cgroup_delete_cgroup_ext(struct cgroup *cgroup, int flags)
Definition: api.c:3159
int cgroup_compare_cgroup(struct cgroup *cgroup_a, struct cgroup *cgroup_b)
Definition: wrapper.c:367
-
int cgroup_create_cgroup_from_parent(struct cgroup *cgroup, int ignore_ownership)
Definition: api.c:2836
+
int cgroup_create_cgroup_from_parent(struct cgroup *cgroup, int ignore_ownership)
Definition: api.c:2898
void cgroup_free_controllers(struct cgroup *cgroup)
Definition: wrapper.c:181
int cgroup_set_value_string(struct cgroup_controller *controller, const char *name, const char *value)
Definition: wrapper.c:475
int cgroup_get_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t *value)
Definition: wrapper.c:547
char * cgroup_get_value_name(struct cgroup_controller *controller, int index)
Definition: wrapper.c:730
void cgroup_set_permissions(struct cgroup *cgroup, mode_t control_dperm, mode_t control_fperm, mode_t task_fperm)
Definition: api.c:375
int cgroup_set_value_int64(struct cgroup_controller *controller, const char *name, int64_t value)
Definition: wrapper.c:520
-
int cgroup_copy_cgroup(struct cgroup *dst, struct cgroup *src)
Definition: api.c:2489
+
int cgroup_copy_cgroup(struct cgroup *dst, struct cgroup *src)
Definition: api.c:2522
int cgroup_compare_controllers(struct cgroup_controller *cgca, struct cgroup_controller *cgcb)
Definition: wrapper.c:340
void cgroup_free(struct cgroup **cgroup)
Definition: wrapper.c:194
char * cgroup_get_cgroup_name(struct cgroup *cgroup)
Definition: wrapper.c:742
int cgroup_get_value_bool(struct cgroup_controller *controller, const char *name, bool *value)
Definition: wrapper.c:596
struct cgroup * cgroup_new_cgroup(const char *name)
Definition: wrapper.c:39
-
int cgroup_get_cgroup(struct cgroup *cgroup)
Definition: api.c:3399
+
int cgroup_get_cgroup(struct cgroup *cgroup)
Definition: api.c:3461
int cgroup_add_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t value)
Definition: wrapper.c:272
-
int cgroup_create_cgroup(struct cgroup *cgroup, int ignore_ownership)
Definition: api.c:2676
+
int cgroup_create_cgroup(struct cgroup *cgroup, int ignore_ownership)
Definition: api.c:2709
int cgroup_set_value_uint64(struct cgroup_controller *controller, const char *name, u_int64_t value)
Definition: wrapper.c:569
int cgroup_add_all_controllers(struct cgroup *cgroup)
Definition: wrapper.c:108
int cg_chmod_recursive(struct cgroup *cgroup, mode_t dir_mode, int dirm_change, mode_t file_mode, int filem_change)
Definition: api.c:346
diff --git a/iterators_8h_source.html b/iterators_8h_source.html index be1ce018..357f77e9 100644 --- a/iterators_8h_source.html +++ b/iterators_8h_source.html @@ -181,31 +181,31 @@ $(function() {
433#endif
434
435#endif /* _LIBCGROUP_ITERATORS_H */
-
int cgroup_walk_tree_end(void **handle)
Definition: api.c:4746
-
int cgroup_get_all_controller_end(void **handle)
Definition: api.c:5617
-
int cgroup_read_stats_begin(const char *controller, const char *path, void **handle, struct cgroup_stat *stat)
Definition: api.c:5004
-
int cgroup_get_subsys_mount_point_begin(const char *controller, void **handle, char *path)
Definition: api.c:5900
+
int cgroup_walk_tree_end(void **handle)
Definition: api.c:4808
+
int cgroup_get_all_controller_end(void **handle)
Definition: api.c:5679
+
int cgroup_read_stats_begin(const char *controller, const char *path, void **handle, struct cgroup_stat *stat)
Definition: api.c:5066
+
int cgroup_get_subsys_mount_point_begin(const char *controller, void **handle, char *path)
Definition: api.c:5962
cgroup_walk_type
Definition: iterators.h:74
-
int cgroup_get_subsys_mount_point_next(void **handle, char *path)
Definition: api.c:5931
-
int cgroup_get_all_controller_next(void **handle, struct controller_data *info)
Definition: api.c:5631
-
int cgroup_walk_tree_next(int depth, void **handle, struct cgroup_file_info *info, int base_level)
Definition: api.c:4719
+
int cgroup_get_subsys_mount_point_next(void **handle, char *path)
Definition: api.c:5993
+
int cgroup_get_all_controller_next(void **handle, struct controller_data *info)
Definition: api.c:5693
+
int cgroup_walk_tree_next(int depth, void **handle, struct cgroup_file_info *info, int base_level)
Definition: api.c:4781
#define CG_VALUE_MAX
Definition: iterators.h:233
-
int cgroup_get_controller_begin(void **handle, struct cgroup_mount_point *info)
Definition: api.c:5153
+
int cgroup_get_controller_begin(void **handle, struct cgroup_mount_point *info)
Definition: api.c:5215
cgroup_file_type
Definition: iterators.h:106
-
int cgroup_walk_tree_set_flags(void **handle, int flags)
Definition: api.c:4832
-
int cgroup_walk_tree_begin(const char *controller, const char *base_path, int depth, void **handle, struct cgroup_file_info *info, int *base_level)
Definition: api.c:4767
-
int cgroup_get_controller_next(void **handle, struct cgroup_mount_point *info)
Definition: api.c:5120
-
int cgroup_read_value_begin(const char *const controller, const char *path, const char *const name, void **handle, char *buffer, int max)
Definition: api.c:4928
-
int cgroup_get_subsys_mount_point_end(void **handle)
Definition: api.c:5953
-
int cgroup_get_controller_end(void **handle)
Definition: api.c:5104
-
int cgroup_read_stats_end(void **handle)
Definition: api.c:4966
-
int cgroup_read_value_next(void **handle, char *buffer, int max)
Definition: api.c:4908
-
int cgroup_read_value_end(void **handle)
Definition: api.c:4892
-
int cgroup_get_all_controller_begin(void **handle, struct controller_data *info)
Definition: api.c:5660
-
int cgroup_get_task_begin(const char *cgroup, const char *controller, void **handle, pid_t *pid)
Definition: api.c:5071
-
int cgroup_get_task_end(void **handle)
Definition: api.c:5035
-
int cgroup_get_task_next(void **handle, pid_t *pid)
Definition: api.c:5049
-
int cgroup_read_stats_next(void **handle, struct cgroup_stat *stat)
Definition: api.c:4984
+
int cgroup_walk_tree_set_flags(void **handle, int flags)
Definition: api.c:4894
+
int cgroup_walk_tree_begin(const char *controller, const char *base_path, int depth, void **handle, struct cgroup_file_info *info, int *base_level)
Definition: api.c:4829
+
int cgroup_get_controller_next(void **handle, struct cgroup_mount_point *info)
Definition: api.c:5182
+
int cgroup_read_value_begin(const char *const controller, const char *path, const char *const name, void **handle, char *buffer, int max)
Definition: api.c:4990
+
int cgroup_get_subsys_mount_point_end(void **handle)
Definition: api.c:6015
+
int cgroup_get_controller_end(void **handle)
Definition: api.c:5166
+
int cgroup_read_stats_end(void **handle)
Definition: api.c:5028
+
int cgroup_read_value_next(void **handle, char *buffer, int max)
Definition: api.c:4970
+
int cgroup_read_value_end(void **handle)
Definition: api.c:4954
+
int cgroup_get_all_controller_begin(void **handle, struct controller_data *info)
Definition: api.c:5722
+
int cgroup_get_task_begin(const char *cgroup, const char *controller, void **handle, pid_t *pid)
Definition: api.c:5133
+
int cgroup_get_task_end(void **handle)
Definition: api.c:5097
+
int cgroup_get_task_next(void **handle, pid_t *pid)
Definition: api.c:5111
+
int cgroup_read_stats_next(void **handle, struct cgroup_stat *stat)
Definition: api.c:5046
@ CGROUP_WALK_TYPE_POST_DIR
Definition: iterators.h:100
@ CGROUP_WALK_TYPE_PRE_DIR
Definition: iterators.h:87
@ CGROUP_FILE_TYPE_OTHER
Definition: iterators.h:109
diff --git a/libcgroup-internal_8h_source.html b/libcgroup-internal_8h_source.html index 031190ed..19fa1164 100644 --- a/libcgroup-internal_8h_source.html +++ b/libcgroup-internal_8h_source.html @@ -193,198 +193,199 @@ $(function() {
129 char name[FILENAME_MAX];
134 int index;
-
135 enum cg_version_t version;
-
136};
-
137
- -
139 pid_t pid; /* pid of the process which needs to change group */
-
140
-
141 /* Details of user under consideration for destination cgroup */
-
142 struct passwd *pw;
-
143 /* Gid of the process */
-
144 gid_t gid;
-
145};
-
146
-
147/* A rule that maps UID/GID to a cgroup */
- -
149 uid_t uid;
-
150 gid_t gid;
-
151 bool is_ignore;
-
152 char *procname;
-
153 char username[LOGIN_NAME_MAX];
-
154 char destination[FILENAME_MAX];
-
155 char *controllers[MAX_MNT_ELEMENTS];
-
156 struct cgroup_rule *next;
-
157};
-
158
-
159/* Container for a list of rules */
- -
161 struct cgroup_rule *head;
-
162 struct cgroup_rule *tail;
-
163 int len;
-
164};
-
165
-
166/*The walk_tree handle */
- -
168 FTS *fts;
-
169 int flags;
-
170};
-
171
- -
180 const char *name;
-
181 const char *value;
-
182 struct cgroup_dictionary_item *next;
-
183};
-
184
-
185/* Flags for cgroup_dictionary_create */
-
192#define CG_DICT_DONT_FREE_ITEMS 1
-
193
- -
203 struct cgroup_dictionary_item *head;
-
204 struct cgroup_dictionary_item *tail;
-
205 int flags;
-
206};
-
207
- -
210 struct cgroup_dictionary_item *item;
-
211};
-
212
-
216extern __thread int last_errno;
-
217
-
221extern jmp_buf parser_error_env;
-
222
-
223/* Internal API */
-
224char *cg_build_path(const char *name, char *path, const char *type);
-
225int cgroup_get_uid_gid_from_procfs(pid_t pid, uid_t *euid, gid_t *egid);
-
226int cgroup_get_procname_from_procfs(pid_t pid, char **procname);
-
227int cg_mkdir_p(const char *path);
-
228struct cgroup *create_cgroup_from_name_value_pairs(const char *name,
-
229 struct control_value *name_value, int nv_number);
-
230void init_cgroup_table(struct cgroup *cgroups, size_t count);
-
231
-
232/*
-
233 * Main mounting structures
-
234 */
-
235extern struct cg_mount_table_s cg_mount_table[CG_CONTROLLER_MAX];
-
236extern pthread_rwlock_t cg_mount_table_lock;
-
237
-
238/*
-
239 * config related structures
-
240 */
-
241
-
242extern __thread char *cg_namespace_table[CG_CONTROLLER_MAX];
-
243
-
244/*
-
245 * config related API
-
246 */
-
247int cgroup_config_insert_cgroup(char *cg_name);
-
248int cgroup_config_parse_controller_options(char *controller,
-
249 struct cgroup_dictionary *values);
-
250int template_config_insert_cgroup(char *cg_name);
-
251int template_config_parse_controller_options(char *controller,
-
252 struct cgroup_dictionary *values);
-
253int template_config_group_task_perm(char *perm_type, char *value);
-
254int template_config_group_admin_perm(char *perm_type, char *value);
-
255int cgroup_config_group_task_perm(char *perm_type, char *value);
-
256int cgroup_config_group_admin_perm(char *perm_type, char *value);
-
257int cgroup_config_insert_into_mount_table(char *name, char *mount_point);
-
258int cgroup_config_insert_into_namespace_table(char *name, char *mount_point);
-
259void cgroup_config_cleanup_mount_table(void);
-
260void cgroup_config_cleanup_namespace_table(void);
-
261int cgroup_config_define_default(void);
-
262
-
266extern int cgroup_dictionary_create(struct cgroup_dictionary **dict,
-
267 int flags);
-
271extern int cgroup_dictionary_add(struct cgroup_dictionary *dict,
-
272 const char *name, const char *value);
-
277extern int cgroup_dictionary_free(struct cgroup_dictionary *dict);
-
278
-
283extern int cgroup_dictionary_iterator_begin(struct cgroup_dictionary *dict,
-
284 void **handle, const char **name, const char **value);
-
288extern int cgroup_dictionary_iterator_next(void **handle,
-
289 const char **name, const char **value);
-
293extern void cgroup_dictionary_iterator_end(void **handle);
-
294
-
304int cg_chmod_path(const char *path, mode_t mode, int owner_is_umask);
-
305
-
315int cgroup_build_tasks_procs_path(char * const path,
-
316 size_t path_sz, const char * const cg_name,
-
317 const char * const ctrl_name);
-
318
-
330char *cg_build_path_locked(const char *setting, char *path,
-
331 const char *controller);
-
332
-
344int cgroup_fill_cgc(struct dirent *ctrl_dir, struct cgroup *cgroup,
-
345 struct cgroup_controller *cgc, int cg_index);
-
346
-
353int cgroup_test_subsys_mounted(const char *ctrl_name);
-
354
-
363int cgroup_copy_controller_values(struct cgroup_controller * const dst,
-
364 const struct cgroup_controller * const src);
-
365
-
373int cgroup_remove_value(struct cgroup_controller * const controller,
-
374 const char * const name);
-
375
-
382void cgroup_free_controller(struct cgroup_controller *ctrl);
-
383
-
389#ifdef UNIT_TEST
-
390
-
391#define TEST_PROC_PID_CGROUP_FILE "test-procpidcgroup"
-
392
-
393int cgroup_parse_rules_options(char *options,
-
394 struct cgroup_rule * const rule);
-
395
-
396int cg_get_cgroups_from_proc_cgroups(pid_t pid, char *cgroup_list[],
-
397 char *controller_list[],
-
398 int list_len);
-
399
-
400bool cgroup_compare_ignore_rule(const struct cgroup_rule * const rule,
-
401 pid_t pid, const char * const procname);
-
402
-
403bool cgroup_compare_wildcard_procname(const char * const rule_procname,
-
404 const char * const procname);
-
405
-
406int cgroup_process_v1_mnt(char *controllers[], struct mntent *ent,
-
407 int *mnt_tbl_idx);
-
408
-
409int cgroup_process_v2_mnt(struct mntent *ent, int *mnt_tbl_idx);
-
410
-
411int cgroup_set_values_recursive(const char * const base,
-
412 const struct cgroup_controller * const controller,
-
413 bool ignore_non_dirty_failures);
-
414
-
415int cgroup_chown_chmod_tasks(const char * const cg_path,
-
416 uid_t uid, gid_t gid, mode_t fperm);
-
417
-
418int cgroupv2_subtree_control(const char *path, const char *ctrl_name,
-
419 bool enable);
-
420
-
421int cgroupv2_get_subtree_control(const char *path,
-
422 const char *ctrl_name,
-
423 bool * const enabled);
-
424
-
425int cgroupv2_controller_enabled(const char * const cg_name,
-
426 const char * const ctrl_name);
-
427
-
428#endif /* UNIT_TEST */
-
429
-
430#ifdef __cplusplus
-
431} /* extern "C" */
-
432#endif
-
433
-
434#endif
+
135 int shared_mnt;
+
136 enum cg_version_t version;
+
137};
+
138
+ +
140 pid_t pid; /* pid of the process which needs to change group */
+
141
+
142 /* Details of user under consideration for destination cgroup */
+
143 struct passwd *pw;
+
144 /* Gid of the process */
+
145 gid_t gid;
+
146};
+
147
+
148/* A rule that maps UID/GID to a cgroup */
+ +
150 uid_t uid;
+
151 gid_t gid;
+
152 bool is_ignore;
+
153 char *procname;
+
154 char username[LOGIN_NAME_MAX];
+
155 char destination[FILENAME_MAX];
+
156 char *controllers[MAX_MNT_ELEMENTS];
+
157 struct cgroup_rule *next;
+
158};
+
159
+
160/* Container for a list of rules */
+ +
162 struct cgroup_rule *head;
+
163 struct cgroup_rule *tail;
+
164 int len;
+
165};
+
166
+
167/*The walk_tree handle */
+ +
169 FTS *fts;
+
170 int flags;
+
171};
+
172
+ +
181 const char *name;
+
182 const char *value;
+
183 struct cgroup_dictionary_item *next;
+
184};
+
185
+
186/* Flags for cgroup_dictionary_create */
+
193#define CG_DICT_DONT_FREE_ITEMS 1
+
194
+ +
204 struct cgroup_dictionary_item *head;
+
205 struct cgroup_dictionary_item *tail;
+
206 int flags;
+
207};
+
208
+ +
211 struct cgroup_dictionary_item *item;
+
212};
+
213
+
217extern __thread int last_errno;
+
218
+
222extern jmp_buf parser_error_env;
+
223
+
224/* Internal API */
+
225char *cg_build_path(const char *name, char *path, const char *type);
+
226int cgroup_get_uid_gid_from_procfs(pid_t pid, uid_t *euid, gid_t *egid);
+
227int cgroup_get_procname_from_procfs(pid_t pid, char **procname);
+
228int cg_mkdir_p(const char *path);
+
229struct cgroup *create_cgroup_from_name_value_pairs(const char *name,
+
230 struct control_value *name_value, int nv_number);
+
231void init_cgroup_table(struct cgroup *cgroups, size_t count);
+
232
+
233/*
+
234 * Main mounting structures
+
235 */
+
236extern struct cg_mount_table_s cg_mount_table[CG_CONTROLLER_MAX];
+
237extern pthread_rwlock_t cg_mount_table_lock;
+
238
+
239/*
+
240 * config related structures
+
241 */
+
242
+
243extern __thread char *cg_namespace_table[CG_CONTROLLER_MAX];
+
244
+
245/*
+
246 * config related API
+
247 */
+
248int cgroup_config_insert_cgroup(char *cg_name);
+
249int cgroup_config_parse_controller_options(char *controller,
+
250 struct cgroup_dictionary *values);
+
251int template_config_insert_cgroup(char *cg_name);
+
252int template_config_parse_controller_options(char *controller,
+
253 struct cgroup_dictionary *values);
+
254int template_config_group_task_perm(char *perm_type, char *value);
+
255int template_config_group_admin_perm(char *perm_type, char *value);
+
256int cgroup_config_group_task_perm(char *perm_type, char *value);
+
257int cgroup_config_group_admin_perm(char *perm_type, char *value);
+
258int cgroup_config_insert_into_mount_table(char *name, char *mount_point);
+
259int cgroup_config_insert_into_namespace_table(char *name, char *mount_point);
+
260void cgroup_config_cleanup_mount_table(void);
+
261void cgroup_config_cleanup_namespace_table(void);
+
262int cgroup_config_define_default(void);
+
263
+
267extern int cgroup_dictionary_create(struct cgroup_dictionary **dict,
+
268 int flags);
+
272extern int cgroup_dictionary_add(struct cgroup_dictionary *dict,
+
273 const char *name, const char *value);
+
278extern int cgroup_dictionary_free(struct cgroup_dictionary *dict);
+
279
+
284extern int cgroup_dictionary_iterator_begin(struct cgroup_dictionary *dict,
+
285 void **handle, const char **name, const char **value);
+
289extern int cgroup_dictionary_iterator_next(void **handle,
+
290 const char **name, const char **value);
+
294extern void cgroup_dictionary_iterator_end(void **handle);
+
295
+
305int cg_chmod_path(const char *path, mode_t mode, int owner_is_umask);
+
306
+
316int cgroup_build_tasks_procs_path(char * const path,
+
317 size_t path_sz, const char * const cg_name,
+
318 const char * const ctrl_name);
+
319
+
331char *cg_build_path_locked(const char *setting, char *path,
+
332 const char *controller);
+
333
+
345int cgroup_fill_cgc(struct dirent *ctrl_dir, struct cgroup *cgroup,
+
346 struct cgroup_controller *cgc, int cg_index);
+
347
+
354int cgroup_test_subsys_mounted(const char *ctrl_name);
+
355
+
364int cgroup_copy_controller_values(struct cgroup_controller * const dst,
+
365 const struct cgroup_controller * const src);
+
366
+
374int cgroup_remove_value(struct cgroup_controller * const controller,
+
375 const char * const name);
+
376
+
383void cgroup_free_controller(struct cgroup_controller *ctrl);
+
384
+
390#ifdef UNIT_TEST
+
391
+
392#define TEST_PROC_PID_CGROUP_FILE "test-procpidcgroup"
+
393
+
394int cgroup_parse_rules_options(char *options,
+
395 struct cgroup_rule * const rule);
+
396
+
397int cg_get_cgroups_from_proc_cgroups(pid_t pid, char *cgroup_list[],
+
398 char *controller_list[],
+
399 int list_len);
+
400
+
401bool cgroup_compare_ignore_rule(const struct cgroup_rule * const rule,
+
402 pid_t pid, const char * const procname);
+
403
+
404bool cgroup_compare_wildcard_procname(const char * const rule_procname,
+
405 const char * const procname);
+
406
+
407int cgroup_process_v1_mnt(char *controllers[], struct mntent *ent,
+
408 int *mnt_tbl_idx);
+
409
+
410int cgroup_process_v2_mnt(struct mntent *ent, int *mnt_tbl_idx);
+
411
+
412int cgroup_set_values_recursive(const char * const base,
+
413 const struct cgroup_controller * const controller,
+
414 bool ignore_non_dirty_failures);
+
415
+
416int cgroup_chown_chmod_tasks(const char * const cg_path,
+
417 uid_t uid, gid_t gid, mode_t fperm);
+
418
+
419int cgroupv2_subtree_control(const char *path, const char *ctrl_name,
+
420 bool enable);
+
421
+
422int cgroupv2_get_subtree_control(const char *path,
+
423 const char *ctrl_name,
+
424 bool * const enabled);
+
425
+
426int cgroupv2_controller_enabled(const char * const cg_name,
+
427 const char * const ctrl_name);
+
428
+
429#endif /* UNIT_TEST */
+
430
+
431#ifdef __cplusplus
+
432} /* extern "C" */
+
433#endif
+
434
+
435#endif
Definition: libcgroup-internal.h:122
Definition: libcgroup-internal.h:127
struct cg_mount_point mount
Definition: libcgroup-internal.h:133
char name[FILENAME_MAX]
Definition: libcgroup-internal.h:129
Definition: libcgroup-internal.h:101
-
Definition: libcgroup-internal.h:179
-
Definition: libcgroup-internal.h:209
-
Definition: libcgroup-internal.h:202
-
Definition: libcgroup-internal.h:160
-
Definition: libcgroup-internal.h:148
-
Definition: libcgroup-internal.h:138
-
Definition: libcgroup-internal.h:167
+
Definition: libcgroup-internal.h:180
+
Definition: libcgroup-internal.h:210
+
Definition: libcgroup-internal.h:203
+
Definition: libcgroup-internal.h:161
+
Definition: libcgroup-internal.h:149
+
Definition: libcgroup-internal.h:139
+
Definition: libcgroup-internal.h:168
Definition: libcgroup-internal.h:109
Definition: libcgroup-internal.h:85
diff --git a/structcg__mount__table__s.html b/structcg__mount__table__s.html index 3584359a..09a78054 100644 --- a/structcg__mount__table__s.html +++ b/structcg__mount__table__s.html @@ -77,6 +77,9 @@ Data Fields + + diff --git a/tasks_8h_source.html b/tasks_8h_source.html index b77759de..fa1f908f 100644 --- a/tasks_8h_source.html +++ b/tasks_8h_source.html @@ -131,18 +131,18 @@ $(function() {
212#endif
213
214#endif /* _LIBCGROUP_TASKS_H */
-
int cgroup_change_cgroup_path(const char *path, pid_t pid, const char *const controllers[])
Definition: api.c:4355
-
int cgroup_change_cgroup_flags(uid_t uid, gid_t gid, const char *procname, pid_t pid, int flags)
Definition: api.c:4121
-
int cgroup_attach_task(struct cgroup *cgroup)
Definition: api.c:1936
-
int cgroup_change_cgroup_uid_gid(uid_t uid, gid_t gid, pid_t pid)
Definition: api.c:4343
-
int cgroup_register_unchanged_process(pid_t pid, int flags)
Definition: api.c:5542
-
int cgroup_get_current_controller_path(pid_t pid, const char *controller, char **current_path)
Definition: api.c:4575
-
int cgroup_attach_task_pid(struct cgroup *cgroup, pid_t tid)
Definition: api.c:1858
-
void cgroup_print_rules_config(FILE *fp)
Definition: api.c:4467
-
int cgroup_init_rules_cache(void)
Definition: api.c:4553
-
int cgroup_change_cgroup_uid_gid_flags(uid_t uid, gid_t gid, pid_t pid, int flags)
Definition: api.c:4326
-
int cgroup_reload_cached_rules(void)
Definition: api.c:4527
-
int cgroup_change_all_cgroups(void)
Definition: api.c:4421
+
int cgroup_change_cgroup_path(const char *path, pid_t pid, const char *const controllers[])
Definition: api.c:4417
+
int cgroup_change_cgroup_flags(uid_t uid, gid_t gid, const char *procname, pid_t pid, int flags)
Definition: api.c:4183
+
int cgroup_attach_task(struct cgroup *cgroup)
Definition: api.c:1969
+
int cgroup_change_cgroup_uid_gid(uid_t uid, gid_t gid, pid_t pid)
Definition: api.c:4405
+
int cgroup_register_unchanged_process(pid_t pid, int flags)
Definition: api.c:5604
+
int cgroup_get_current_controller_path(pid_t pid, const char *controller, char **current_path)
Definition: api.c:4637
+
int cgroup_attach_task_pid(struct cgroup *cgroup, pid_t tid)
Definition: api.c:1891
+
void cgroup_print_rules_config(FILE *fp)
Definition: api.c:4529
+
int cgroup_init_rules_cache(void)
Definition: api.c:4615
+
int cgroup_change_cgroup_uid_gid_flags(uid_t uid, gid_t gid, pid_t pid, int flags)
Definition: api.c:4388
+
int cgroup_reload_cached_rules(void)
Definition: api.c:4589
+
int cgroup_change_all_cgroups(void)
Definition: api.c:4483
Definition: libcgroup-internal.h:109
-- 2.47.2
int index
 
+int shared_mnt
 
enum cg_version_t version