aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxl/libxlu_disk_l.l
diff options
context:
space:
mode:
authorIan Jackson <ian.jackson@eu.citrix.com>2011-06-28 12:19:15 +0100
committerIan Jackson <ian.jackson@eu.citrix.com>2011-06-28 12:19:15 +0100
commit74f917afa34d2e2699fc9fee7fe43c3fe81768ae (patch)
tree776917f4f507f11d3b10c23b57dee722d0627339 /tools/libxl/libxlu_disk_l.l
parentd072c6003bc7ef26a9fda4f89fdbf7d73e810e8b (diff)
downloadxen-74f917afa34d2e2699fc9fee7fe43c3fe81768ae.tar.gz
xen-74f917afa34d2e2699fc9fee7fe43c3fe81768ae.tar.bz2
xen-74f917afa34d2e2699fc9fee7fe43c3fe81768ae.zip
libxl: disks: allow specification of "backendtype=phy|tap|qdisk"
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com> Committed-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
Diffstat (limited to 'tools/libxl/libxlu_disk_l.l')
-rw-r--r--tools/libxl/libxlu_disk_l.l9
1 files changed, 9 insertions, 0 deletions
diff --git a/tools/libxl/libxlu_disk_l.l b/tools/libxl/libxlu_disk_l.l
index 48a1314e0f..e9d43c972a 100644
--- a/tools/libxl/libxlu_disk_l.l
+++ b/tools/libxl/libxlu_disk_l.l
@@ -100,6 +100,14 @@ static void setformat(DiskParseContext *dpc, const char *str) {
else xlu__disk_err(dpc,str,"unknown value for format");
}
+/* Sets ->backend from the string. IDL should provide something for this. */
+static void setbackendtype(DiskParseContext *dpc, const char *str) {
+ if ( !strcmp(str,"phy")) DSET(dpc,backend,BACKEND,str,PHY);
+ else if (!strcmp(str,"tap")) DSET(dpc,backend,BACKEND,str,TAP);
+ else if (!strcmp(str,"qdisk")) DSET(dpc,backend,BACKEND,str,QDISK);
+ else xlu__disk_err(dpc,str,"unknown value for backendtype");
+}
+
#define DEPRECATE(usewhatinstead) /* not currently reported */
%}
@@ -131,6 +139,7 @@ devtype=disk,? { DPC->disk->is_cdrom = 0; }
devtype=[^,]*,? { xlu__disk_err(DPC,yytext,"unknown value for type"); }
access=[^,]*,? { STRIP(','); setaccess(DPC, FROMEQUALS); }
+backendtype=[^,]*? { STRIP(','); setbackendtype(DPC,yytext); }
vdev=[^,]*,? { STRIP(','); SAVESTRING("vdev", vdev, FROMEQUALS); }
script=[^,]*,? { STRIP(','); SAVESTRING("script", script, FROMEQUALS); }