WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [PATCH 13/14] libxl: disks: allow specification of "backendt

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] [PATCH 13/14] libxl: disks: allow specification of "backendtype=phy|tap|qdisk"
From: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
Date: Thu, 12 May 2011 15:36:43 +0100
Cc: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>, Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
Delivery-date: Thu, 12 May 2011 07:51:36 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <1305211004-31687-13-git-send-email-ian.jackson@xxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <1305211004-31687-1-git-send-email-ian.jackson@xxxxxxxxxxxxx> <1305211004-31687-2-git-send-email-ian.jackson@xxxxxxxxxxxxx> <1305211004-31687-3-git-send-email-ian.jackson@xxxxxxxxxxxxx> <1305211004-31687-4-git-send-email-ian.jackson@xxxxxxxxxxxxx> <1305211004-31687-5-git-send-email-ian.jackson@xxxxxxxxxxxxx> <1305211004-31687-6-git-send-email-ian.jackson@xxxxxxxxxxxxx> <1305211004-31687-7-git-send-email-ian.jackson@xxxxxxxxxxxxx> <1305211004-31687-8-git-send-email-ian.jackson@xxxxxxxxxxxxx> <1305211004-31687-9-git-send-email-ian.jackson@xxxxxxxxxxxxx> <1305211004-31687-10-git-send-email-ian.jackson@xxxxxxxxxxxxx> <1305211004-31687-11-git-send-email-ian.jackson@xxxxxxxxxxxxx> <1305211004-31687-12-git-send-email-ian.jackson@xxxxxxxxxxxxx> <1305211004-31687-13-git-send-email-ian.jackson@xxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Signed-off-by: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
---
 tools/libxl/libxlu_disk_l.c |  739 +++++++++++++++++++++++--------------------
 tools/libxl/libxlu_disk_l.h |    2 +-
 tools/libxl/libxlu_disk_l.l |    9 +
 3 files changed, 403 insertions(+), 347 deletions(-)

diff --git a/tools/libxl/libxlu_disk_l.c b/tools/libxl/libxlu_disk_l.c
index 30515e9..8275850 100644
--- a/tools/libxl/libxlu_disk_l.c
+++ b/tools/libxl/libxlu_disk_l.c
@@ -356,8 +356,8 @@ static void yy_fatal_error (yyconst char msg[] ,yyscan_t 
yyscanner );
        *yy_cp = '\0'; \
        yyg->yy_c_buf_p = yy_cp;
 
-#define YY_NUM_RULES 23
-#define YY_END_OF_BUFFER 24
+#define YY_NUM_RULES 24
+#define YY_END_OF_BUFFER 25
 /* This struct is not used in this scanner,
    but its presence is necessary. */
 struct yy_trans_info
@@ -365,99 +365,104 @@ struct yy_trans_info
        flex_int32_t yy_verify;
        flex_int32_t yy_nxt;
        };
