From cbe2321ec0e87095c5f2081fbc4a85bd5becfbb6 Mon Sep 17 00:00:00 2001 From: Ivana Varekova Date: Wed, 15 Jul 2009 10:28:56 +0200 Subject: removes copy_name_value_from_rules to wrapper move copy_name_value_from_rules procedure to wrapper.c file and add the header to libcgroup-internal.h Signed-off-by: Ivana Varekova Acked-by: Dhaval Giani Signed-off-by: Dhaval Giani --- src/libcgroup-internal.h | 2 ++ src/libcgroup.map | 5 +++++ src/tools/cgset.c | 58 ++---------------------------------------------- src/wrapper.c | 55 +++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 64 insertions(+), 56 deletions(-) (limited to 'src') diff --git a/src/libcgroup-internal.h b/src/libcgroup-internal.h index fa92048..8ceb73e 100644 --- a/src/libcgroup-internal.h +++ b/src/libcgroup-internal.h @@ -113,6 +113,8 @@ char *cg_build_path(char *name, char *path, char *type); int cgroup_get_uid_gid_from_procfs(pid_t pid, uid_t *euid, gid_t *egid); int cgroup_get_procname_from_procfs(pid_t pid, char **procname); int cg_mkdir_p(const char *path); +struct cgroup *create_cgroup_from_name_value_pairs(const char *name, + struct control_value *name_value, int nv_number); /* diff --git a/src/libcgroup.map b/src/libcgroup.map index aa9d0d2..9973110 100644 --- a/src/libcgroup.map +++ b/src/libcgroup.map @@ -74,3 +74,8 @@ global: cgroup_register_unchanged_process; cgroup_change_cgroup_flags; } CGROUP_0.33; + +CGROUP_0.35 { +global: + create_cgroup_from_name_value_pairs; +} CGROUP_0.34; diff --git a/src/tools/cgset.c b/src/tools/cgset.c index b9a7901..7562956 100644 --- a/src/tools/cgset.c +++ b/src/tools/cgset.c @@ -55,61 +55,6 @@ scgroup_err: } -struct cgroup *copy_name_value_from_rules(int nv_number, - struct control_value *name_value) -{ - struct cgroup *src_cgroup; - struct cgroup_controller *cgc; - char con[FILENAME_MAX]; - - int ret; - int i; - - /* create source cgroup */ - src_cgroup = cgroup_new_cgroup("tmp"); - if (!src_cgroup) { - fprintf(stderr, "can't create cgroup: %s\n", - cgroup_strerror(ECGFAIL)); - goto scgroup_err; - } - - /* add pairs name-value to - relevant controllers of this cgroup */ - for (i = 0; i < nv_number; i++) { - - if ((strchr(name_value[i].name, '.')) == NULL) { - fprintf(stderr, "wrong -r parameter (%s=%s)\n", - name_value[i].name, name_value[i].value); - goto scgroup_err; - } - - strncpy(con, name_value[i].name, FILENAME_MAX); - strtok(con, "."); - - /* add relevant controller */ - cgc = cgroup_add_controller(src_cgroup, con); - if (!cgc) { - fprintf(stderr, "controller %s can't be add\n", - con); - goto scgroup_err; - } - - /* add name-value pair to this controller */ - ret = cgroup_add_value_string(cgc, - name_value[i].name, name_value[i].value); - if (ret) { - fprintf(stderr, "name-value pair %s=%s can't be set\n", - name_value[i].name, name_value[i].value); - goto scgroup_err; - } - } - - return src_cgroup; -scgroup_err: - cgroup_free(&src_cgroup); - return NULL; -} - void usage(int status, char *program_name) { if (status != 0) @@ -248,7 +193,8 @@ int main(int argc, char *argv[]) /* copy the name-value pairs from -r options */ if ((flags & FL_RULES) != 0) { - src_cgroup = copy_name_value_from_rules(nv_number, name_value); + src_cgroup = create_cgroup_from_name_value_pairs( + "tmp", name_value, nv_number); if (src_cgroup == NULL) goto err; } diff --git a/src/wrapper.c b/src/wrapper.c index 1ee1665..c82ffbf 100644 --- a/src/wrapper.c +++ b/src/wrapper.c @@ -557,3 +557,58 @@ int cgroup_set_value_bool(struct cgroup_controller *controller, return cgroup_add_value_bool(controller, name, value); } + +struct cgroup *create_cgroup_from_name_value_pairs(const char *name, + struct control_value *name_value, int nv_number) +{ + struct cgroup *src_cgroup; + struct cgroup_controller *cgc; + char con[FILENAME_MAX]; + + int ret; + int i; + + /* create source cgroup */ + src_cgroup = cgroup_new_cgroup(name); + if (!src_cgroup) { + fprintf(stderr, "can't create cgroup: %s\n", + cgroup_strerror(ECGFAIL)); + goto scgroup_err; + } + + /* add pairs name-value to + relevant controllers of this cgroup */ + for (i = 0; i < nv_number; i++) { + + if ((strchr(name_value[i].name, '.')) == NULL) { + fprintf(stderr, "wrong -r parameter (%s=%s)\n", + name_value[i].name, name_value[i].value); + goto scgroup_err; + } + + strncpy(con, name_value[i].name, FILENAME_MAX); + strtok(con, "."); + + /* add relevant controller */ + cgc = cgroup_add_controller(src_cgroup, con); + if (!cgc) { + fprintf(stderr, "controller %s can't be add\n", + con); + goto scgroup_err; + } + + /* add name-value pair to this controller */ + ret = cgroup_add_value_string(cgc, + name_value[i].name, name_value[i].value); + if (ret) { + fprintf(stderr, "name-value pair %s=%s can't be set\n", + name_value[i].name, name_value[i].value); + goto scgroup_err; + } + } + + return src_cgroup; +scgroup_err: + cgroup_free(&src_cgroup); + return NULL; +} -- cgit