Mercurial > archived > louis > perso > liblxcstats
diff _lxcstats.h @ 0:6ce4443e7545
Add the draft of an API to collect statistics on LXC
author | Louis Opter <kalessin@kalessin.fr> |
---|---|
date | Wed, 29 Dec 2010 23:28:14 +0100 |
parents | |
children | 2cb8a6cbe468 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/_lxcstats.h Wed Dec 29 23:28:14 2010 +0100 @@ -0,0 +1,53 @@ +#ifndef _LXC_STATS_PRIV_H_ +# define _LXC_STATS_PRIV_H_ + +# include "compat/compat.h" +# include "probes/probes.h" + +struct dirent; + +/** + * Store all informations needed to get statistics from a cgroup + * hierarchy. + */ +struct _lxcst_controller { + char *cgroup_dir; /**< Mount point of the cgroup hierarchy. */ +}; + +/** + * Allocate a new lxcst structure for the given container. + */ +struct lxcst *_lxcst_container_new(struct _lxcst_controller *, const char *); + +/** + * Free a lxcst structure. + */ +void _lxcst_container_delete(struct lxcst *); + +/** + * Get statistics on a container. + */ +int _lxcst_container_read_infos(struct lxcst *); + +char *_lxcst_join_path(char *, size_t , const char *, const char *); + +/** + * Used to select only directories with scandir. We can't directly use it with + * scandir because we need the cgroup_dir. + * + * @return true if the given directory entry is a directory. + */ +int _lxcst_isdir(const struct _lxcst_controller *, const struct dirent *); + +/** + * Allocate a buffer and read an entire file in it. + * + * @param [in] path Path to the file to read + * @param [out] content A pointer to a pointer which will hold the allocated + * buffer. + * + * @return The size of the buffer on sucess, -1 with errno set otherwise. + */ +ssize_t _lxcst_read_file(const char *path, char **content); + +#endif