-static yyconst flex_int16_t yy_acclist[547] =
+static yyconst flex_int16_t yy_acclist[575] =
     {   0,
-       24,   21,   22,   23, 8193,   21,   22,   23,16385, 8193,
-       21,   23,16385,   21,   22,   23,   22,   23,   21,   22,
-       23,   21,   22,   23,   21,   22,   23,   21,   22,   23,
-       21,   22,   23,   21,   22,   23,   21,   22,   23,   21,
-       22,   23,   21,   22,   23,   21,   22,   23,   21,   22,
-       23,   21,   22,   23,   21,   22,   23,   21,   22,   23,
-       21,   22,   21,   22,   21,   22,   22, 8193,   21,   22,
-     8193,   21,   22,16385, 8193,   21,   22, 8193,   21,   22,
-     8193,   22, 8193,   21, 8193,   21,16385, 8193,   21, 8193,
-       22,   21,   22,   21,   22, 8212,   21,   22,16404,   22,
-
-       21,   22,   21,   22,   21,   22,   21,   22,   21,   22,
-       21,   22,   21,   22,   21,   22,   21,   22,   21,   22,
-       21,   22,   21,   22,   21,   22,   21,   22,   21,   22,
-       21,   22,   21,   22,   21,   21, 8193,   21,   22, 8193,
-       21,   22, 8193,   21,   22, 8193,   22, 8193, 8193,   21,
-     8193,   21, 8212,   21, 8212,   21, 8212,   11,   21,   22,
-       21,   22,   21,   22,   21,   22,   21,   22,   21,   22,
-       21,   22,   21,   22,   21,   22,   21,   22,   21,   22,
-       21,   22,   21,   22,   21,   22,   21,   22,   21,   22,
-     8212,   21, 8212,   21, 8212,   11,   21,   22,   16, 8212,
-
-       21,   22,16404,   21,   22,   21,   22,   21,   22,   21,
-       22,   21,   22,   21,   22, 8212,   21,   22,16404,   19,
-     8212,   21,   22,16404,   21,   22, 8204, 8212,   21,   22,
-    16396,16404,   21,   22,   21,   22, 8207, 8212,   21,   22,
-    16399,16404,   21,   22,   21,   22,   21,   22,   21,   22,
-       16, 8212,   21,   16, 8212,   21,   16,   21,   16, 8212,
-        3,   21,   22,   21,   22,   18, 8212,   21,   22,16404,
-       21,   22,   21,   22,   21,   22,   21,   19, 8212,   21,
-       19, 8212,   21,   19,   21,   19, 8212, 8204, 8212,   21,
-     8204, 8212,   21, 8204,   21, 8204, 8212,   21,   22, 8207,
-
-     8212,   21, 8207, 8212,   21, 8207,   21, 8207, 8212,   21,
-       22,   21,   22,    8,   22,   21,   22,   16, 8212,   21,
-       16, 8212,   21,   16, 8212,   16,   21,   16,    3,   21,
-       22,   21,   22,   18, 8212,   21,   18, 8212,   21,   18,
-       21,   18, 8212,   21,   22,   17, 8212,   21,   22,16404,
-     8205, 8212,   21,   22,16397,16404,   21,   19, 8212,   21,
-       19, 8212,   21,   19, 8212,   19,   21,   19, 8204, 8212,
-       21, 8204, 8212,   21, 8204, 8212, 8204,   21, 8204,   21,
-       22, 8207, 8212,   21, 8207, 8212,   21, 8207, 8212, 8207,
-       21, 8207,   21,   22,   21,   22,    8,   11,    8,    7,
-
-       22,   21,   22,   18, 8212,   21,   18, 8212,   21,   18,
-     8212,   18,   21,   18,    2,   22,   17, 8212,   21,   17,
-     8212,   21,   17,   21,   17, 8212, 8205, 8212,   21, 8205,
-     8212,   21, 8205,   21, 8205, 8212,   21,    9,   22,   21,
-       22,   10,   22,    8,    8,   11,    7,   11,    7,    6,
-       22,    2,   11,    2,   17, 8212,   21,   17, 8212,   21,
-       17, 8212,   17,   21,   17, 8205, 8212,   21, 8205, 8212,
-       21, 8205, 8212, 8205,   21, 8205,   21,    9,   11,    9,
-       14, 8212,   21,   22,16404,   10,   11,   10,    7,    7,
-       11,    6,   11,    6,    6,   11,    6,   11,    2,    2,
-
-       11, 8205,   21,16397,    9,    9,   11,   14, 8212,   21,
-       14, 8212,   21,   14,   21,   14, 8212,   10,   11,    6,
-        6,   11,    6,    6,   14, 8212,   21,   14, 8212,   21,
-       14, 8212,   14,   21,   14,    6,    6,    6,    5,    6,
-        4,    6,    5,    6,    4,    6
+       25,   22,   23,   24, 8193,   22,   23,   24,16385, 8193,
+       22,   24,16385,   22,   23,   24,   23,   24,   22,   23,
+       24,   22,   23,   24,   22,   23,   24,   22,   23,   24,
+       22,   23,   24,   22,   23,   24,   22,   23,   24,   22,
+       23,   24,   22,   23,   24,   22,   23,   24,   22,   23,
+       24,   22,   23,   24,   22,   23,   24,   22,   23,   24,
+       22,   23,   24,   22,   23,   22,   23,   22,   23,   23,
+     8193,   22,   23, 8193,   22,   23,16385, 8193,   22,   23,
+     8193,   22,   23, 8193,   23, 8193,   22, 8193,   22,16385,
+     8193,   22, 8193,   23,   22,   23,   22,   23, 8213,   22,
+
+       23,16405,   23,   22,   23,   22,   23,   22,   23,   22,
+       23,   22,   23,   22,   23,   22,   23,   22,   23,   22,
+       23,   22,   23,   22,   23,   22,   23,   22,   23,   22,
+       23,   22,   23,   22,   23,   22,   23,   22,   23,   22,
+       22, 8193,   22,   23, 8193,   22,   23, 8193,   22,   23,
+     8193,   23, 8193, 8193,   22, 8193,   22, 8213,   22, 8213,
+       22, 8213,   12,   22,   23,   22,   23,   22,   23,   22,
+       23,   22,   23,   22,   23,   22,   23,   22,   23,   22,
+       23,   22,   23,   22,   23,   22,   23,   22,   23,   22,
+       23,   22,   23,   22,   23,   22,   23, 8213,   22, 8213,
+
+       22, 8213,   12,   22,   23,   17, 8213,   22,   23,16405,
+       22,   23,   22,   23,   22,   23,   22,   23,   22,   23,
+       22,   23,   22,   23, 8213,   22,   23,16405,   20, 8213,
+       22,   23,16405,   22,   23, 8205, 8213,   22,   23,16397,
+    16405,   22,   23,   22,   23, 8208, 8213,   22,   23,16400,
+    16405,   22,   23,   22,   23,   22,   23,   22,   23,   17,
+     8213,   22,   17, 8213,   22,   17,   22,   17, 8213,   22,
+       23,    3,   22,   23,   22,   23,   19, 8213,   22,   23,
+    16405,   22,   23,   22,   23,   22,   23,   22,   20, 8213,
+       22,   20, 8213,   22,   20,   22,   20, 8213, 8205, 8213,
+
+       22, 8205, 8213,   22, 8205,   22, 8205, 8213,   22,   23,
+     8208, 8213,   22, 8208, 8213,   22, 8208,   22, 8208, 8213,
+       22,   23,   22,   23,    9,   23,   22,   23,   17, 8213,
+       22,   17, 8213,   22,   17, 8213,   17,   22,   17,   22,
+       23,    3,   22,   23,   22,   23,   19, 8213,   22,   19,
+     8213,   22,   19,   22,   19, 8213,   22,   23,   18, 8213,
+       22,   23,16405, 8206, 8213,   22,   23,16398,16405,   22,
+       20, 8213,   22,   20, 8213,   22,   20, 8213,   20,   22,
+       20, 8205, 8213,   22, 8205, 8213,   22, 8205, 8213, 8205,
+       22, 8205,   22,   23, 8208, 8213,   22, 8208, 8213,   22,
+
+     8208, 8213, 8208,   22, 8208,   22,   23,   22,   23,    9,
+       12,    9,    7,   23,   22,   23,   22,   23,   19, 8213,
+       22,   19, 8213,   22,   19, 8213,   19,   22,   19,    2,
+       23,   18, 8213,   22,   18, 8213,   22,   18,   22,   18,
+     8213, 8206, 8213,   22, 8206, 8213,   22, 8206,   22, 8206,
+     8213,   22,   10,   23,   22,   23,   11,   23,    9,    9,
+       12,    7,   12,    7,   22,   23,    6,   23,    2,   12,
+        2,   18, 8213,   22,   18, 8213,   22,   18, 8213,   18,
+       22,   18, 8206, 8213,   22, 8206, 8213,   22, 8206, 8213,
+     8206,   22, 8206,   22,   10,   12,   10,   15, 8213,   22,
+
+       23,16405,   11,   12,   11,    7,    7,   12,   22,   23,
+        6,   12,    6,    6,   12,    6,   12,    2,    2,   12,
+     8206,   22,16398,   10,   10,   12,   15, 8213,   22,   15,
+     8213,   22,   15,   22,   15, 8213,   11,   12,   22,   23,
+        6,    6,   12,    6,    6,   15, 8213,   22,   15, 8213,
+       22,   15, 8213,   15,   22,   15,   22,   23,    6,    6,
+        8,   23,    6,    5,    6,    8,   12,    4,    6,    5,
+        6,    8,    4,    6
     } ;
 
-static yyconst flex_int16_t yy_accept[250] =
+static yyconst flex_int16_t yy_accept[264] =
     {   0,
         1,    1,    1,    2,    5,   10,   14,   17,   19,   22,
        25,   28,   31,   34,   37,   40,   43,   46,   49,   52,
-       55,   58,   61,   63,   65,   67,   68,   71,   75,   78,
-       81,   83,   85,   88,   90,   91,   92,   94,   96,  100,
-      101,  103,  105,  107,  109,  111,  113,  115,  117,  119,
-      121,  123,  125,  127,  129,  131,  133,  135,  136,  137,
-      140,  143,  146,  148,  149,  151,  153,  155,  157,  158,
-      159,  161,  163,  165,  167,  169,  171,  173,  175,  177,
-      179,  181,  183,  185,  187,  189,  191,  193,  195,  196,
-      197,  199,  204,  206,  208,  210,  212,  214,  216,  220,
-
-      225,  227,  233,  235,  237,  243,  245,  247,  249,  251,
-      254,  257,  259,  261,  264,  266,  271,  273,  275,  277,
-      278,  281,  284,  286,  288,  291,  294,  296,  298,  300,
-      303,  306,  308,  310,  312,  314,  316,  318,  321,  324,
-      326,  328,  329,  332,  334,  337,  340,  342,  344,  346,
-      351,  357,  358,  361,  364,  366,  368,  369,  372,  375,
-      377,  379,  380,  382,  385,  388,  390,  392,  393,  395,
-      397,  399,  400,  402,  404,  407,  410,  412,  414,  415,
-      417,  420,  423,  425,  427,  430,  433,  435,  437,  438,
-      440,  442,  444,  445,  447,  449,  450,  452,  454,  455,
-
-      458,  461,  463,  465,  466,  469,  472,  474,  476,  477,
-      478,  480,  481,  486,  488,  489,  490,  492,  494,  495,
-      497,  499,  500,  502,  505,  506,  508,  511,  514,  516,
-      518,  520,  521,  523,  524,  525,  528,  531,  533,  535,
-      536,  537,  538,  539,  541,  543,  545,  547,  547
+       55,   58,   61,   64,   66,   68,   70,   71,   74,   78,
+       81,   84,   86,   88,   91,   93,   94,   95,   97,   99,
+      103,  104,  106,  108,  110,  112,  114,  116,  118,  120,
+      122,  124,  126,  128,  130,  132,  134,  136,  138,  140,
+      141,  142,  145,  148,  151,  153,  154,  156,  158,  160,
+      162,  163,  164,  166,  168,  170,  172,  174,  176,  178,
+      180,  182,  184,  186,  188,  190,  192,  194,  196,  198,
+      200,  202,  203,  204,  206,  211,  213,  215,  217,  219,
+
+      221,  223,  225,  229,  234,  236,  242,  244,  246,  252,
+      254,  256,  258,  260,  263,  266,  268,  270,  272,  275,
+      277,  282,  284,  286,  288,  289,  292,  295,  297,  299,
+      302,  305,  307,  309,  311,  314,  317,  319,  321,  323,
+      325,  327,  329,  332,  335,  337,  339,  340,  342,  345,
+      347,  350,  353,  355,  357,  359,  364,  370,  371,  374,
+      377,  379,  381,  382,  385,  388,  390,  392,  393,  395,
+      398,  401,  403,  405,  406,  408,  410,  412,  413,  415,
+      417,  419,  422,  425,  427,  429,  430,  432,  435,  438,
+      440,  442,  445,  448,  450,  452,  453,  455,  457,  459,
+
+      460,  462,  464,  465,  467,  469,  471,  472,  475,  478,
+      480,  482,  483,  486,  489,  491,  493,  494,  495,  497,
+      498,  503,  505,  506,  507,  509,  511,  513,  514,  516,
+      518,  519,  521,  524,  525,  527,  530,  533,  535,  537,
+      539,  541,  542,  544,  545,  546,  549,  552,  554,  556,
+      557,  559,  560,  561,  563,  564,  566,  568,  570,  572,
+      573,  575,  575
     } ;
 
 static yyconst flex_int32_t yy_ec[256] =
