From: Andre Przywara <andre.przywara@amd.com>
To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
Keir Fraser <keir.fraser@eu.citrix.com>
Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>
Subject: [PATCH 2/5] libxl: add xlu_cfg_get_type function
Date: Wed, 8 Sep 2010 11:20:35 +0200 [thread overview]
Message-ID: <4C875563.7060302@amd.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 360 bytes --]
As cpuid= can be used with two syntaxes (one as a list, the other as a
string), we need to distinguish them without an error message. Introduce
a helper function to detect the type of entry used before issuing a warning.
Signed-off-by: Andre Przywara
--
Andre Przywara
AMD-Operating System Research Center (OSRC), Dresden, Germany
Tel: +49 351 448-3567-12
[-- Attachment #2: 0002-libxl-add-xlu_cfg_get_type-function.patch --]
[-- Type: text/x-patch, Size: 2289 bytes --]
>From ae2a1dda7829a38bb891f560d9fc458a4d8c9fba Mon Sep 17 00:00:00 2001
From: Andre Przywara <andre.przywara@amd.com>
Date: Wed, 1 Sep 2010 14:11:54 +0200
Subject: [PATCH 2/5] libxl: add xlu_cfg_get_type function
cpuid= can be used with two syntaxes, one as a list, the other as a
string. Introduce a helper function to detect the type of entry used
before issuing a warning.
Signed-off-by: Andre Przywara
---
tools/libxl/libxlu_cfg.c | 18 ++++++++++++++++++
tools/libxl/libxlutil.h | 6 ++++++
2 files changed, 24 insertions(+), 0 deletions(-)
diff --git a/tools/libxl/libxlu_cfg.c b/tools/libxl/libxlu_cfg.c
index 09a7c71..b9018d5 100644
--- a/tools/libxl/libxlu_cfg.c
+++ b/tools/libxl/libxlu_cfg.c
@@ -124,6 +124,24 @@ static XLU_ConfigSetting *find(const XLU_Config *cfg, const char *n) {
return 0;
}
+int xlu_cfg_get_type(const XLU_Config *cfg, const char *n)
+{
+ XLU_ConfigSetting *set;
+ char *endptr;
+ long l;
+
+ set = find(cfg, n);
+ if (set == NULL)
+ return XLU_CFG_NOTFOUND;
+ if (set->avalues > 1)
+ return XLU_CFG_LIST;
+ errno = 0;
+ l = strtol(set->values[0], &endptr, 0);
+ if (errno == EINVAL || endptr == set->values[0])
+ return XLU_CFG_STRING;
+ return XLU_CFG_LONG;
+}
+
static int find_atom(const XLU_Config *cfg, const char *n,
XLU_ConfigSetting **set_r) {
XLU_ConfigSetting *set;
diff --git a/tools/libxl/libxlutil.h b/tools/libxl/libxlutil.h
index 0262e55..0d7ae91 100644
--- a/tools/libxl/libxlutil.h
+++ b/tools/libxl/libxlutil.h
@@ -24,6 +24,11 @@
typedef struct XLU_Config XLU_Config;
typedef struct XLU_ConfigList XLU_ConfigList;
+#define XLU_CFG_NOTFOUND 0
+#define XLU_CFG_LIST 1
+#define XLU_CFG_LONG 2
+#define XLU_CFG_STRING 3
+
XLU_Config *xlu_cfg_init(FILE *report, const char *report_filename);
/* 0 means we got ENOMEM. */
/* report_filename is copied; report is saved and must remain valid
@@ -45,6 +50,7 @@ void xlu_cfg_destroy(XLU_Config*);
* ERANGE value out of range (from strtol)
*/
+int xlu_cfg_get_type(const XLU_Config *cfg, const char *n);
int xlu_cfg_get_string(const XLU_Config*, const char *n, const char **value_r);
int xlu_cfg_get_long(const XLU_Config*, const char *n, long *value_r);
--
1.6.4
[-- Attachment #3: Type: text/plain, Size: 138 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
next reply other threads:[~2010-09-08 9:20 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-08 9:20 Andre Przywara [this message]
-- strict thread matches above, loose matches on Subject: below --
2010-09-16 13:07 [PATCH 2/5] libxl: add xlu_cfg_get_type function Andre Przywara
2010-09-16 17:13 ` Ian Jackson
2010-09-17 11:38 ` Andre Przywara
2010-09-17 15:59 ` Ian Jackson
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=4C875563.7060302@amd.com \
--to=andre.przywara@amd.com \
--cc=keir.fraser@eu.citrix.com \
--cc=stefano.stabellini@eu.citrix.com \
--cc=xen-devel@lists.xensource.com \
/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.