From: Andre Przywara Date: Tue, 21 Sep 2010 15:41:09 +0000 (+0100) Subject: libxl: change xl_cfg_get_list to take a dont_warn parameter X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~11452 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=88ac54776934daa7f57ec06f94c3d5306027220f;p=xen.git 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 Acked-by: Ian Jackson Signed-off-by: Ian Jackson --- diff --git a/tools/libxl/libxlu_cfg.c b/tools/libxl/libxlu_cfg.c index 07e65e1043..864a723009 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 6c992a2c0f..8a6fcbd803 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 fd50bb517a..238d998ea6 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;