@@ -500,226 +505,254 @@ static yyconst flex_int32_t yy_meta[34] =
         1,    1,    1
     } ;
 
-static yyconst flex_int16_t yy_base[306] =
+static yyconst flex_int16_t yy_base[322] =
     {   0,
-        0,    0,  590,   30,   38,   41,   44,   47,   56,   74,
-      576,  574,  564,   45,   38,  575,  568,  572,  573,  570,
-      571,   54,   76,  591,  576,  591,   83,   91,    0,   93,
-        0,  100,  103,    0,    0,  106,  115,    0,  124,    0,
-      567,  554,  550,  545,  564,  553,  546,  558,  559,  557,
-      536,  544,  535,  539,   10,  551,  551,  559,  591,  127,
-        0,  134,    0,    0,  136,    0,  138,    0,    0,  558,
-      547,  552,  535,  529,  543,  534,  533,  526,  545,  544,
-      519,  542,  531,  141,  532,  516,  147,    0,    0,  591,
-      518,  156,  523,  511,  533,  527,  495,  495,  496,  165,
-
-       65,  174,  460,  469,  183,  447,  439,  440,  417,  186,
-        0,  190,    0,  429,  400,  199,  388,  401,  393,   84,
-      202,    0,  206,    0,  209,    0,  213,    0,  360,  216,
-        0,  220,    0,  337,  329,  341,  306,  223,    0,    0,
-        0,    0,  591,  300,  227,    0,  230,    0,  304,  239,
-      248,   97,  251,    0,    0,    0,    0,  255,    0,    0,
-        0,    0,  299,  258,    0,    0,    0,    0,  271,  275,
-      273,  591,  259,  237,  262,    0,    0,    0,    0,  241,
-      265,    0,  269,    0,  272,    0,  276,    0,   77,  234,
-      229,  117,  231,  591,  193,  591,  140,  192,  591,  279,
-
-        0,    0,    0,    0,  283,    0,    0,    0,    0,  285,
-      177,  591,  293,  168,    0,  167,  591,  159,  591,   85,
-      210,  151,  591,  296,  130,  591,  300,    0,  303,    0,
-        0,  109,  591,  194,  118,  307,    0,    0,    0,    0,
-      266,   50,  158,   45,   32,  591,  591,  591,  316,  320,
-      324,  328,  332,  336,  339,  343,  347,  351,  355,  359,
-      363,  367,  371,  375,  379,  383,  387,  391,  395,  399,
-      403,  407,  411,  415,  419,  423,  427,  431,  435,  439,
-      443,  447,  451,  455,  459,  463,  467,  471,  475,  479,
-      483,  487,  491,  495,  499,  503,  507,  511,  515,  519,
-
-      523,  527,  531,  535,  539
+        0,    0,  605,   30,   38,   41,   44,   47,   56,   74,
+       53,   57,   26,   62,  591,   63,   59,   71,   25,  587,
+       80,  575,   83,   90,  704,  573,  704,   98,  106,    0,
+      108,    0,  115,  118,    0,    0,  121,  130,  559,  139,
+        0,   85,   79,  116,  125,  106,   94,  135,  126,  136,
+      139,  144,   52,  145,  148,  149,  150,  151,  153,  557,
+      704,  164,    0,  175,    0,    0,  178,    0,  182,    0,
+        0,  549,  160,  154,  103,  173,  161,  178,  179,  183,
+      184,  188,  192,  185,  196,  189,  201,  200,  193,  216,
+        0,    0,  704,  203,  231,  208,  205,  211,  218,  531,
+
+      213,  219,  504,  244,  247,  257,  231,  259,  269,  220,
+      254,  241,  253,  276,    0,  279,    0,  266,  280,  276,
+      301,  265,  283,  287,  288,  304,    0,  308,    0,  315,
+        0,  317,    0,  304,  319,    0,  326,    0,  288,  315,
+      506,  290,  328,    0,    0,    0,    0,  326,  704,  324,
+      337,    0,  339,    0,  340,  350,  359,  361,  366,    0,
+        0,    0,    0,  370,    0,    0,    0,    0,  347,  373,
+        0,    0,    0,    0,  361,  374,  493,  704,  463,  337,
+      376,  384,    0,    0,    0,    0,  462,  386,    0,  388,
+        0,  395,    0,  397,    0,  283,  461,  370,  399,  460,
+
+      704,  459,  704,  384,  401,  458,  704,  406,    0,    0,
+        0,    0,  415,    0,    0,    0,    0,  403,  457,  704,
+      424,  456,    0,  455,  704,  398,  454,  704,  408,  412,
+      453,  704,  431,  452,  704,  433,    0,  435,    0,    0,
+      431,  451,  704,  416,  418,  444,    0,    0,    0,    0,
+      440,  427,  448,    0,  323,  450,  392,  238,  704,   50,
+      704,  704,  468,  472,  476,  480,  484,  488,  491,  495,
+      499,  503,  507,  511,  515,  519,  523,  527,  531,  535,
+      539,  543,  547,  551,  555,  559,  563,  567,  571,  575,
+      579,  583,  587,  591,  595,  599,  603,  607,  611,  615,
+
+      619,  623,  627,  631,  635,  639,  643,  647,  651,  655,
+      659,  663,  667,  671,  675,  679,  683,  687,  691,  695,
+      699
     } ;
 
