From: Harmandeep Kaur <write.harmandeep@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: lars.kurth@citrix.com, wei.liu2@citrix.com,
ian.campbell@citrix.com, stefano.stabellini@eu.citrix.com,
dario.faggioli@citrix.com, ian.jackson@eu.citrix.com,
george.dunlap@citrix.com,
Harmandeep Kaur <write.harmandeep@gmail.com>
Subject: [PATCH v3 5/5] xl: improve return and exit codes of parse related functions
Date: Tue, 27 Oct 2015 15:20:52 +0530 [thread overview]
Message-ID: <1445939452-8091-6-git-send-email-write.harmandeep@gmail.com> (raw)
In-Reply-To: <1445939452-8091-1-git-send-email-write.harmandeep@gmail.com>
Turning parsing related functions exit codes towards using the
EXIT_[SUCCESS|FAILURE] constants, instead of instead of arbitrary numbers
or libxl return codes.
- for main_*: arbitrary -> EXIT_SUCCESS|EXIT_FAILURE.
- for internal fucntion: arbitrary -> 0/1.
Don't touch parse_config_data() which is big enough to deserve its own patch.
Signed-off-by: Harmandeep Kaur <write.harmandeep@gmail.com>
---
v2->v3: Reverted return of parse_mem_size_kb() to -1.
And exculded out of scope changes.
tools/libxl/xl_cmdimpl.c | 51 ++++++++++++++++++++++++------------------------
1 file changed, 26 insertions(+), 25 deletions(-)
diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
index 76d9af6..1ddf144 100644
--- a/tools/libxl/xl_cmdimpl.c
+++ b/tools/libxl/xl_cmdimpl.c
@@ -578,10 +578,10 @@ static void parse_disk_config_multistring(XLU_Config **config,
}
e = xlu_disk_parse(*config, nspecs, specs, disk);
- if (e == EINVAL) exit(-1);
+ if (e == EINVAL) exit(EXIT_FAILURE);
if (e) {
fprintf(stderr,"xlu_disk_parse failed: %s\n",strerror(errno));
- exit(-1);
+ exit(EXIT_FAILURE);
}
}
@@ -597,10 +597,10 @@ static void parse_vif_rate(XLU_Config **config, const char *rate,
int e;
e = xlu_vif_parse_rate(*config, rate, nic);
- if (e == EINVAL || e == EOVERFLOW) exit(-1);
+ if (e == EINVAL || e == EOVERFLOW) exit(EXIT_FAILURE);
if (e) {
fprintf(stderr,"xlu_vif_parse_rate failed: %s\n",strerror(errno));
- exit(-1);
+ exit(EXIT_FAILURE);
}
}
@@ -741,19 +741,19 @@ static int parse_range(const char *str, unsigned long *a, unsigned long *b)
*a = *b = strtoul(str, &endptr, 10);
if (endptr == str || *a == ULONG_MAX)
- return ERROR_INVAL;
+ return 1;
if (*endptr == '-') {
nstr = endptr + 1;
*b = strtoul(nstr, &endptr, 10);
if (endptr == nstr || *b == ULONG_MAX || *b < *a)
- return ERROR_INVAL;
+ return 1;
}
/* Valid value or range so far, but we also don't want junk after that */
if (*endptr != '\0')
- return ERROR_INVAL;
+ return 1;
return 0;
}
@@ -902,7 +902,7 @@ static char *parse_cmdline(XLU_Config *config)
if ((buf || root || extra) && !cmdline) {
fprintf(stderr, "Failed to allocate memory for cmdline\n");
- exit(1);
+ exit(EXIT_FAILURE);
}
return cmdline;
@@ -946,11 +946,11 @@ static void parse_vcpu_affinity(libxl_domain_build_info *b_info,
libxl_bitmap_init(&vcpu_affinity_array[j]);
if (libxl_cpu_bitmap_alloc(ctx, &vcpu_affinity_array[j], 0)) {
fprintf(stderr, "Unable to allocate cpumap for vcpu %d\n", j);
- exit(1);
+ exit(EXIT_FAILURE);
}
if (cpurange_parse(buf, &vcpu_affinity_array[j]))
- exit(1);
+ exit(EXIT_FAILURE);
j++;
}
@@ -963,17 +963,17 @@ static void parse_vcpu_affinity(libxl_domain_build_info *b_info,
libxl_bitmap_init(&vcpu_affinity_array[0]);
if (libxl_cpu_bitmap_alloc(ctx, &vcpu_affinity_array[0], 0)) {
fprintf(stderr, "Unable to allocate cpumap for vcpu 0\n");
- exit(1);
+ exit(EXIT_FAILURE);
}
if (cpurange_parse(buf, &vcpu_affinity_array[0]))
- exit(1);
+ exit(EXIT_FAILURE);
for (i = 1; i < b_info->max_vcpus; i++) {
libxl_bitmap_init(&vcpu_affinity_array[i]);
if (libxl_cpu_bitmap_alloc(ctx, &vcpu_affinity_array[i], 0)) {
fprintf(stderr, "Unable to allocate cpumap for vcpu %d\n", i);
- exit(1);
+ exit(EXIT_FAILURE);
}
libxl_bitmap_copy(ctx, &vcpu_affinity_array[i],
&vcpu_affinity_array[0]);
@@ -1064,7 +1064,7 @@ static unsigned long parse_ulong(const char *str)
val = strtoul(str, &endptr, 10);
if (endptr == str || val == ULONG_MAX) {
fprintf(stderr, "xl: failed to convert \"%s\" to number\n", str);
- exit(1);
+ exit(EXIT_FAILURE);
}
return val;
}
@@ -1086,7 +1086,7 @@ static void parse_vnuma_config(const XLU_Config *config,
if (libxl_get_physinfo(ctx, &physinfo) != 0) {
libxl_physinfo_dispose(&physinfo);
fprintf(stderr, "libxl_get_physinfo failed\n");
- exit(1);
+ exit(EXIT_FAILURE);
}
nr_nodes = physinfo.nr_nodes;
@@ -1105,7 +1105,7 @@ static void parse_vnuma_config(const XLU_Config *config,
libxl_bitmap_init(&vcpu_parsed[i]);
if (libxl_cpu_bitmap_alloc(ctx, &vcpu_parsed[i], b_info->max_vcpus)) {
fprintf(stderr, "libxl_node_bitmap_alloc failed.\n");
- exit(1);
+ exit(EXIT_FAILURE);
}
}
@@ -1130,7 +1130,7 @@ static void parse_vnuma_config(const XLU_Config *config,
xlu_cfg_value_get_list(config, vnode_spec, &vnode_config_list, 0);
if (!vnode_config_list) {
fprintf(stderr, "xl: cannot get vnode config option list\n");
- exit(1);
+ exit(EXIT_FAILURE);
}
for (conf_count = 0;
@@ -1152,7 +1152,7 @@ static void parse_vnuma_config(const XLU_Config *config,
&value_untrimmed)) {
fprintf(stderr, "xl: failed to split \"%s\" into pair\n",
buf);
- exit(1);
+ exit(EXIT_FAILURE);
}
trim(isspace, option_untrimmed, &option);
trim(isspace, value_untrimmed, &value);
@@ -1162,7 +1162,7 @@ static void parse_vnuma_config(const XLU_Config *config,
if (val >= nr_nodes) {
fprintf(stderr,
"xl: invalid pnode number: %lu\n", val);
- exit(1);
+ exit(EXIT_FAILURE);
}
p->pnode = val;
libxl_defbool_set(&b_info->numa_placement, false);
@@ -1218,20 +1218,20 @@ static void parse_vnuma_config(const XLU_Config *config,
if (b_info->max_vcpus != 0) {
if (b_info->max_vcpus != max_vcpus) {
fprintf(stderr, "xl: vnuma vcpus and maxvcpus= mismatch\n");
- exit(1);
+ exit(EXIT_FAILURE);
}
} else {
int host_cpus = libxl_get_online_cpus(ctx);
if (host_cpus < 0) {
fprintf(stderr, "Failed to get online cpus\n");
- exit(1);
+ exit(EXIT_FAILURE);
}
if (host_cpus < max_vcpus) {
fprintf(stderr, "xl: vnuma specifies more vcpus than pcpus, "\
"use maxvcpus= to override this check.\n");
- exit(1);
+ exit(EXIT_FAILURE);
}
b_info->max_vcpus = max_vcpus;
@@ -1241,7 +1241,7 @@ static void parse_vnuma_config(const XLU_Config *config,
if (b_info->max_memkb != LIBXL_MEMKB_DEFAULT &&
b_info->max_memkb != max_memkb) {
fprintf(stderr, "xl: maxmem and vnuma memory size mismatch\n");
- exit(1);
+ exit(EXIT_FAILURE);
} else
b_info->max_memkb = max_memkb;
@@ -3118,6 +3118,7 @@ void help(const char *command)
}
}
+/* Function returns -1 if the parsing fails */
static int64_t parse_mem_size_kb(const char *mem)
{
char *endptr;
@@ -3264,7 +3265,7 @@ static int set_memory_max(uint32_t domid, const char *mem)
memorykb = parse_mem_size_kb(mem);
if (memorykb == -1) {
fprintf(stderr, "invalid memory size: %s\n", mem);
- exit(3);
+ exit(EXIT_FAILURE);
}
rc = libxl_domain_setmaxmem(ctx, domid, memorykb);
@@ -3302,7 +3303,7 @@ static void set_memory_target(uint32_t domid, const char *mem)
memorykb = parse_mem_size_kb(mem);
if (memorykb == -1) {
fprintf(stderr, "invalid memory size: %s\n", mem);
- exit(3);
+ exit(EXIT_FAILURE);
}
libxl_set_memory_target(ctx, domid, memorykb, 0, /* enforce */ 1);
--
1.9.1
next prev parent reply other threads:[~2015-10-27 9:52 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-27 9:50 [PATCH v3 0/5] xl: convert exit codes to EXIT_[SUCCESS|FAILURE] Harmandeep Kaur
2015-10-27 9:50 ` [PATCH v3 1/5] xl: convert main() " Harmandeep Kaur
2015-10-27 11:11 ` Wei Liu
2015-10-27 11:20 ` Dario Faggioli
2015-10-27 9:50 ` [PATCH v3 2/5] xl: improve return and exit codes of scheduling related functions Harmandeep Kaur
2015-10-27 11:25 ` Dario Faggioli
2015-10-27 9:50 ` [PATCH v3 3/5] xl: improve return and exit codes of vcpu " Harmandeep Kaur
2015-10-27 11:27 ` Dario Faggioli
2015-10-27 9:50 ` [PATCH v3 4/5] xl: improve return and exit codes of cpupool " Harmandeep Kaur
2015-10-27 11:29 ` Dario Faggioli
2015-10-27 9:50 ` Harmandeep Kaur [this message]
2015-10-27 11:41 ` [PATCH v3 5/5] xl: improve return and exit codes of parse " Dario Faggioli
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1445939452-8091-6-git-send-email-write.harmandeep@gmail.com \
--to=write.harmandeep@gmail.com \
--cc=dario.faggioli@citrix.com \
--cc=george.dunlap@citrix.com \
--cc=ian.campbell@citrix.com \
--cc=ian.jackson@eu.citrix.com \
--cc=lars.kurth@citrix.com \
--cc=stefano.stabellini@eu.citrix.com \
--cc=wei.liu2@citrix.com \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.