Mercurial > archived > louis > perso > liblxcstats
view lxcstats.h @ 3:2cb8a6cbe468
cpuacct: convert per cpu usage from nanoseconds to jiffies
author | Louis Opter <louis@dotcloud.com> |
---|---|
date | Fri, 31 Dec 2010 20:04:25 +0100 |
parents | 6ce4443e7545 |
children | 8339ab15527d |
line wrap: on
line source
#ifndef _LXC_STATS_H_ # define _LXC_STATS_H_ # include <stdint.h> /** * Opaque structure used as a context for all liblxcst functions. */ typedef struct _lxcst_controller lxcst_handle; /** * This structure contains available statistics on a container. */ struct lxcst { char *name; /*< Name of the container */ char *cgroup_dir;/*< cgroup directory of the container */ struct { uint32_t user; /*< CPU time spent in userland */ uint32_t system; /*< CPU time spent in kernelland */ uint32_t *percpu; /*< CPU time per CPU (zero-terminated array or NULL) */ } cpuacct; /*< CPU accounting in USER_HZ */ }; /** * This structure contains globals statistics on LXC. * * Note: see how lxc-info gets these infos. */ struct lxcst_globals { uint32_t running_containers; uint32_t stopped_containers; }; /** * @brief Initialize the library. * * @return A pointer to an opaque structure which can be free'd with free * or NULL on failure with errno set. * * @see lxcst_close */ lxcst_handle *lxcst_open(void); /** * @brief Close the library. * * @param [in] hdl The pointer returned by lxcst_open. * * @return 0 on success, -1 if an error occured with errno set. */ int lxcst_close(lxcst_handle *hdl); /** * @brief Collect statistic on all containers. * * @param [in] hdl The pointer returned by lxcst_handle. * @param [in] cb A function pointer to a callback which takes a pointer to an * user context and a pointer to lxcst structure. * @param [in] ctx A pointer to an user defined variable which will be used as * an argument to the callback. If the callback returns non zero * lxcst_span_containers stops and return with -1 with errno set to EINTR. * * @return 0 on success, -1 on error with errno set. */ int lxcst_span_containers(lxcst_handle *hdl, int (*cb)(void *, const struct lxcst *), void *ctx); #endif