-static yyconst flex_int16_t yy_def[306] =
+static yyconst flex_int16_t yy_def[322] =
     {   0,
-      248,    1,  248,  249,  250,  251,  252,  252,  253,  253,
+      262,    1,  262,  263,  264,  265,  266,  266,  267,  267,
        10,   10,   10,   10,   10,   10,   10,   10,   10,   10,
-       10,   10,  249,  248,  254,  248,  255,  250,  256,  257,
-      256,  257,  251,  256,  256,  252,  258,   10,  254,  259,
-       10,   10,   10,   10,   10,   10,   10,   10,   10,   10,
-       10,   10,   10,   10,   10,   10,   10,  254,  248,  255,
-      256,  257,  256,  256,  257,  256,  260,  261,  261,  248,
-       10,   10,   10,   10,   10,   10,   10,   10,   10,   10,
-       10,   10,   10,   10,   10,   10,  260,  261,  261,  248,
-       10,  262,   10,   10,   10,   10,   10,   10,   39,  263,
-
-       10,  264,   10,   10,  265,   10,   10,   10,   10,  266,
-      267,  262,  267,   10,   10,  268,   10,   10,   10,  254,
-      269,  270,  263,  270,  271,  272,  264,  272,   10,  273,
-      274,  265,  274,   10,   10,  275,   10,  266,  267,  267,
-      276,  276,  248,   10,  277,  278,  268,  278,   10,  279,
-      280,  254,  269,  270,  270,  281,  281,  271,  272,  272,
-      282,  282,   10,  273,  274,  274,  283,  283,   10,   10,
-      284,  248,  285,   10,  277,  278,  278,  286,  286,  287,
-      288,  289,  279,  289,  290,  291,  280,  291,  254,  292,
-       10,  293,  284,  248,  294,  248,  295,  296,  248,  288,
-
-      289,  289,  297,  297,  290,  291,  291,  298,  298,  254,
-      299,  248,  300,  301,  301,  294,  248,  302,  248,  302,
-      302,  296,  248,  280,  299,  248,  303,  304,  300,  304,
-      301,  302,  248,  302,  302,  303,  304,  304,  305,  305,
-      302,  302,  302,  302,  302,  248,  248,    0,  248,  248,
-      248,  248,  248,  248,  248,  248,  248,  248,  248,  248,
-      248,  248,  248,  248,  248,  248,  248,  248,  248,  248,
-      248,  248,  248,  248,  248,  248,  248,  248,  248,  248,
-      248,  248,  248,  248,  248,  248,  248,  248,  248,  248,
-      248,  248,  248,  248,  248,  248,  248,  248,  248,  248,
-
-      248,  248,  248,  248,  248
+       10,   10,   10,  263,  262,  268,  262,  269,  264,  270,
+      271,  270,  271,  265,  270,  270,  266,  272,   10,  268,
+      273,   10,   10,   10,   10,   10,   10,   10,   10,   10,
+       10,   10,   10,   10,   10,   10,   10,   10,   10,  268,
+      262,  269,  270,  271,  270,  270,  271,  270,  274,  275,
+      275,  262,   10,   10,   10,   10,   10,   10,   10,   10,
+       10,   10,   10,   10,   10,   10,   10,   10,   10,  274,
+      275,  275,  262,   10,  276,   10,   10,   10,   10,   10,
+
+       10,   10,   40,  277,   10,  278,   10,   10,  279,   10,
+       10,   10,   10,  280,  281,  276,  281,   10,   10,   10,
+      282,   10,   10,   10,  268,  283,  284,  277,  284,  285,
+      286,  278,  286,   10,  287,  288,  279,  288,   10,   10,
+      289,   10,  280,  281,  281,  290,  290,   10,  262,   10,
+      291,  292,  282,  292,   10,  293,  294,  268,  283,  284,
+      284,  295,  295,  285,  286,  286,  296,  296,   10,  287,
+      288,  288,  297,  297,   10,   10,  298,  262,  299,   10,
+       10,  291,  292,  292,  300,  300,  301,  302,  303,  293,
+      303,  304,  305,  294,  305,  268,  306,   10,  307,  298,
+
+      262,  308,  262,   10,  309,  310,  262,  302,  303,  303,
+      311,  311,  304,  305,  305,  312,  312,  268,  313,  262,
+      314,  315,  315,  308,  262,   10,  316,  262,  316,  316,
+      310,  262,  294,  313,  262,  317,  318,  314,  318,  315,
+       10,  316,  262,  316,  316,  317,  318,  318,  319,  319,
+       10,  316,  316,  320,  316,  316,  321,  316,  262,  321,
+      262,    0,  262,  262,  262,  262,  262,  262,  262,  262,
+      262,  262,  262,  262,  262,  262,  262,  262,  262,  262,
+      262,  262,  262,  262,  262,  262,  262,  262,  262,  262,
+      262,  262,  262,  262,  262,  262,  262,  262,  262,  262,
+
+      262,  262,  262,  262,  262,  262,  262,  262,  262,  262,
+      262,  262,  262,  262,  262,  262,  262,  262,  262,  262,
+      262
     } ;
 
