diff options
author | Ivana Hutarova Varekova <varekova@redhat.com> | 2009-07-17 09:41:12 +0200 |
---|---|---|
committer | Dhaval Giani <dhaval@linux.vnet.ibm.com> | 2009-08-06 11:59:15 +0530 |
commit | 0d943b1fd84f43edda88d8f1e45a2cfe56b0edeb (patch) | |
tree | f9b6b23aaede896427be5b295a57109f53a891a9 /include/libcgroup.h | |
parent | 5aa993cef39ffd59eae1e363c2a731a03507b0d3 (diff) | |
download | libcg-0d943b1fd84f43edda88d8f1e45a2cfe56b0edeb.tar.gz libcg-0d943b1fd84f43edda88d8f1e45a2cfe56b0edeb.tar.xz libcg-0d943b1fd84f43edda88d8f1e45a2cfe56b0edeb.zip |
add api for generating the list of all controllers (not only mount ones)
this patch add api for generating the list of all controllers (not only mount ones)
- it uses three functions:
cgroup_get_all_controller_begin
cgroup_get_all_controller_next
cgroup_get_all_controller_end
and structure:
struct controller_data {
char name[FILENAME_MAX];
int hierarchy;
int num_cgroups;
int enabled;
};
the data are read from /proc/cgroups file
Signed-off-by: Ivana Hutarova Varekova <varekova@redhat.com>
Reviewed-by: Jan Safranek <jsafrane@redhat.com>
Signed-off-by: Dhaval Giani <dhaval@linux.vnet.ibm.com>
Diffstat (limited to 'include/libcgroup.h')
-rw-r--r-- | include/libcgroup.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/include/libcgroup.h b/include/libcgroup.h index d3fad97..b8a3a77 100644 --- a/include/libcgroup.h +++ b/include/libcgroup.h @@ -155,6 +155,25 @@ struct cgroup_mount_point { char path[FILENAME_MAX]; }; +/* + * Detailed information about available controller. + */ + +struct controller_data { +/** Controller name. */ + char name[FILENAME_MAX]; +/** + * Hierarchy ID. Controllers with the same hierarchy ID + * are mounted together as one hierarchy. Controllers with + * ID 0 are not currently used. + */ + int hierarchy; +/** Number of groups. */ + int num_cgroups; +/** Enabled flag */ + int enabled; +}; + /* Functions and structures that can be used by the application*/ struct cgroup; struct cgroup_controller; @@ -386,6 +405,20 @@ int cgroup_get_controller_begin(void **handle, struct cgroup_mount_point *info); int cgroup_get_controller_next(void **handle, struct cgroup_mount_point *info); int cgroup_get_controller_end(void **handle); +/** + * Read the list of controllers from /proc/cgroups (not mounted included) + * @param handle: Handle to be used for iteration. + * @param info: The structure which contains all controller data + */ +int cgroup_get_all_controller_begin(void **handle, + struct controller_data *info); +/* + * While walking through the mount table, the controllers will be + * returned in the same order as is in /proc/cgroups file + */ +int cgroup_get_all_controller_next(void **handle, struct controller_data *info); +int cgroup_get_all_controller_end(void **handle); + /* * Reads the mount to table to give the mount point of a controller * @controller: Name of the controller |