// SPDX-License-Identifier: LGPL-2.1-only
+#include "tools-common.h"
+
#include <libcgroup.h>
#include <libcgroup-internal.h>
-#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <getopt.h>
-
-#include "tools-common.h"
+#include <stdio.h>
#define FL_RULES 1
#define FL_COPY 2
};
#ifndef UNIT_TEST
-static struct option const long_options[] =
-{
- {"rule", required_argument, NULL, 'r'},
- {"help", no_argument, NULL, 'h'},
- {"copy-from", required_argument, NULL, COPY_FROM_OPTION},
+static const struct option long_options[] = {
+ {"rule", required_argument, NULL, 'r'},
+ {"help", no_argument, NULL, 'h'},
+ {"copy-from", required_argument, NULL, COPY_FROM_OPTION},
{NULL, 0, NULL, 0}
};
static struct cgroup *copy_name_value_from_cgroup(char src_cg_path[FILENAME_MAX])
{
- int ret = 0;
struct cgroup *src_cgroup;
+ int ret = 0;
/* create source cgroup */
src_cgroup = cgroup_new_cgroup(src_cg_path);
/* copy the name-version values to the cgroup structure */
ret = cgroup_get_cgroup(src_cgroup);
if (ret != 0) {
- fprintf(stderr, "cgroup %s error: %s \n",
+ fprintf(stderr, "cgroup %s error: %s\n",
src_cg_path, cgroup_strerror(ret));
goto scgroup_err;
}
scgroup_err:
cgroup_free(&src_cgroup);
+
return NULL;
}
-
static void usage(int status, const char *program_name)
{
if (status != 0) {
- fprintf(stderr, "Wrong input parameters,"
- " try %s --help' for more information.\n",
+ fprintf(stderr, "Wrong input parameters,");
+ fprintf(stderr, " try %s --help' for more information.\n",
program_name);
return;
}
- printf("Usage: %s [-r <name=value>] <cgroup_path> ...\n"
- " or: %s --copy-from <source_cgroup_path> "\
- "<cgroup_path> ...\n", program_name, program_name);
+
+ printf("Usage: %s [-r <name=value>] <cgroup_path> ...\n",
+ program_name);
+ printf(" or: %s --copy-from <source_cgroup_path> ", program_name);
+ printf("<cgroup_path> ...\n");
printf("Set the parameters of given cgroup(s)\n");
- printf(" -r, --variable <name> Define parameter "\
- "to set\n");
- printf(" --copy-from <source_cgroup_path> Control group whose "\
- "parameters will be copied\n");
+ printf(" -r, --variable <name> Define parameter ");
+ printf("to set\n");
+ printf(" --copy-from <source_cgroup_path> Control group whose ");
+ printf("parameters will be copied\n");
}
#endif /* !UNIT_TEST */
const char * const name_value_str,
struct control_value * const name_value)
{
- int ret = 0;
char *copy, *buf;
+ int ret = 0;
copy = strdup(name_value_str);
if (copy == NULL) {
/* parse optarg value */
buf = strtok(copy, "=");
if (buf == NULL) {
- fprintf(stderr, "%s: "
- "wrong parameter of option -r: %s\n",
+ fprintf(stderr, "%s: wrong parameter of option -r: %s\n",
program_name, optarg);
ret = -1;
goto err;
name_value->name[FILENAME_MAX-1] = '\0';
buf = strchr(name_value_str, '=');
- /* we don't need to check the return value of strchr because we
+ /*
+ * we don't need to check the return value of strchr because we
* know there's already an '=' character in the string.
*/
buf++;
if (strlen(buf) == 0) {
- fprintf(stderr, "%s: "
- "wrong parameter of option -r: %s\n",
+ fprintf(stderr, "%s: wrong parameter of option -r: %s\n",
program_name, optarg);
ret = -1;
goto err;
#ifndef UNIT_TEST
int main(int argc, char *argv[])
{
- int ret = 0;
- int c;
-
struct control_value *name_value = NULL;
int nv_number = 0;
int nv_max = 0;
struct cgroup *src_cgroup;
struct cgroup *cgroup;
- /* no parametr on input */
+ int ret = 0;
+ int c;
+
+ /* no parameter on input */
if (argc < 2) {
- fprintf(stderr, "Usage is %s -r <name=value> "
- "<relative path to cgroup>\n", argv[0]);
+ fprintf(stderr, "Usage is %s -r <name=value> ", argv[0]);
+ fprintf(stderr, "<relative path to cgroup>\n");
return -1;
}
usage(0, argv[0]);
ret = 0;
goto err;
- break;
case 'r':
if ((flags & FL_COPY) != 0) {
}
flags |= FL_RULES;
- /* add name-value pair to buffer
- (= name_value variable) */
+ /*
+ * add name-value pair to buffer
+ * (= name_value variable)
+ */
if (nv_number >= nv_max) {
nv_max += CG_NV_MAX;
name_value = (struct control_value *)
realloc(name_value,
nv_max * sizeof(struct control_value));
if (!name_value) {
- fprintf(stderr, "%s: "
- "not enough memory\n",
- argv[0]);
+ fprintf(stderr, "%s: ", argv[0]);
+ fprintf(stderr, "not enough memory\n");
ret = -1;
goto err;
}
usage(1, argv[0]);
ret = -1;
goto err;
- break;
}
}
/* copy the values from the source cgroup to new one */
ret = cgroup_copy_cgroup(cgroup, src_cgroup);
if (ret != 0) {
- fprintf(stderr, "%s: cgroup %s error: %s \n",
+ fprintf(stderr, "%s: cgroup %s error: %s\n",
argv[0], src_cg_path, cgroup_strerror(ret));
goto cgroup_free_err;
}
/* modify cgroup based on values of the new one */
ret = cgroup_modify_cgroup(cgroup);
if (ret) {
- fprintf(stderr, "%s: cgroup modify error: %s \n",
+ fprintf(stderr, "%s: cgroup modify error: %s\n",
argv[0], cgroup_strerror(ret));
goto cgroup_free_err;
}
if (cgroup)
cgroup_free(&cgroup);
cgroup_free(&src_cgroup);
-
err:
free(name_value);
+
return ret;
}
#endif /* !UNIT_TEST */