-static yyconst flex_int16_t yy_nxt[625] =
+static yyconst flex_int16_t yy_nxt[738] =
     {   0,
         4,    5,    6,    7,    4,    4,    4,    4,    8,    9,
-       10,   11,   12,   13,   14,   10,   10,   15,   10,   10,
-       10,   10,   16,   10,   17,   18,   19,   20,   21,   10,
-       22,   10,   10,   24,   84,  247,   85,   25,   26,   28,
-       28,   29,   33,   33,   34,   30,   31,   26,  246,   35,
-       26,   26,   26,  219,   26,   26,   23,   23,   23,   24,
-       37,   48,   46,   39,   40,   49,   56,   41,   47,  244,
-       57,   82,  102,   42,   23,   23,   23,   24,   37,   24,
-       59,   39,   40,   25,   26,   23,   61,   59,  233,  210,
-       62,   63,   28,   28,   29,   58,   66,  234,   30,   31,
-
-       59,   64,   58,   66,   33,   33,   34,  189,   64,   26,
-      152,   35,  219,   26,   26,   23,   23,   23,   24,   70,
-      215,  219,   25,   40,   67,   67,   67,   68,   67,   23,
-       61,   67,   69,  212,   62,   63,   58,   66,   58,   66,
-       58,   88,   64,  219,   64,  242,   89,  104,  105,   58,
-       88,  220,  221,  106,  199,   89,  110,  110,   67,  111,
-      110,  219,  233,  110,  113,  121,  121,   67,  122,  121,
-      196,  231,  121,  124,  125,  125,   67,  126,  125,  245,
-      226,  125,  128,  130,  130,   67,  131,  130,   58,  139,
-      130,  133,   58,  141,  140,  223,  217,  219,  142,  145,
-
-      145,   67,  146,  145,   58,  154,  145,  148,   58,  156,
-      155,   58,  159,  233,  157,   58,  161,  160,   58,  165,
-      241,  162,   58,  167,  166,   58,  139,  235,  168,   58,
-      176,  140,   58,  178,  172,  177,  213,  212,  179,  181,
-      181,   67,  182,  181,  199,  197,  181,  184,  185,  185,
-       67,  186,  185,   58,  154,  185,  188,   58,  159,  155,
-       58,  165,  196,  160,   58,  176,  166,   58,  201,  219,
-      177,   58,  203,  202,   58,  206,  194,  204,   58,  208,
-      207,   58,  201,  192,  209,   58,  206,  202,   59,  243,
-      191,  207,  224,  227,  227,   67,  228,  227,   58,  208,
-
-      227,  230,   58,  237,  209,   58,  239,  190,  238,   58,
-      237,  240,  180,  174,  173,  238,   23,   23,   23,   23,
-       27,   27,   27,   27,   32,   32,   32,   32,   36,   36,
-       36,   36,   38,   38,   38,   38,   58,   58,   58,   60,
-       60,   60,   60,   64,  172,   64,   64,   65,   65,   65,
-       65,   37,   37,   37,   37,   70,   70,  170,   70,   87,
-       87,   87,   87,   89,  169,   89,   89,  112,  112,  112,
-      112,  123,  123,  123,  123,  127,  127,  127,  127,  132,
-      132,  132,  132,  138,  138,  138,  138,  140,  163,  140,
-      140,  147,  147,  147,  147,  153,  153,  153,  153,  155,
-
-      151,  155,  155,  158,  158,  158,  158,  160,  150,  160,
-      160,  164,  164,  164,  164,  166,  149,  166,  166,  171,
-      171,  171,  171,  142,  144,  142,  142,  175,  175,  175,
-      175,  177,  143,  177,  177,  183,  183,  183,  183,  187,
-      187,  187,  187,  157,  137,  157,  157,  162,  136,  162,
-      162,  168,  135,  168,  168,  193,  193,  193,  193,  195,
-      195,  195,  195,  179,  134,  179,  179,  198,  198,  198,
-      198,  200,  200,  200,  200,  202,  105,  202,  202,  205,
-      205,  205,  205,  207,  129,  207,  207,  211,  211,  211,
-      211,  214,  214,  214,  214,  216,  216,  216,  216,  218,
-
-      218,  218,  218,  222,  222,  222,  222,  204,  120,  204,
-      204,  209,  119,  209,  209,  225,  225,  225,  225,  229,
-      229,  229,  229,  215,  118,  215,  215,  232,  232,  232,
-      232,  236,  236,  236,  236,  238,  117,  238,  238,  240,
-      116,  240,  240,  115,  114,  109,  108,  107,  103,  102,
-      101,  100,   99,   98,   97,   96,   95,   94,   93,   92,
-       91,   90,   59,   82,   86,   83,   82,   81,   80,   79,
-       78,   77,   76,   75,   50,   74,   73,   72,   71,   59,
-       55,   54,   53,   52,   51,   50,   45,   44,   43,  248,
-        3,  248,  248,  248,  248,  248,  248,  248,  248,  248,
-
-      248,  248,  248,  248,  248,  248,  248,  248,  248,  248,
-      248,  248,  248,  248,  248,  248,  248,  248,  248,  248,
-      248,  248,  248,  248
+       10,   11,   12,   13,   14,   15,   15,   16,   15,   15,
+       15,   15,   17,   15,   18,   19,   20,   21,   22,   15,
+       23,   15,   15,   25,   39,   39,   54,   26,   27,   29,
+       29,   30,   34,   34,   35,   31,   32,   27,   47,   36,
+       27,   27,   27,  262,   27,   27,   24,   24,   24,   25,
+       38,   39,   39,   40,   41,   45,   39,   42,   39,   52,
+       46,   39,   39,   43,   24,   24,   24,   25,   38,   48,
+       39,   40,   41,   44,   83,   49,   50,   53,   39,   39,
+       51,   56,   39,   25,   39,   58,   73,   26,   27,   59,
+
+       24,   63,   74,   39,   52,   64,   65,   29,   29,   30,
+       60,   68,   39,   31,   32,   39,   66,   60,   68,   34,
+       34,   35,   96,   66,   27,   39,   36,   75,   27,   27,
+       24,   24,   24,   25,   39,   39,   77,   26,   41,   69,
+       69,   69,   70,   69,   39,   39,   69,   71,   39,   80,
+       81,   76,   79,   39,   39,   78,   82,   39,   39,   39,
+       39,   95,   39,   39,   89,   85,   24,   63,   84,   39,
+       39,   64,   65,   94,   87,   86,   88,   60,   68,   85,
+       60,   68,   39,   66,   60,   91,   66,   39,   39,   98,
+       92,   99,   39,   39,   39,  103,   97,   39,   39,  104,
+
+      100,   39,   39,  106,  101,   39,  107,  108,  109,   39,
+       39,  102,   39,  110,   39,  111,  105,   39,   60,   91,
+       39,  118,   39,  112,   92,  121,  119,   39,   39,   39,
+      113,  114,  114,   69,  115,  114,  124,  139,  114,  117,
+       39,  261,  123,  120,  126,  126,   69,  127,  126,  141,
+       39,  126,  129,   85,  106,  134,   39,  130,  130,   69,
+      131,  130,   39,   39,  130,  133,  109,  140,   39,  135,
+      135,   69,  136,  135,   39,   39,  135,  138,   60,  144,
+      142,   60,  146,  149,  145,   39,   61,  147,  148,   39,
+      156,   61,   39,  155,  157,  218,   39,   39,  179,   39,
+
+      150,  151,  151,   69,  152,  151,   60,  160,  151,  154,
+       60,  162,  161,   39,  158,  175,  163,   60,  165,   60,
+      167,   60,  171,  166,   39,  168,  228,  172,   60,  173,
+       60,  144,  169,   39,  174,   39,  145,  181,  180,   60,
+      183,   60,  185,  176,  258,  184,   39,  186,  187,   39,
+      188,  188,   69,  189,  188,  197,   39,  188,  191,  192,
+      192,   69,  193,  192,   61,  204,  192,  195,   60,  160,
+       39,  196,   60,  165,  161,   60,  171,  221,  166,   39,
+      198,  172,  199,   39,  205,   39,   60,  183,   60,  209,
+       60,  211,  184,   39,  210,   93,  212,   60,  214,   60,
+
+      216,   72,  223,  215,  228,  217,   61,   39,   60,  209,
+      233,  243,  229,  230,  210,  243,  226,   60,  214,  228,
+      244,  228,  241,  215,  236,  236,   69,  237,  236,  245,
+      228,  236,  239,   60,  216,   60,  247,   60,  249,  217,
+       39,  248,  252,  250,  251,  253,   60,  247,  254,   39,
+      255,  228,  248,  259,  228,  220,  207,  243,  203,  240,
+      235,  232,  225,  178,  220,  207,  203,  256,   24,   24,
+       24,   24,   28,   28,   28,   28,   33,   33,   33,   33,
+       37,   37,   37,   37,   39,   39,   39,   39,   60,   60,
+       60,   62,   62,   62,   62,   66,  201,   66,   66,   67,
+
+       67,   67,   67,   38,   38,   38,   38,   72,   72,  178,
+       72,   90,   90,   90,   90,   92,  125,   92,   92,  116,
+      116,  116,  116,  128,  128,  128,  128,  132,  132,  132,
+      132,  137,  137,  137,  137,  143,  143,  143,  143,  145,
+      122,  145,  145,  153,  153,  153,  153,  159,  159,  159,
+      159,  161,   93,  161,  161,  164,  164,  164,  164,  166,
+       61,  166,  166,  170,  170,  170,  170,  172,   39,  172,
+      172,  177,  177,  177,  177,  147,   61,  147,  147,  182,
+      182,  182,  182,  184,   57,  184,  184,  190,  190,  190,
+      190,  194,  194,  194,  194,  163,   55,  163,  163,  168,
+
+       39,  168,  168,  174,  262,  174,  174,  200,  200,  200,
+      200,  202,  202,  202,  202,  186,  262,  186,  186,  206,
+      206,  206,  206,  208,  208,  208,  208,  210,  262,  210,
+      210,  213,  213,  213,  213,  215,  262,  215,  215,  219,
+      219,  219,  219,  222,  222,  222,  222,  224,  224,  224,
+      224,  227,  227,  227,  227,  231,  231,  231,  231,  212,
+      262,  212,  212,  217,  262,  217,  217,  234,  234,  234,
+      234,  238,  238,  238,  238,  223,  262,  223,  223,  242,
+      242,  242,  242,  246,  246,  246,  246,  248,  262,  248,
+      248,  250,  262,  250,  250,  257,  257,  262,  257,  260,
+
+      260,  260,  260,    3,  262,  262,  262,  262,  262,  262,
+      262,  262,  262,  262,  262,  262,  262,  262,  262,  262,
+      262,  262,  262,  262,  262,  262,  262,  262,  262,  262,
+      262,  262,  262,  262,  262,  262,  262
     } ;
 
