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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).