blob: 41eafcc246dc2b846d5e133cf774b00438661dd6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
#ifndef _LIBCGROUP_INIT_H
#define _LIBCGROUP_INIT_H
#ifndef _LIBCGROUP_H_INSIDE
#error "Only <libcgroup.h> should be included directly."
#endif
#include <features.h>
__BEGIN_DECLS
/**
* @defgroup group_init 1. Initialization
* @{
*
* @name Initialization
* @{
* Application must initialize @c libcgroup using cgroup_init() before any
* other @c libcgroup function can be called. @c libcgroup caches information
* about mounted hierarchies (just what's mounted where, not the control groups
* themselves) at this time. There is currently no way to refresh this cache,
* i.e. all subsequent mounts/remounts/unmounts are not reflected in this cache
* and @c libcgroup may produce unexpected results.
*
* In addition, there is no way how to clean the cache on application exit.
*
* @todo this is very bad... There should be at least way how to refresh the
* cache and/or an option to refresh it automatically (does kernel provide
* any indication, when a filesystem is mounted/unmounted?). Dtto the cleanup
* on exit.
*/
/**
* Initialize libcgroup. Information about mounted hierarchies are examined
* and cached internally (just what's mounted where, not the groups themselves).
*/
int cgroup_init(void);
/**
* Returns path where is mounted given controller. Applications should rely on
* @c libcgroup API and not call this function directly.
* @param controller Name of the controller
* @param mount_point The string where the mount point location is stored.
* Please note, the caller must free the mount_point.
*/
int cgroup_get_subsys_mount_point(const char *controller, char **mount_point);
/**
* @}
* @}
*/
__END_DECLS
#endif /* _LIBCGROUP_INIT_H */
|