All of lore.kernel.org
 help / color / mirror / Atom feed
From: Harmandeep Kaur <write.harmandeep@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: wei.liu2@citrix.com, ian.campbell@citrix.com,
	stefano.stabellini@eu.citrix.com, dario.faggioli@citrix.com,
	ian.jackson@eu.citrix.com,
	Harmandeep Kaur <write.harmandeep@gmail.com>
Subject: [PATCH] xl: Improve return and exit codes of parse_config_data().
Date: Fri, 19 Feb 2016 22:07:26 +0530	[thread overview]
Message-ID: <1455899846-4146-1-git-send-email-write.harmandeep@gmail.com> (raw)

Turning parse_config_data() 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.

Signed-off-by: Harmandeep Kaur <write.harmandeep@gmail.com>
---
 tools/libxl/xl_cmdimpl.c | 112 +++++++++++++++++++++++------------------------
 1 file changed, 56 insertions(+), 56 deletions(-)

diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
index d07ccb2..30cef25 100644
--- a/tools/libxl/xl_cmdimpl.c
+++ b/tools/libxl/xl_cmdimpl.c
@@ -1279,13 +1279,13 @@ static void parse_config_data(const char *config_source,
     config= xlu_cfg_init(stderr, config_source);
     if (!config) {
         fprintf(stderr, "Failed to allocate for configuration\n");
-        exit(1);
+        exit(EXIT_FAILURE);
     }
 
     e= xlu_cfg_readdata(config, config_data, config_len);
     if (e) {
         fprintf(stderr, "Failed to parse config: %s\n", strerror(e));
-        exit(1);
+        exit(EXIT_FAILURE);
     }
 
     if (!xlu_cfg_get_string (config, "init_seclabel", &buf, 0))
@@ -1312,13 +1312,13 @@ static void parse_config_data(const char *config_source,
 
     if (xlu_cfg_replace_string (config, "name", &c_info->name, 0)) {
         fprintf(stderr, "Domain name must be specified.\n");
-        exit(1);
+        exit(EXIT_FAILURE);
     }
 
     if (!xlu_cfg_get_string (config, "uuid", &buf, 0) ) {
         if ( libxl_uuid_from_string(&c_info->uuid, buf) ) {
             fprintf(stderr, "Failed to parse UUID: %s\n", buf);
-            exit(1);
+            exit(EXIT_FAILURE);
         }
     }else{
         libxl_uuid_generate(&c_info->uuid);
@@ -1358,7 +1358,7 @@ static void parse_config_data(const char *config_source,
         vcpus = l;
         if (libxl_cpu_bitmap_alloc(ctx, &b_info->avail_vcpus, l)) {
             fprintf(stderr, "Unable to allocate cpumap\n");
-            exit(1);
+            exit(EXIT_FAILURE);
         }
         libxl_bitmap_set_none(&b_info->avail_vcpus);
         while (l-- > 0)
@@ -1380,7 +1380,7 @@ static void parse_config_data(const char *config_source,
 
     if (b_info->max_vcpus < vcpus) {
         fprintf(stderr, "xl: maxvcpus < vcpus\n");
-        exit(1);
+        exit(EXIT_FAILURE);
     }
 
     buf = NULL;
@@ -1399,21 +1399,21 @@ static void parse_config_data(const char *config_source,
         buf = "destroy";
     if (!parse_action_on_shutdown(buf, &d_config->on_poweroff)) {
         fprintf(stderr, "Unknown on_poweroff action \"%s\" specified\n", buf);
-        exit(1);
+        exit(EXIT_FAILURE);
     }
 
     if (xlu_cfg_get_string (config, "on_reboot", &buf, 0))
         buf = "restart";
     if (!parse_action_on_shutdown(buf, &d_config->on_reboot)) {
         fprintf(stderr, "Unknown on_reboot action \"%s\" specified\n", buf);
-        exit(1);
+        exit(EXIT_FAILURE);
     }
 
     if (xlu_cfg_get_string (config, "on_watchdog", &buf, 0))
         buf = "destroy";
     if (!parse_action_on_shutdown(buf, &d_config->on_watchdog)) {
         fprintf(stderr, "Unknown on_watchdog action \"%s\" specified\n", buf);
-        exit(1);
+        exit(EXIT_FAILURE);
     }
 
 
@@ -1421,14 +1421,14 @@ static void parse_config_data(const char *config_source,
         buf = "destroy";
     if (!parse_action_on_shutdown(buf, &d_config->on_crash)) {
         fprintf(stderr, "Unknown on_crash action \"%s\" specified\n", buf);
-        exit(1);
+        exit(EXIT_FAILURE);
     }
 
     if (xlu_cfg_get_string (config, "on_soft_reset", &buf, 0))
         buf = "soft-reset";
     if (!parse_action_on_shutdown(buf, &d_config->on_soft_reset)) {
         fprintf(stderr, "Unknown on_soft_reset action \"%s\" specified\n", buf);
-        exit(1);
+        exit(EXIT_FAILURE);
     }
 
     /* libxl_get_required_shadow_memory() must be called after final values
@@ -1452,7 +1452,7 @@ static void parse_config_data(const char *config_source,
         if (l < LIBXL_TSC_MODE_DEFAULT ||
             l > LIBXL_TSC_MODE_NATIVE_PARAVIRT) {
             fprintf(stderr, "ERROR: invalid value %ld for \"tsc_mode\"\n", l);
-            exit (1);
+            exit(EXIT_FAILURE);
         }
         b_info->tsc_mode = l;
     } else if (!xlu_cfg_get_string(config, "tsc_mode", &buf, 0)) {
@@ -1460,7 +1460,7 @@ static void parse_config_data(const char *config_source,
         if (libxl_tsc_mode_from_string(buf, &b_info->tsc_mode)) {
             fprintf(stderr, "ERROR: invalid value \"%s\" for \"tsc_mode\"\n",
                     buf);
-            exit (1);
+            exit(EXIT_FAILURE);
         }
     }
 
@@ -1504,7 +1504,7 @@ static void parse_config_data(const char *config_source,
             libxl_bios_type_from_string(buf, &b_info->u.hvm.bios)) {
                 fprintf(stderr, "ERROR: invalid value \"%s\" for \"bios\"\n",
                     buf);
-                exit (1);
+                exit(EXIT_FAILURE);
         }
 
         xlu_cfg_get_defbool(config, "pae", &b_info->u.hvm.pae, 0);
@@ -1549,7 +1549,7 @@ static void parse_config_data(const char *config_source,
                         fprintf(stderr,
                                 "xl: unknown viridian enlightenment '%s'\n",
                                 buf);
-                        exit(-ERROR_FAIL);
+                        exit(EXIT_FAILURE);
                     }
 
                     libxl_bitmap_set(s, v);
@@ -1563,7 +1563,7 @@ static void parse_config_data(const char *config_source,
             break;
         default:
             fprintf(stderr,"xl: Unable to parse viridian enlightenments.\n");
-            exit(-ERROR_FAIL);
+            exit(EXIT_FAILURE);
         }
 
         if (!xlu_cfg_get_long(config, "mmio_hole", &l, 0)) {
@@ -1575,7 +1575,7 @@ static void parse_config_data(const char *config_source,
                 mmio_hole_size > HVM_BELOW_4G_MMIO_START) {
                 fprintf(stderr,
                         "ERROR: invalid value %ld for \"mmio_hole\"\n", l);
-                exit (1);
+                exit(EXIT_FAILURE);
             }
         }
         if (!xlu_cfg_get_long(config, "timer_mode", &l, 1)) {
@@ -1589,14 +1589,14 @@ static void parse_config_data(const char *config_source,
             if (l < LIBXL_TIMER_MODE_DELAY_FOR_MISSED_TICKS ||
                 l > LIBXL_TIMER_MODE_ONE_MISSED_TICK_PENDING) {
                 fprintf(stderr, "ERROR: invalid value %ld for \"timer_mode\"\n", l);
-                exit (1);
+                exit(EXIT_FAILURE);
             }
             b_info->u.hvm.timer_mode = l;
         } else if (!xlu_cfg_get_string(config, "timer_mode", &buf, 0)) {
             if (libxl_timer_mode_from_string(buf, &b_info->u.hvm.timer_mode)) {
                 fprintf(stderr, "ERROR: invalid value \"%s\" for \"timer_mode\"\n",
                         buf);
-                exit (1);
+                exit(EXIT_FAILURE);
             }
         }
 
@@ -1614,13 +1614,13 @@ static void parse_config_data(const char *config_source,
                 e = libxl_ms_vm_genid_generate(ctx, &b_info->u.hvm.ms_vm_genid);
                 if (e) {
                     fprintf(stderr, "ERROR: failed to generate a VM Generation ID\n");
-                    exit(1);
+                    exit(EXIT_FAILURE);
                 }
             } else if (!strcmp(buf, "none")) {
                 ;
             } else {
                     fprintf(stderr, "ERROR: \"ms_vm_genid\" option must be \"generate\" or \"none\"\n");
-                    exit(1);
+                    exit(EXIT_FAILURE);
             }
         }
 
@@ -1648,12 +1648,12 @@ static void parse_config_data(const char *config_source,
             break;
         default:
             fprintf(stderr,"xl: Unable to parse bootloader_args.\n");
-            exit(-ERROR_FAIL);
+            exit(EXIT_FAILURE);
         }
 
         if (!b_info->u.pv.bootloader && !b_info->kernel) {
             fprintf(stderr, "Neither kernel nor bootloader specified\n");
-            exit(1);
+            exit(EXIT_FAILURE);
         }
 
         break;
@@ -1667,7 +1667,7 @@ static void parse_config_data(const char *config_source,
         b_info->ioports = calloc(num_ioports, sizeof(*b_info->ioports));
         if (b_info->ioports == NULL) {
             fprintf(stderr, "unable to allocate memory for ioports\n");
-            exit(-1);
+            exit(EXIT_FAILURE);
         }
 
         for (i = 0; i < num_ioports; i++) {
@@ -1680,17 +1680,17 @@ static void parse_config_data(const char *config_source,
             if (!buf) {
                 fprintf(stderr,
                         "xl: Unable to get element #%d in ioport list\n", i);
-                exit(1);
+                exit(EXIT_FAILURE);
             }
             ul = strtoul(buf, &ep, 16);
             if (ep == buf) {
                 fprintf(stderr, "xl: Invalid argument parsing ioport: %s\n",
                         buf);
-                exit(1);
+                exit(EXIT_FAILURE);
             }
             if (ul >= UINT32_MAX) {
                 fprintf(stderr, "xl: ioport %lx too big\n", ul);
-                exit(1);
+                exit(EXIT_FAILURE);
             }
             start = end = ul;
 
@@ -1700,11 +1700,11 @@ static void parse_config_data(const char *config_source,
                 if (ep == buf2 || *ep != '\0' || start > end) {
                     fprintf(stderr,
                             "xl: Invalid argument parsing ioport: %s\n", buf);
-                    exit(1);
+                    exit(EXIT_FAILURE);
                 }
                 if (ul >= UINT32_MAX) {
                     fprintf(stderr, "xl: ioport %lx too big\n", ul);
-                    exit(1);
+                    exit(EXIT_FAILURE);
                 }
                 end = ul;
             } else if ( *ep != '\0' )
@@ -1720,7 +1720,7 @@ static void parse_config_data(const char *config_source,
         b_info->irqs = calloc(num_irqs, sizeof(*b_info->irqs));
         if (b_info->irqs == NULL) {
             fprintf(stderr, "unable to allocate memory for ioports\n");
-            exit(-1);
+            exit(EXIT_FAILURE);
         }
         for (i = 0; i < num_irqs; i++) {
             char *ep;
@@ -1729,17 +1729,17 @@ static void parse_config_data(const char *config_source,
             if (!buf) {
                 fprintf(stderr,
                         "xl: Unable to get element %d in irq list\n", i);
-                exit(1);
+                exit(EXIT_FAILURE);
             }
             ul = strtoul(buf, &ep, 10);
             if (ep == buf || *ep != '\0') {
                 fprintf(stderr,
                         "xl: Invalid argument parsing irq: %s\n", buf);
-                exit(1);
+                exit(EXIT_FAILURE);
             }
             if (ul >= UINT32_MAX) {
                 fprintf(stderr, "xl: irq %lx too big\n", ul);
-                exit(1);
+                exit(EXIT_FAILURE);
             }
             b_info->irqs[i] = ul;
         }
@@ -1751,7 +1751,7 @@ static void parse_config_data(const char *config_source,
         b_info->iomem = calloc(num_iomem, sizeof(*b_info->iomem));
         if (b_info->iomem == NULL) {
             fprintf(stderr, "unable to allocate memory for iomem\n");
-            exit(-1);
+            exit(EXIT_FAILURE);
         }
         for (i = 0; i < num_iomem; i++) {
             int used;
@@ -1760,7 +1760,7 @@ static void parse_config_data(const char *config_source,
             if (!buf) {
                 fprintf(stderr,
                         "xl: Unable to get element %d in iomem list\n", i);
-                exit(1);
+                exit(EXIT_FAILURE);
             }
             libxl_iomem_range_init(&b_info->iomem[i]);
             ret = sscanf(buf, "%" SCNx64",%" SCNx64"%n@%" SCNx64"%n",
@@ -1770,7 +1770,7 @@ static void parse_config_data(const char *config_source,
             if (ret < 2 || buf[used] != '\0') {
                 fprintf(stderr,
                         "xl: Invalid argument parsing iomem: %s\n", buf);
-                exit(1);
+                exit(EXIT_FAILURE);
             }
         }
     }
@@ -1821,17 +1821,17 @@ static void parse_config_data(const char *config_source,
                      if( libxl_uuid_from_string(&vtpm->uuid, p2 + 1) ) {
                         fprintf(stderr,
                               "Failed to parse vtpm UUID: %s\n", p2 + 1);
-                        exit(1);
+                        exit(EXIT_FAILURE);
                     }
                   } else {
                      fprintf(stderr, "Unknown string `%s' in vtpm spec\n", p);
-                     exit(1);
+                     exit(EXIT_FAILURE);
                   }
                } while ((p = strtok(NULL, ",")) != NULL);
             }
             if(!got_backend) {
                fprintf(stderr, "vtpm spec missing required backend field!\n");
-               exit(1);
+               exit(EXIT_FAILURE);
             }
             free(buf2);
         }
@@ -1861,7 +1861,7 @@ static void parse_config_data(const char *config_source,
                 if (rc != 0) {
                     fprintf(stderr, "failed to parse channel configuration: %s",
                             pairs[i]);
-                    exit(1);
+                    exit(EXIT_FAILURE);
                 }
                 trim(isspace, key_untrimmed, &key);
                 trim(isspace, value_untrimmed, &value);
@@ -1880,7 +1880,7 @@ static void parse_config_data(const char *config_source,
                     } else {
                         fprintf(stderr, "unknown channel connection '%s'\n",
                                 value);
-                        exit(1);
+                        exit(EXIT_FAILURE);
                     }
                 } else {
                     fprintf(stderr, "unknown channel parameter '%s',"
@@ -1894,11 +1894,11 @@ static void parse_config_data(const char *config_source,
             switch (chn->connection) {
             case LIBXL_CHANNEL_CONNECTION_UNKNOWN:
                 fprintf(stderr, "channel has unknown 'connection'\n");
-                exit(1);
+                exit(EXIT_FAILURE);
             case LIBXL_CHANNEL_CONNECTION_SOCKET:
                 if (!path) {
                     fprintf(stderr, "channel connection 'socket' requires path=..\n");
-                    exit(1);
+                    exit(EXIT_FAILURE);
                 }
                 chn->u.socket.path = xstrdup(path);
                 break;
@@ -1908,7 +1908,7 @@ static void parse_config_data(const char *config_source,
             default:
                 fprintf(stderr, "unknown channel connection: %d",
                         chn->connection);
-                exit(1);
+                exit(EXIT_FAILURE);
             }
             libxl_string_list_dispose(&pairs);
             free(path);
@@ -2055,7 +2055,7 @@ skip_vfb:
                 fprintf(stderr,
                         "unable to parse PCI BDF `%s' for passthrough\n",
                         buf);
-                exit(-e);
+                exit(EXIT_FAILURE);
             }
         }
         if (d_config->num_pcidevs && c_info->type == LIBXL_DOMAIN_TYPE_PV)
@@ -2075,7 +2075,7 @@ skip_vfb:
             dtdev->path = strdup(buf);
             if (dtdev->path == NULL) {
                 fprintf(stderr, "unable to duplicate string for dtdevs\n");
-                exit(-1);
+                exit(EXIT_FAILURE);
             }
         }
     }
@@ -2191,7 +2191,7 @@ skip_vfb:
         } else {
             fprintf(stderr,
                     "Unknown device_model_version \"%s\" specified\n", buf);
-            exit(1);
+            exit(EXIT_FAILURE);
         }
     } else if (b_info->device_model)
         fprintf(stderr, "WARNING: device model override given without specific DM version\n");
@@ -2211,7 +2211,7 @@ skip_vfb:
                                     &b_info->extra##type, 0);            \
     if (e && e != ESRCH) {                                                \
         fprintf(stderr,"xl: Unable to parse device_model_args"#type".\n");\
-        exit(-ERROR_FAIL);                                                \
+        exit(EXIT_FAILURE);                                               \
     }
 
     /* parse extra args for qemu, common to both pv, hvm */
@@ -2264,7 +2264,7 @@ skip_vfb:
                 b_info->u.hvm.vga.kind = LIBXL_VGA_INTERFACE_TYPE_QXL;
             } else {
                 fprintf(stderr, "Unknown vga \"%s\" specified\n", buf);
-                exit(1);
+                exit(EXIT_FAILURE);
             }
         } else if (!xlu_cfg_get_long(config, "stdvga", &l, 0))
             b_info->u.hvm.vga.kind = l ? LIBXL_VGA_INTERFACE_TYPE_STD :
@@ -2274,7 +2274,7 @@ skip_vfb:
             libxl_hdtype_from_string(buf, &b_info->u.hvm.hdtype)) {
                 fprintf(stderr, "ERROR: invalid value \"%s\" for \"hdtype\"\n",
                     buf);
-                exit (1);
+                exit (EXIT_FAILURE);
         }
 
         xlu_cfg_replace_string (config, "keymap", &b_info->u.hvm.keymap, 0);
@@ -2310,7 +2310,7 @@ skip_vfb:
                 fprintf(stderr,
                         "ERROR: invalid value \"%s\" for \"gfx_passthru\"\n",
                         buf);
-                exit (1);
+                exit(EXIT_FAILURE);
             }
             libxl_defbool_set(&b_info->u.hvm.gfx_passthru, true);
         }
@@ -2330,7 +2330,7 @@ skip_vfb:
             /* FALLTHRU */
         default:
             fprintf(stderr,"xl: Unable to parse serial.\n");
-            exit(-ERROR_FAIL);
+            exit(EXIT_FAILURE);
         }
         xlu_cfg_replace_string (config, "boot", &b_info->u.hvm.boot, 0);
         xlu_cfg_get_defbool(config, "usb", &b_info->u.hvm.usb, 0);
@@ -2352,7 +2352,7 @@ skip_vfb:
             /* FALLTHRU */
         default:
             fprintf(stderr,"xl: Unable to parse usbdevice.\n");
-            exit(-ERROR_FAIL);
+            exit(EXIT_FAILURE);
         }
         xlu_cfg_replace_string (config, "soundhw", &b_info->u.hvm.soundhw, 0);
         xlu_cfg_get_defbool(config, "xen_platform_pci",
@@ -2364,7 +2364,7 @@ skip_vfb:
             fprintf(stderr,
                     "ERROR: Display specified both in vnclisten"
                     " and vncdisplay!\n");
-            exit (1);
+            exit(EXIT_FAILURE);
 
         }
 
@@ -2376,7 +2376,7 @@ skip_vfb:
                 fprintf(stderr,
                         "xl: unknown vendor_device '%s'\n",
                         buf);
-                exit(-ERROR_FAIL);
+                exit(EXIT_FAILURE);
             }
 
             b_info->u.hvm.vendor_device = d;
@@ -2388,7 +2388,7 @@ skip_vfb:
         if (e) {
             fprintf(stderr,
                     "Unknown gic_version \"%s\" specified\n", buf);
-            exit(-ERROR_FAIL);
+            exit(EXIT_FAILURE);
         }
      }
 
-- 
2.5.0

             reply	other threads:[~2016-02-19 16:37 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-19 16:37 Harmandeep Kaur [this message]
2016-02-23 18:20 ` [PATCH] xl: Improve return and exit codes of parse_config_data() 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=1455899846-4146-1-git-send-email-write.harmandeep@gmail.com \
    --to=write.harmandeep@gmail.com \
    --cc=dario.faggioli@citrix.com \
    --cc=ian.campbell@citrix.com \
    --cc=ian.jackson@eu.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.