summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorIvana Varekova <varekova@redhat.com>2009-07-15 10:28:56 +0200
committerDhaval Giani <dhaval@linux.vnet.ibm.com>2009-08-06 11:51:34 +0530
commitcbe2321ec0e87095c5f2081fbc4a85bd5becfbb6 (patch)
tree5fec1c52a1b5909a1ac79a011c876c9dfeee79f4 /src
parentb75a9fcfab5cd2ae88a55934e22c77cbd6810a14 (diff)
downloadlibcg-cbe2321ec0e87095c5f2081fbc4a85bd5becfbb6.tar.gz
libcg-cbe2321ec0e87095c5f2081fbc4a85bd5becfbb6.tar.xz
libcg-cbe2321ec0e87095c5f2081fbc4a85bd5becfbb6.zip
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 <varekova@redhat.com> Acked-by: Dhaval Giani <dhaval@linux.vnet.ibm.com> Signed-off-by: Dhaval Giani <dhaval@linux.vnet.ibm.com>
Diffstat (limited to 'src')
-rw-r--r--src/libcgroup-internal.h2
-rw-r--r--src/libcgroup.map5
-rw-r--r--src/tools/cgset.c58
-rw-r--r--src/wrapper.c55
4 files changed, 64 insertions, 56 deletions
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;
+}