-static yyconst flex_int16_t yy_chk[625] =
+static yyconst flex_int16_t yy_chk[738] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    4,   55,  245,   55,    4,    4,    5,
-        5,    5,    6,    6,    6,    5,    5,    7,  244,    6,
-        8,    7,    7,  242,    8,    8,    9,    9,    9,    9,
-        9,   15,   14,    9,    9,   15,   22,    9,   14,  242,
-       22,  101,  101,    9,   10,   10,   10,   10,   10,   23,
-      189,   10,   10,   23,   23,   27,   27,  120,  220,  189,
-       27,   27,   28,   28,   28,   30,   30,  220,   28,   28,
-
-      152,   30,   32,   32,   33,   33,   33,  152,   32,   36,
-      120,   33,  232,   36,   36,   37,   37,   37,   37,  192,
-      192,  235,   37,   37,   39,   39,   39,   39,   39,   60,
-       60,   39,   39,  225,   60,   60,   62,   62,   65,   65,
-       67,   67,   62,  197,   65,  235,   67,   84,   84,   87,
-       87,  197,  197,   84,  222,   87,   92,   92,   92,   92,
-       92,  243,  218,   92,   92,  100,  100,  100,  100,  100,
-      216,  214,  100,  100,  102,  102,  102,  102,  102,  243,
-      211,  102,  102,  105,  105,  105,  105,  105,  110,  110,
-      105,  105,  112,  112,  110,  198,  195,  234,  112,  116,
-
-      116,  116,  116,  116,  121,  121,  116,  116,  123,  123,
-      121,  125,  125,  221,  123,  127,  127,  125,  130,  130,
-      234,  127,  132,  132,  130,  138,  138,  221,  132,  145,
-      145,  138,  147,  147,  193,  145,  191,  190,  147,  150,
-      150,  150,  150,  150,  180,  174,  150,  150,  151,  151,
-      151,  151,  151,  153,  153,  151,  151,  158,  158,  153,
-      164,  164,  173,  158,  175,  175,  164,  181,  181,  241,
-      175,  183,  183,  181,  185,  185,  171,  183,  187,  187,
-      185,  200,  200,  170,  187,  205,  205,  200,  210,  241,
-      169,  205,  210,  213,  213,  213,  213,  213,  224,  224,
-
-      213,  213,  227,  227,  224,  229,  229,  163,  227,  236,
-      236,  229,  149,  144,  137,  236,  249,  249,  249,  249,
-      250,  250,  250,  250,  251,  251,  251,  251,  252,  252,
-      252,  252,  253,  253,  253,  253,  254,  254,  254,  255,
-      255,  255,  255,  256,  136,  256,  256,  257,  257,  257,
-      257,  258,  258,  258,  258,  259,  259,  135,  259,  260,
-      260,  260,  260,  261,  134,  261,  261,  262,  262,  262,
-      262,  263,  263,  263,  263,  264,  264,  264,  264,  265,
-      265,  265,  265,  266,  266,  266,  266,  267,  129,  267,
-      267,  268,  268,  268,  268,  269,  269,  269,  269,  270,
-
-      119,  270,  270,  271,  271,  271,  271,  272,  118,  272,
-      272,  273,  273,  273,  273,  274,  117,  274,  274,  275,
-      275,  275,  275,  276,  115,  276,  276,  277,  277,  277,
-      277,  278,  114,  278,  278,  279,  279,  279,  279,  280,
-      280,  280,  280,  281,  109,  281,  281,  282,  108,  282,
-      282,  283,  107,  283,  283,  284,  284,  284,  284,  285,
-      285,  285,  285,  286,  106,  286,  286,  287,  287,  287,
-      287,  288,  288,  288,  288,  289,  104,  289,  289,  290,
-      290,  290,  290,  291,  103,  291,  291,  292,  292,  292,
-      292,  293,  293,  293,  293,  294,  294,  294,  294,  295,
-
-      295,  295,  295,  296,  296,  296,  296,  297,   99,  297,
-      297,  298,   98,  298,  298,  299,  299,  299,  299,  300,
-      300,  300,  300,  301,   97,  301,  301,  302,  302,  302,
-      302,  303,  303,  303,  303,  304,   96,  304,  304,  305,
-       95,  305,  305,   94,   93,   91,   86,   85,   83,   82,
-       81,   80,   79,   78,   77,   76,   75,   74,   73,   72,
-       71,   70,   58,   57,   56,   54,   53,   52,   51,   50,
-       49,   48,   47,   46,   45,   44,   43,   42,   41,   25,
-       21,   20,   19,   18,   17,   16,   13,   12,   11,    3,
-      248,  248,  248,  248,  248,  248,  248,  248,  248,  248,
-
-      248,  248,  248,  248,  248,  248,  248,  248,  248,  248,
-      248,  248,  248,  248,  248,  248,  248,  248,  248,  248,
-      248,  248,  248,  248
+        1,    1,    1,    4,   19,   13,   19,    4,    4,    5,
+        5,    5,    6,    6,    6,    5,    5,    7,   13,    6,
+        8,    7,    7,  260,    8,    8,    9,    9,    9,    9,
+        9,   53,   11,    9,    9,   11,   12,    9,   17,   17,
+       12,   14,   16,    9,   10,   10,   10,   10,   10,   14,
+       18,   10,   10,   10,   53,   14,   16,   18,   43,   21,
+       16,   21,   23,   24,   42,   23,   42,   24,   24,   23,
+
+       28,   28,   43,   47,   47,   28,   28,   29,   29,   29,
+       31,   31,   75,   29,   29,   46,   31,   33,   33,   34,
+       34,   34,   75,   33,   37,   44,   34,   44,   37,   37,
+       38,   38,   38,   38,   45,   49,   46,   38,   38,   40,
+       40,   40,   40,   40,   48,   50,   40,   40,   51,   50,
+       51,   45,   49,   52,   54,   48,   52,   55,   56,   57,
+       58,   74,   59,   74,   58,   59,   62,   62,   54,   73,
+       77,   62,   62,   73,   57,   56,   57,   64,   64,   55,
+       67,   67,   76,   64,   69,   69,   67,   78,   79,   77,
+       69,   78,   80,   81,   84,   82,   76,   82,   86,   83,
+
+       79,   83,   89,   85,   80,   85,   86,   87,   87,   88,
+       87,   81,   94,   87,   97,   88,   84,   96,   90,   90,
+       98,   96,  101,   89,   90,   99,   97,   99,  102,  110,
+       94,   95,   95,   95,   95,   95,  102,  110,   95,   95,
+      107,  258,  101,   98,  104,  104,  104,  104,  104,  112,
+      112,  104,  104,  105,  105,  107,  105,  106,  106,  106,
+      106,  106,  113,  111,  106,  106,  108,  111,  108,  109,
+      109,  109,  109,  109,  122,  118,  109,  109,  114,  114,
+      113,  116,  116,  119,  114,  120,  196,  116,  118,  119,
+      123,  125,  123,  122,  124,  196,  124,  139,  142,  142,
+
+      120,  121,  121,  121,  121,  121,  126,  126,  121,  121,
+      128,  128,  126,  134,  125,  139,  128,  130,  130,  132,
+      132,  135,  135,  130,  140,  132,  255,  135,  137,  137,
+      143,  143,  134,  150,  137,  148,  143,  150,  148,  151,
+      151,  153,  153,  140,  255,  151,  180,  153,  155,  155,
+      156,  156,  156,  156,  156,  169,  169,  156,  156,  157,
+      157,  157,  157,  157,  158,  180,  157,  157,  159,  159,
+      175,  158,  164,  164,  159,  170,  170,  198,  164,  198,
+      175,  170,  176,  176,  181,  181,  182,  182,  188,  188,
+      190,  190,  182,  204,  188,  257,  190,  192,  192,  194,
+
+      194,  199,  199,  192,  205,  194,  218,  226,  208,  208,
+      218,  229,  205,  205,  208,  230,  204,  213,  213,  244,
+      229,  245,  226,  213,  221,  221,  221,  221,  221,  230,
+      252,  221,  221,  233,  233,  236,  236,  238,  238,  233,
+      241,  236,  244,  238,  241,  245,  246,  246,  251,  251,
+      252,  253,  246,  256,  242,  234,  231,  227,  224,  222,
+      219,  206,  202,  200,  197,  187,  179,  253,  263,  263,
+      263,  263,  264,  264,  264,  264,  265,  265,  265,  265,
+      266,  266,  266,  266,  267,  267,  267,  267,  268,  268,
+      268,  269,  269,  269,  269,  270,  177,  270,  270,  271,
+
+      271,  271,  271,  272,  272,  272,  272,  273,  273,  141,
+      273,  274,  274,  274,  274,  275,  103,  275,  275,  276,
+      276,  276,  276,  277,  277,  277,  277,  278,  278,  278,
+      278,  279,  279,  279,  279,  280,  280,  280,  280,  281,
+      100,  281,  281,  282,  282,  282,  282,  283,  283,  283,
+      283,  284,   72,  284,  284,  285,  285,  285,  285,  286,
+       60,  286,  286,  287,  287,  287,  287,  288,   39,  288,
+      288,  289,  289,  289,  289,  290,   26,  290,  290,  291,
+      291,  291,  291,  292,   22,  292,  292,  293,  293,  293,
+      293,  294,  294,  294,  294,  295,   20,  295,  295,  296,
+
+       15,  296,  296,  297,    3,  297,  297,  298,  298,  298,
+      298,  299,  299,  299,  299,  300,    0,  300,  300,  301,
+      301,  301,  301,  302,  302,  302,  302,  303,    0,  303,
+      303,  304,  304,  304,  304,  305,    0,  305,  305,  306,
+      306,  306,  306,  307,  307,  307,  307,  308,  308,  308,
+      308,  309,  309,  309,  309,  310,  310,  310,  310,  311,
+        0,  311,  311,  312,    0,  312,  312,  313,  313,  313,
+      313,  314,  314,  314,  314,  315,    0,  315,  315,  316,
+      316,  316,  316,  317,  317,  317,  317,  318,    0,  318,
+      318,  319,    0,  319,  319,  320,  320,    0,  320,  321,
+
+      321,  321,  321,  262,  262,  262,  262,  262,  262,  262,
+      262,  262,  262,  262,  262,  262,  262,  262,  262,  262,
+      262,  262,  262,  262,  262,  262,  262,  262,  262,  262,
+      262,  262,  262,  262,  262,  262,  262
     } ;
 
 #define YY_TRAILING_MASK 0x2000
