Current File : //usr/include/libcgroup/init.h |
#ifndef _LIBCGROUP_INIT_H
#define _LIBCGROUP_INIT_H
#ifndef _LIBCGROUP_H_INSIDE
#error "Only <libcgroup.h> should be included directly."
#endif
#ifndef SWIG
#include <features.h>
#endif
#ifdef __cplusplus
extern "C" {
#endif
/**
* @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).
*
* If the cgroup logging was not set using cgroup_set_logger() or
* cgroup_set_default_logger() before calling cgroup_init(), the default logger
* is automatically set, logging CGROUP_LOG_ERROR messages.
*/
int cgroup_init(void);
/**
* Returns path where is mounted given controller. Applications should rely on
* @c libcgroup API and not call this function directly.
* Only the first mount point is returned, use
* cgroup_get_subsys_mount_point_begin(), cgroup_get_subsys_mount_point_next()
* and cgroup_get_subsys_mount_point_end() to get all of them.
* @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);
/**
* @}
* @}
*/
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* _LIBCGROUP_INIT_H */