libcgroup
Loading...
Searching...
No Matches
iterators.h
1/* SPDX-License-Identifier: LGPL-2.1-only */
2#ifndef _LIBCGROUP_ITERATORS_H
3#define _LIBCGROUP_ITERATORS_H
4
5#ifndef _LIBCGROUP_H_INSIDE
6#error "Only <libcgroup.h> should be included directly."
7#endif
8
9#ifndef SWIG
10#include <sys/types.h>
11#include <stdio.h>
12#include <features.h>
13#endif
14
15#ifdef __cplusplus
16extern "C" {
17#endif
18
102
111
119 const char *path;
121 const char *parent;
127 const char *full_path;
132 short depth;
133};
134
153int cgroup_walk_tree_begin(const char *controller, const char *base_path, int depth,
154 void **handle, struct cgroup_file_info *info,
155 int *base_level);
156
166int cgroup_walk_tree_next(int depth, void **handle, struct cgroup_file_info *info, int base_level);
167
171int cgroup_walk_tree_end(void **handle);
172
179int cgroup_walk_tree_set_flags(void **handle, int flags);
180
196int cgroup_read_value_begin(const char * const controller, const char *path,
197 const char * const name, void **handle,
198 char *buffer, int max);
199
213int cgroup_read_value_next(void **handle, char *buffer, int max);
214
218int cgroup_read_value_end(void **handle);
219
232#define CG_VALUE_MAX 100
237 char name[FILENAME_MAX];
238 char value[CG_VALUE_MAX];
239};
240
251int cgroup_read_stats_begin(const char *controller, const char *path, void **handle,
252 struct cgroup_stat *stat);
253
260int cgroup_read_stats_next(void **handle, struct cgroup_stat *stat);
261
265int cgroup_read_stats_end(void **handle);
266
283int cgroup_get_task_begin(const char *cgrp, const char *controller, void **handle, pid_t *pid);
284
292int cgroup_get_task_next(void **handle, pid_t *pid);
293
297int cgroup_get_task_end(void **handle);
298
315 char name[FILENAME_MAX];
317 char path[FILENAME_MAX];
318};
319
327int cgroup_get_controller_begin(void **handle, struct cgroup_mount_point *info);
328
338int cgroup_get_controller_next(void **handle, struct cgroup_mount_point *info);
339
343int cgroup_get_controller_end(void **handle);
344
359 char name[FILENAME_MAX];
370};
371
377int cgroup_get_all_controller_begin(void **handle, struct controller_data *info);
383int cgroup_get_all_controller_next(void **handle, struct controller_data *info);
384
388int cgroup_get_all_controller_end(void **handle);
389
407int cgroup_get_subsys_mount_point_begin(const char *controller, void **handle, char *path);
408
415int cgroup_get_subsys_mount_point_next(void **handle, char *path);
416
420int cgroup_get_subsys_mount_point_end(void **handle);
421
427#ifdef __cplusplus
428} /* extern "C" */
429#endif
430
431#endif /* _LIBCGROUP_ITERATORS_H */
int cgroup_walk_tree_end(void **handle)
Definition api.c:5352
int cgroup_get_all_controller_end(void **handle)
Definition api.c:6226
int cgroup_read_stats_begin(const char *controller, const char *path, void **handle, struct cgroup_stat *stat)
Definition api.c:5606
int cgroup_get_subsys_mount_point_begin(const char *controller, void **handle, char *path)
Definition api.c:6520
cgroup_walk_type
Definition iterators.h:74
int cgroup_get_subsys_mount_point_next(void **handle, char *path)
Definition api.c:6550
int cgroup_get_all_controller_next(void **handle, struct controller_data *info)
Definition api.c:6239
int cgroup_walk_tree_next(int depth, void **handle, struct cgroup_file_info *info, int base_level)
Definition api.c:5326
#define CG_VALUE_MAX
Definition iterators.h:232
int cgroup_get_controller_begin(void **handle, struct cgroup_mount_point *info)
Definition api.c:5768
cgroup_file_type
Definition iterators.h:106
int cgroup_walk_tree_set_flags(void **handle, int flags)
Definition api.c:5435
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:5372
int cgroup_get_controller_next(void **handle, struct cgroup_mount_point *info)
Definition api.c:5720
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:5532
int cgroup_get_subsys_mount_point_end(void **handle)
Definition api.c:6573
int cgroup_get_controller_end(void **handle)
Definition api.c:5704
int cgroup_read_stats_end(void **handle)
Definition api.c:5568
int cgroup_read_value_next(void **handle, char *buffer, int max)
Definition api.c:5512
int cgroup_get_task_begin(const char *cgrp, const char *controller, void **handle, pid_t *pid)
Definition api.c:5673
int cgroup_read_value_end(void **handle)
Definition api.c:5495
int cgroup_get_all_controller_begin(void **handle, struct controller_data *info)
Definition api.c:6271
int cgroup_get_task_end(void **handle)
Definition api.c:5637
int cgroup_get_task_next(void **handle, pid_t *pid)
Definition api.c:5651
int cgroup_read_stats_next(void **handle, struct cgroup_stat *stat)
Definition api.c:5587
@ 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
@ CGROUP_FILE_TYPE_DIR
Definition iterators.h:108
@ CGROUP_FILE_TYPE_FILE
Definition iterators.h:107
Definition iterators.h:115
const char * full_path
Definition iterators.h:127
const char * parent
Definition iterators.h:121
const char * path
Definition iterators.h:119
enum cgroup_file_type type
Definition iterators.h:117
short depth
Definition iterators.h:132
Definition iterators.h:313
char name[FILENAME_MAX]
Definition iterators.h:315
char path[FILENAME_MAX]
Definition iterators.h:317
Definition iterators.h:236
Definition iterators.h:357
int enabled
Definition iterators.h:369
int hierarchy
Definition iterators.h:365
char name[FILENAME_MAX]
Definition iterators.h:359
int num_cgroups
Definition iterators.h:367