@@ -839,9 +872,17 @@ static void setformat(DiskParseContext *dpc, const char 
*str) {
     else xlu__disk_err(dpc,str,"unknown value for format");
 }
  
+/* Sets ->backend based on the string value.  This ought to be an enum. */
+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 */
 
-#line 845 "libxlu_disk_l.c"
+#line 886 "libxlu_disk_l.c"
 
 #define INITIAL 0
 
@@ -1076,12 +1117,12 @@ YY_DECL
        register int yy_act;
     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
 
-#line 116 "libxlu_disk_l.l"
+#line 124 "libxlu_disk_l.l"
 
 
  /*----- the scanner rules which do the parsing -----*/
 
-#line 1085 "libxlu_disk_l.c"
+#line 1126 "libxlu_disk_l.c"
 
        if ( !yyg->yy_init )
                {
@@ -1139,14 +1180,14 @@ yy_match:
                        while ( yy_chk[yy_base[yy_current_state] + yy_c] != 
yy_current_state )
                                {
                                yy_current_state = (int) 
yy_def[yy_current_state];
-                               if ( yy_current_state >= 249 )
+                               if ( yy_current_state >= 263 )
                                        yy_c = yy_meta[(unsigned int) yy_c];
                                }
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + 
(unsigned int) yy_c];
                        *yyg->yy_state_ptr++ = yy_current_state;
                        ++yy_cp;
                        }
-               while ( yy_current_state != 248 );
+               while ( yy_current_state != 262 );
 
 yy_find_action:
                yy_current_state = *--yyg->yy_state_ptr;
@@ -1196,148 +1237,154 @@ do_action:    /* This label is used only to access 
EOF actions. */
 case 1:
 /* rule 1 can match eol */
 YY_RULE_SETUP
-#line 120 "libxlu_disk_l.l"
+#line 128 "libxlu_disk_l.l"
 { /* ignore whitespace before parameters */ }
        YY_BREAK
 /* ordinary parameters setting enums or strings */
 case 2:
 /* rule 2 can match eol */
 YY_RULE_SETUP
-#line 124 "libxlu_disk_l.l"
+#line 132 "libxlu_disk_l.l"
 { STRIP(','); setformat(DPC, FROMEQUALS); }
        YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 126 "libxlu_disk_l.l"
+#line 134 "libxlu_disk_l.l"
 { DPC->disk->is_cdrom = 1; }
        YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 127 "libxlu_disk_l.l"
+#line 135 "libxlu_disk_l.l"
 { DPC->disk->is_cdrom = 1; }
        YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 128 "libxlu_disk_l.l"
+#line 136 "libxlu_disk_l.l"
 { DPC->disk->is_cdrom = 0; }
        YY_BREAK
 case 6:
 /* rule 6 can match eol */
 YY_RULE_SETUP
-#line 129 "libxlu_disk_l.l"
+#line 137 "libxlu_disk_l.l"
 { xlu__disk_err(DPC,yytext,"unknown value for type"); }
        YY_BREAK
 case 7:
 /* rule 7 can match eol */
 YY_RULE_SETUP
-#line 131 "libxlu_disk_l.l"
+#line 139 "libxlu_disk_l.l"
 { STRIP(','); setaccess(DPC,yytext); }
        YY_BREAK
 case 8:
 /* rule 8 can match eol */
 YY_RULE_SETUP
-#line 133 "libxlu_disk_l.l"
-{ STRIP(','); SAVESTRING("vdev", vdev, FROMEQUALS); }
+#line 140 "libxlu_disk_l.l"
+{ STRIP(','); setbackendtype(DPC,yytext); }
        YY_BREAK
 case 9:
 /* rule 9 can match eol */
 YY_RULE_SETUP
