[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH 3/4] libxl: change xl_cfg_get_list to take a dont_warn parameter



xl_cfg_get_list can cope with the option not being a list, but
it always reports a warning in this case. Introduce a parameter
to omit this warning if needed. Future code can then decide what
to do with this information.

Signed-off-by: Andre Przywara <andre.przywara@xxxxxxx>

--
Andre Przywara
AMD-Operating System Research Center (OSRC), Dresden, Germany
Tel: +49 351 448-3567-12
>From cae88598268186391b64d351721f410af97989a9 Mon Sep 17 00:00:00 2001
From: Andre Przywara <andre.przywara@xxxxxxx>
Date: Mon, 20 Sep 2010 12:29:09 +0200
Subject: [PATCH 3/4] libxl: change xl_cfg_get_list to take a dont_warn parameter

xl_cfg_get_list can cope with the option not being a list, but
it always reports a warning in this case. Introduce a parameter
to omit this warning if needed. Future code can then decide what
to do with this information.

Signed-off-by: Andre Przywara <andre.przywara@xxxxxxx>
---
 tools/libxl/libxlu_cfg.c |   12 +++++++-----
 tools/libxl/libxlutil.h  |    3 ++-
 tools/libxl/xl_cmdimpl.c |   10 +++++-----
 3 files changed, 14 insertions(+), 11 deletions(-)

diff --git a/tools/libxl/libxlu_cfg.c b/tools/libxl/libxlu_cfg.c
index 07e65e1..864a723 100644
--- a/tools/libxl/libxlu_cfg.c
+++ b/tools/libxl/libxlu_cfg.c
@@ -194,14 +194,16 @@ int xlu_cfg_get_long(const XLU_Config *cfg, const char *n,
         
 
 int xlu_cfg_get_list(const XLU_Config *cfg, const char *n,
-                     XLU_ConfigList **list_r, int *entries_r) {
+                     XLU_ConfigList **list_r, int *entries_r, int dont_warn) {
     XLU_ConfigSetting *set;
     set= find(cfg,n);  if (!set) return ESRCH;
     if (set->avalues==1) {
-        fprintf(cfg->report,
-                "%s:%d: warning: parameter `%s' is a single value"
-                " but should be a list\n",
-                cfg->filename, set->lineno, n);
+        if (!dont_warn) {
+            fprintf(cfg->report,
+                    "%s:%d: warning: parameter `%s' is a single value"
+                    " but should be a list\n",
+                    cfg->filename, set->lineno, n);
+        }
         return EINVAL;
     }
     if (list_r) *list_r= set;
diff --git a/tools/libxl/libxlutil.h b/tools/libxl/libxlutil.h
index 6c992a2..8a6fcbd 100644
--- a/tools/libxl/libxlutil.h
+++ b/tools/libxl/libxlutil.h
@@ -51,7 +51,8 @@ int xlu_cfg_get_long(const XLU_Config*, const char *n, long 
*value_r);
 
 int xlu_cfg_get_list(const XLU_Config*, const char *n,
                      XLU_ConfigList **list_r /* may be 0 */,
-                     int *entries_r /* may be 0 */);
+                     int *entries_r /* may be 0 */,
+                     int dont_warn);
   /* there is no need to free *list_r; lifetime is that of the XLU_Config */
 const char *xlu_cfg_get_listitem(const XLU_ConfigList*, int entry);
   /* xlu_cfg_get_listitem cannot fail, except that if entry is
diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
index 1f7117e..7c37cc6 100644
--- a/tools/libxl/xl_cmdimpl.c
+++ b/tools/libxl/xl_cmdimpl.c
@@ -744,7 +744,7 @@ static void parse_config_data(const char 
*configfile_filename_report,
         xlu_cfg_replace_string (config, "ramdisk", &b_info->u.pv.ramdisk.path);
     }
 
-    if (!xlu_cfg_get_list (config, "disk", &vbds, 0)) {
+    if (!xlu_cfg_get_list (config, "disk", &vbds, 0, 0)) {
         d_config->num_disks = 0;
         d_config->disks = NULL;
         while ((buf = xlu_cfg_get_listitem (vbds, d_config->num_disks)) != 
NULL) {
@@ -808,7 +808,7 @@ static void parse_config_data(const char 
*configfile_filename_report,
         }
     }
 
-    if (!xlu_cfg_get_list (config, "vif", &nics, 0)) {
+    if (!xlu_cfg_get_list (config, "vif", &nics, 0, 0)) {
         d_config->num_vifs = 0;
         d_config->vifs = NULL;
         while ((buf = xlu_cfg_get_listitem (nics, d_config->num_vifs)) != 
NULL) {
@@ -882,7 +882,7 @@ skip:
         }
     }
 
-    if (!xlu_cfg_get_list(config, "vif2", &net2s, 0)) {
+    if (!xlu_cfg_get_list(config, "vif2", &net2s, 0, 0)) {
         d_config->num_vif2s = 0;
         d_config->vif2s = NULL;
         while ((buf = xlu_cfg_get_listitem(net2s, d_config->num_vif2s))) {
@@ -930,7 +930,7 @@ skip:
         }
     }
 
-    if (!xlu_cfg_get_list (config, "vfb", &cvfbs, 0)) {
+    if (!xlu_cfg_get_list (config, "vfb", &cvfbs, 0, 0)) {
         d_config->num_vfbs = 0;
         d_config->num_vkbs = 0;
         d_config->vfbs = NULL;
@@ -994,7 +994,7 @@ skip_vfb:
     if (!xlu_cfg_get_long (config, "pci_power_mgmt", &l))
         pci_power_mgmt = l;
 
-    if (!xlu_cfg_get_list (config, "pci", &pcis, 0)) {
+    if (!xlu_cfg_get_list (config, "pci", &pcis, 0, 0)) {
         int i;
         d_config->num_pcidevs = 0;
         d_config->pcidevs = NULL;
-- 
1.6.4

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.