-#line 134 "libxlu_disk_l.l"
+#line 142 "libxlu_disk_l.l"
+{ STRIP(','); SAVESTRING("vdev", vdev, FROMEQUALS); }
+       YY_BREAK
+case 10:
+/* rule 10 can match eol */
+YY_RULE_SETUP
+#line 143 "libxlu_disk_l.l"
 { STRIP(','); SAVESTRING("script", script, FROMEQUALS); }
        YY_BREAK
 /* the target magic parameter, eats the rest of the string */
-case 10:
+case 11:
 YY_RULE_SETUP
-#line 138 "libxlu_disk_l.l"
+#line 147 "libxlu_disk_l.l"
 { STRIP(','); SAVESTRING("target", pdev_path, FROMEQUALS); }
        YY_BREAK
 /* unknown parameters */
-case 11:
-/* rule 11 can match eol */
+case 12:
+/* rule 12 can match eol */
 YY_RULE_SETUP
-#line 142 "libxlu_disk_l.l"
+#line 151 "libxlu_disk_l.l"
 { xlu__disk_err(DPC,yytext,"unknown parameter"); }
        YY_BREAK
 /* deprecated prefixes */
 /* the "/.*" in these patterns ensures that they count as if they
    * matched the whole string, so these patterns take precedence */
-case 12:
+case 13:
 YY_RULE_SETUP
-#line 149 "libxlu_disk_l.l"
+#line 158 "libxlu_disk_l.l"
 {
                     STRIP(':');
                     DPC->had_depr_prefix=1; DEPRECATE("use `[format=]...,'");
                     setformat(DPC, yytext);
                  }
        YY_BREAK
-case 13:
+case 14:
 YY_RULE_SETUP
-#line 155 "libxlu_disk_l.l"
+#line 164 "libxlu_disk_l.l"
 {
                    STRIP(':');
                     DPC->had_depr_prefix=1; DEPRECATE("use `script=...'");
                    SAVESTRING("script", script, yytext);
                }
        YY_BREAK
-case 14:
+case 15:
 *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
 yyg->yy_c_buf_p = yy_cp = yy_bp + 8;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
-#line 161 "libxlu_disk_l.l"
+#line 170 "libxlu_disk_l.l"
 { DPC->had_depr_prefix=1; DEPRECATE(0); }
        YY_BREAK
-case 15:
+case 16:
 YY_RULE_SETUP
-#line 162 "libxlu_disk_l.l"
+#line 171 "libxlu_disk_l.l"
 { DPC->had_depr_prefix=1; DEPRECATE(0); }
        YY_BREAK
-case 16:
+case 17:
 *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
 yyg->yy_c_buf_p = yy_cp = yy_bp + 4;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
-#line 163 "libxlu_disk_l.l"
+#line 172 "libxlu_disk_l.l"
 { DPC->had_depr_prefix=1; DEPRECATE(0); }
        YY_BREAK
-case 17:
+case 18:
 *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
 yyg->yy_c_buf_p = yy_cp = yy_bp + 6;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
-#line 164 "libxlu_disk_l.l"
+#line 173 "libxlu_disk_l.l"
 { DPC->had_depr_prefix=1; DEPRECATE(0); }
        YY_BREAK
-case 18:
+case 19:
 *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
 yyg->yy_c_buf_p = yy_cp = yy_bp + 5;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
-#line 165 "libxlu_disk_l.l"
+#line 174 "libxlu_disk_l.l"
 { DPC->had_depr_prefix=1; DEPRECATE(0); }
        YY_BREAK
-case 19:
+case 20:
 *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
 yyg->yy_c_buf_p = yy_cp = yy_bp + 4;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
-#line 166 "libxlu_disk_l.l"
+#line 175 "libxlu_disk_l.l"
 { DPC->had_depr_prefix=1; DEPRECATE(0); }
        YY_BREAK
-case 20:
-/* rule 20 can match eol */
+case 21:
+/* rule 21 can match eol */
 YY_RULE_SETUP
-#line 168 "libxlu_disk_l.l"
+#line 177 "libxlu_disk_l.l"
 {
                  xlu__disk_err(DPC,yytext,"unknown deprecated disk prefix");
                  return 0;
                }
        YY_BREAK
 /* positional parameters */
-case 21:
-/* rule 21 can match eol */
+case 22:
+/* rule 22 can match eol */
 YY_RULE_SETUP
-#line 175 "libxlu_disk_l.l"
+#line 184 "libxlu_disk_l.l"
 {
     char *colon;
     STRIP(',');
@@ -1372,18 +1419,18 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 22:
-/* rule 22 can match eol */
+case 23:
+/* rule 23 can match eol */
 YY_RULE_SETUP
-#line 209 "libxlu_disk_l.l"
+#line 218 "libxlu_disk_l.l"
 { xlu__disk_err(DPC,yytext,"bad disk syntax"); return 0; }
        YY_BREAK
-case 23:
+case 24:
 YY_RULE_SETUP
-#line 210 "libxlu_disk_l.l"
+#line 219 "libxlu_disk_l.l"
 YY_FATAL_ERROR( "flex scanner jammed" );
        YY_BREAK
-#line 1387 "libxlu_disk_l.c"
+#line 1434 "libxlu_disk_l.c"
                        case YY_STATE_EOF(INITIAL):
                                yyterminate();
 
@@ -1646,7 +1693,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
                while ( yy_chk[yy_base[yy_current_state] + yy_c] != 
yy_current_state )
                        {
                        yy_current_state = (int) yy_def[yy_current_state];
-                       if ( yy_current_state >= 249 )
+                       if ( yy_current_state >= 263 )
                                yy_c = yy_meta[(unsigned int) yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned 
int) yy_c];
@@ -1670,11 +1717,11 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                {
                yy_current_state = (int) yy_def[yy_current_state];
-               if ( yy_current_state >= 249 )
+               if ( yy_current_state >= 263 )
                        yy_c = yy_meta[(unsigned int) yy_c];
                }
        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) 
yy_c];
-       yy_is_jam = (yy_current_state == 248);
+       yy_is_jam = (yy_current_state == 262);
        if ( ! yy_is_jam )
                *yyg->yy_state_ptr++ = yy_current_state;
 
@@ -2474,4 +2521,4 @@ void xlu__disk_yyfree (void * ptr , yyscan_t yyscanner)
 
 #define YYTABLES_NAME "yytables"
 
-#line 210 "libxlu_disk_l.l"
+#line 219 "libxlu_disk_l.l"
diff --git a/tools/libxl/libxlu_disk_l.h b/tools/libxl/libxlu_disk_l.h
index bc3d9ff..45529ce 100644
--- a/tools/libxl/libxlu_disk_l.h
+++ b/tools/libxl/libxlu_disk_l.h
@@ -339,7 +339,7 @@ extern int xlu__disk_yylex (yyscan_t yyscanner);
 #undef YY_DECL
 #endif
 
-#line 210 "libxlu_disk_l.l"
+#line 219 "libxlu_disk_l.l"
 
 #line 345 "libxlu_disk_l.h"
 #undef xlu__disk_yyIN_HEADER
diff --git a/tools/libxl/libxlu_disk_l.l b/tools/libxl/libxlu_disk_l.l
index 8e511ea..2738377 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 based on the string value.  This ought to be an enum. */
+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); }
-- 
1.7.2.5


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

<Prev in Thread] Current Thread [Next in Thread>