[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 7/9] libxl: disks: allow specification of "backendtype=phy|tap|qdisk"
Signed-off-by: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx> --- docs/misc/xl-disk-configuration.txt | 17 + tools/libxl/libxlu_disk_l.c | 690 +++++++++++++++++++---------------- tools/libxl/libxlu_disk_l.h | 2 +- tools/libxl/libxlu_disk_l.l | 9 + 4 files changed, 395 insertions(+), 323 deletions(-) diff --git a/docs/misc/xl-disk-configuration.txt b/docs/misc/xl-disk-configuration.txt index de0a75e..91e0cc7 100644 --- a/docs/misc/xl-disk-configuration.txt +++ b/docs/misc/xl-disk-configuration.txt @@ -139,6 +139,23 @@ cdrom Convenience alias for "devtype=cdrom". +backendtype=<backend-type> +-------------------------- + +Description: Specifies the backend implementation to use +Supported values: phy, tap, qdisk +Mandatory: No +Default value: Automatically determine which backend to use. + +This does not affect the guest's view of the device. It controls +which software implementation of the Xen backend driver us used. + +Not all backend drivers support all combinations of other options. +For example, "phy" does not support formats other than "raw". +Normally this option should not be specified, in which case libxl will +automatically determine the most suitable backend. + + script=<script> --------------- diff --git a/tools/libxl/libxlu_disk_l.c b/tools/libxl/libxlu_disk_l.c index e653d8d..14d3dce 100644 --- a/tools/libxl/libxlu_disk_l.c +++ b/tools/libxl/libxlu_disk_l.c @@ -357,8 +357,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 24 -#define YY_END_OF_BUFFER 25 +#define YY_NUM_RULES 25 +#define YY_END_OF_BUFFER 26 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -366,86 +366,90 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_acclist[436] = +static yyconst flex_int16_t yy_acclist[453] = { 0, - 23, 23, 25, 21, 22, 24, 8193, 21, 22, 24, - 16385, 8193, 21, 24,16385, 21, 22, 24, 22, 24, - 21, 22, 24, 21, 22, 24, 21, 22, 24, 21, - 22, 24, 21, 22, 24, 21, 22, 24, 21, 22, - 24, 21, 22, 24, 21, 22, 24, 21, 22, 24, - 21, 22, 24, 21, 22, 24, 21, 22, 24, 21, - 22, 24, 23, 24, 24, 21, 21, 8193, 21, 8193, - 21,16385, 8193, 21, 8193, 21, 21, 8212, 21,16404, - 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 23, 8193, 21, - - 8193, 21, 8193, 8212, 21, 8212, 21, 8212, 11, 21, - 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 8212, 21, 8212, 21, 8212, - 11, 21, 16, 8212, 21,16404, 21, 21, 21, 21, - 21, 21, 8212, 21,16404, 19, 8212, 21,16404, 21, - 8204, 8212, 21,16396,16404, 21, 21, 8207, 8212, 21, - 16399,16404, 21, 21, 21, 21, 16, 8212, 21, 16, - 8212, 21, 16, 21, 16, 8212, 3, 21, 21, 18, - 8212, 21,16404, 21, 21, 21, 21, 19, 8212, 21, - 19, 8212, 21, 19, 21, 19, 8212, 8204, 8212, 21, - - 8204, 8212, 21, 8204, 21, 8204, 8212, 21, 8207, 8212, - 21, 8207, 8212, 21, 8207, 21, 8207, 8212, 21, 21, - 8, 21, 16, 8212, 21, 16, 8212, 21, 16, 8212, - 16, 21, 16, 3, 21, 21, 18, 8212, 21, 18, - 8212, 21, 18, 21, 18, 8212, 21, 17, 8212, 21, - 16404, 8205, 8212, 21,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, - 8207, 8212, 21, 8207, 8212, 21, 8207, 8212, 8207, 21, - 8207, 21, 21, 8, 11, 8, 7, 21, 18, 8212, - - 21, 18, 8212, 21, 18, 8212, 18, 21, 18, 2, - 17, 8212, 21, 17, 8212, 21, 17, 21, 17, 8212, - 8205, 8212, 21, 8205, 8212, 21, 8205, 21, 8205, 8212, - 21, 9, 21, 10, 8, 8, 11, 7, 11, 7, - 6, 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,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 + 24, 24, 26, 22, 23, 25, 8193, 22, 23, 25, + 16385, 8193, 22, 25,16385, 22, 23, 25, 23, 25, + 22, 23, 25, 22, 23, 25, 22, 23, 25, 22, + 23, 25, 22, 23, 25, 22, 23, 25, 22, 23, + 25, 22, 23, 25, 22, 23, 25, 22, 23, 25, + 22, 23, 25, 22, 23, 25, 22, 23, 25, 22, + 23, 25, 22, 23, 25, 24, 25, 25, 22, 22, + 8193, 22, 8193, 22,16385, 8193, 22, 8193, 22, 22, + 8213, 22,16405, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, + + 22, 24, 8193, 22, 8193, 22, 8193, 8213, 22, 8213, + 22, 8213, 12, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, + 8213, 22, 8213, 22, 8213, 12, 22, 17, 8213, 22, + 16405, 22, 22, 22, 22, 22, 22, 22, 8213, 22, + 16405, 20, 8213, 22,16405, 22, 8205, 8213, 22,16397, + 16405, 22, 22, 8208, 8213, 22,16400,16405, 22, 22, + 22, 22, 17, 8213, 22, 17, 8213, 22, 17, 22, + 17, 8213, 22, 3, 22, 22, 19, 8213, 22,16405, + 22, 22, 22, 22, 20, 8213, 22, 20, 8213, 22, + + 20, 22, 20, 8213, 8205, 8213, 22, 8205, 8213, 22, + 8205, 22, 8205, 8213, 22, 8208, 8213, 22, 8208, 8213, + 22, 8208, 22, 8208, 8213, 22, 22, 9, 22, 17, + 8213, 22, 17, 8213, 22, 17, 8213, 17, 22, 17, + 22, 3, 22, 22, 19, 8213, 22, 19, 8213, 22, + 19, 22, 19, 8213, 22, 18, 8213, 22,16405, 8206, + 8213, 22,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, 8208, 8213, + 22, 8208, 8213, 22, 8208, 8213, 8208, 22, 8208, 22, + + 22, 9, 12, 9, 7, 22, 22, 19, 8213, 22, + 19, 8213, 22, 19, 8213, 19, 22, 19, 2, 18, + 8213, 22, 18, 8213, 22, 18, 22, 18, 8213, 8206, + 8213, 22, 8206, 8213, 22, 8206, 22, 8206, 8213, 22, + 10, 22, 11, 9, 9, 12, 7, 12, 7, 22, + 6, 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,16405, 11, 12, 11, 7, 7, 12, + 22, 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, + 6, 6, 12, 6, 6, 15, 8213, 22, 15, 8213, + 22, 15, 8213, 15, 22, 15, 22, 6, 6, 8, + 6, 5, 6, 8, 12, 4, 6, 5, 6, 8, + 4, 6 } ; -static yyconst flex_int16_t yy_accept[241] = +static yyconst flex_int16_t yy_accept[255] = { 0, 1, 1, 1, 2, 3, 4, 7, 12, 16, 19, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, - 51, 54, 57, 60, 63, 65, 66, 67, 68, 70, - 73, 75, 76, 77, 78, 81, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 101, 103, 104, 106, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 128, 130, - 131, 132, 133, 137, 138, 139, 140, 141, 142, 143, - 146, 150, 151, 156, 157, 158, 163, 164, 165, 166, - - 167, 170, 173, 175, 177, 179, 180, 184, 185, 186, - 187, 188, 191, 194, 196, 198, 201, 204, 206, 208, - 209, 212, 215, 217, 219, 220, 221, 222, 223, 226, - 229, 231, 233, 234, 236, 237, 240, 243, 245, 247, - 248, 252, 257, 258, 261, 264, 266, 268, 269, 272, - 275, 277, 279, 280, 281, 284, 287, 289, 291, 292, - 293, 294, 296, 297, 298, 299, 302, 305, 307, 309, - 310, 311, 314, 317, 319, 321, 324, 327, 329, 331, - 332, 333, 334, 335, 336, 338, 340, 341, 342, 344, - 345, 348, 351, 353, 355, 356, 359, 362, 364, 366, - - 367, 368, 370, 371, 375, 377, 378, 379, 381, 383, - 384, 386, 388, 389, 391, 394, 395, 397, 400, 403, - 405, 407, 409, 410, 412, 413, 414, 417, 420, 422, - 424, 425, 426, 427, 428, 430, 432, 434, 436, 436 + 51, 54, 57, 60, 63, 66, 68, 69, 70, 71, + 73, 76, 78, 79, 80, 81, 84, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 105, 107, 108, + 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 133, 135, 136, 137, 138, 142, 143, 144, 145, + 146, 147, 148, 149, 152, 156, 157, 162, 163, 164, + + 169, 170, 171, 172, 173, 176, 179, 181, 183, 184, + 186, 187, 191, 192, 193, 194, 195, 198, 201, 203, + 205, 208, 211, 213, 215, 216, 219, 222, 224, 226, + 227, 228, 229, 230, 233, 236, 238, 240, 241, 242, + 244, 245, 248, 251, 253, 255, 256, 260, 265, 266, + 269, 272, 274, 276, 277, 280, 283, 285, 287, 288, + 289, 292, 295, 297, 299, 300, 301, 302, 304, 305, + 306, 307, 308, 311, 314, 316, 318, 319, 320, 323, + 326, 328, 330, 333, 336, 338, 340, 341, 342, 343, + 344, 345, 347, 349, 350, 351, 352, 354, 355, 358, + + 361, 363, 365, 366, 369, 372, 374, 376, 377, 378, + 380, 381, 385, 387, 388, 389, 391, 392, 394, 395, + 397, 399, 400, 402, 405, 406, 408, 411, 414, 416, + 418, 420, 421, 422, 424, 425, 426, 429, 432, 434, + 436, 437, 438, 439, 440, 441, 442, 444, 446, 448, + 450, 451, 453, 453 } ; static yyconst flex_int32_t yy_ec[256] = @@ -488,214 +492,242 @@ static yyconst flex_int32_t yy_meta[34] = 1, 1, 1 } ; -static yyconst flex_int16_t yy_base[295] = +static yyconst flex_int16_t yy_base[311] = { 0, - 0, 0, 545, 544, 546, 541, 32, 35, 549, 549, - 44, 62, 531, 529, 519, 33, 26, 530, 523, 527, - 528, 525, 526, 42, 0, 549, 531, 549, 65, 73, - 0, 0, 82, 0, 91, 0, 522, 509, 505, 500, - 519, 508, 501, 513, 514, 512, 491, 499, 490, 494, - 15, 506, 506, 0, 69, 0, 0, 94, 0, 0, - 514, 503, 508, 491, 485, 499, 490, 489, 482, 501, - 500, 475, 498, 487, 94, 488, 472, 101, 0, 0, - 549, 474, 110, 477, 462, 475, 461, 437, 425, 422, - 119, 53, 128, 398, 403, 137, 389, 389, 382, 355, - - 140, 0, 144, 0, 371, 342, 153, 330, 339, 315, - 54, 156, 0, 160, 0, 163, 0, 167, 0, 287, - 170, 0, 174, 0, 279, 270, 277, 271, 177, 0, - 0, 0, 0, 549, 265, 181, 0, 184, 0, 269, - 193, 202, 76, 205, 0, 0, 0, 0, 209, 0, - 0, 0, 0, 268, 212, 0, 0, 0, 0, 256, - 266, 270, 549, 269, 263, 216, 0, 0, 0, 0, - 267, 219, 0, 223, 0, 226, 0, 230, 0, 75, - 265, 260, 105, 241, 549, 234, 549, 113, 227, 549, - 233, 0, 0, 0, 0, 237, 0, 0, 0, 0, - - 239, 220, 549, 247, 196, 0, 148, 549, 147, 549, - 178, 171, 131, 549, 250, 112, 549, 254, 0, 257, - 0, 0, 102, 549, 240, 164, 261, 0, 0, 0, - 0, 258, 130, 195, 85, 39, 549, 549, 549, 282, - 286, 289, 293, 297, 301, 305, 309, 313, 317, 321, - 325, 329, 333, 337, 341, 345, 349, 353, 357, 361, - 365, 369, 373, 377, 381, 385, 389, 393, 397, 401, - 405, 409, 413, 417, 421, 425, 429, 433, 437, 441, - 445, 449, 453, 457, 461, 465, 469, 473, 477, 481, - 485, 489, 493, 497 - + 0, 0, 560, 556, 555, 539, 32, 35, 662, 662, + 44, 62, 30, 40, 32, 50, 525, 49, 47, 59, + 68, 517, 69, 509, 72, 0, 662, 507, 662, 83, + 91, 0, 0, 100, 489, 109, 0, 78, 51, 86, + 89, 74, 96, 105, 109, 110, 111, 112, 117, 73, + 119, 118, 121, 120, 122, 0, 134, 0, 0, 138, + 0, 0, 471, 130, 144, 129, 143, 145, 146, 147, + 148, 149, 153, 154, 155, 158, 161, 165, 166, 170, + 180, 0, 0, 662, 171, 201, 176, 175, 178, 183, + 458, 182, 190, 446, 212, 188, 221, 208, 224, 234, + + 209, 230, 236, 221, 244, 0, 247, 0, 184, 248, + 244, 269, 231, 247, 251, 258, 272, 0, 279, 0, + 283, 0, 286, 0, 255, 290, 0, 293, 0, 270, + 281, 447, 254, 297, 0, 0, 0, 0, 294, 662, + 295, 308, 0, 310, 0, 257, 319, 328, 304, 331, + 0, 0, 0, 0, 335, 0, 0, 0, 0, 316, + 338, 0, 0, 0, 0, 333, 336, 429, 662, 428, + 338, 340, 348, 0, 0, 0, 0, 427, 351, 0, + 355, 0, 359, 0, 362, 0, 357, 426, 308, 369, + 425, 662, 423, 662, 346, 365, 421, 662, 371, 0, + + 0, 0, 0, 378, 0, 0, 0, 0, 380, 420, + 662, 388, 419, 0, 418, 662, 373, 417, 662, 372, + 382, 416, 662, 398, 415, 662, 400, 0, 402, 0, + 0, 385, 264, 662, 390, 275, 409, 0, 0, 0, + 0, 405, 404, 406, 0, 412, 224, 129, 87, 662, + 47, 662, 662, 434, 438, 441, 445, 449, 453, 457, + 461, 465, 469, 473, 477, 481, 485, 489, 493, 497, + 501, 505, 509, 513, 517, 521, 525, 529, 533, 537, + 541, 545, 549, 553, 557, 561, 565, 569, 573, 577, + 581, 585, 589, 593, 597, 601, 605, 609, 613, 617, + + 621, 625, 629, 633, 637, 641, 645, 649, 653, 657 } ; -static yyconst flex_int16_t yy_def[295] = +static yyconst flex_int16_t yy_def[311] = { 0, - 239, 1, 240, 240, 239, 241, 242, 242, 239, 239, - 243, 243, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 244, 239, 241, 239, 245, 242, - 246, 246, 247, 12, 241, 248, 12, 12, 12, 12, + 253, 1, 254, 254, 253, 255, 256, 256, 253, 253, + 257, 257, 12, 12, 12, 12, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 258, 253, 255, 253, 259, + 256, 260, 260, 261, 12, 255, 262, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 244, 245, 246, 246, 249, 250, 250, - 239, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 249, 250, 250, - 239, 12, 251, 12, 12, 12, 12, 12, 12, 35, - 252, 12, 253, 12, 12, 254, 12, 12, 12, 12, - - 255, 256, 251, 256, 12, 12, 257, 12, 12, 12, - 241, 258, 259, 252, 259, 260, 261, 253, 261, 12, - 262, 263, 254, 263, 12, 12, 264, 12, 255, 256, - 256, 265, 265, 239, 12, 266, 267, 257, 267, 12, - 268, 269, 241, 258, 259, 259, 270, 270, 260, 261, - 261, 271, 271, 12, 262, 263, 263, 272, 272, 12, - 12, 273, 239, 274, 12, 266, 267, 267, 275, 275, - 276, 277, 278, 268, 278, 279, 280, 269, 280, 241, - 281, 12, 282, 273, 239, 283, 239, 284, 285, 239, - 277, 278, 278, 286, 286, 279, 280, 280, 287, 287, - - 241, 288, 239, 289, 290, 290, 283, 239, 291, 239, - 291, 291, 285, 239, 269, 288, 239, 292, 293, 289, - 293, 290, 291, 239, 291, 291, 292, 293, 293, 294, - 294, 291, 291, 291, 291, 291, 239, 239, 0, 239, - 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, - 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, - 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, - 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, - 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, - 239, 239, 239, 239 - + 12, 12, 12, 12, 12, 258, 259, 260, 260, 263, + 264, 264, 253, 12, 12, 12, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, + 263, 264, 264, 253, 12, 265, 12, 12, 12, 12, + 12, 12, 12, 36, 266, 12, 267, 12, 12, 268, + + 12, 12, 12, 12, 269, 270, 265, 270, 12, 12, + 12, 271, 12, 12, 12, 255, 272, 273, 266, 273, + 274, 275, 267, 275, 12, 276, 277, 268, 277, 12, + 12, 278, 12, 269, 270, 270, 279, 279, 12, 253, + 12, 280, 281, 271, 281, 12, 282, 283, 255, 272, + 273, 273, 284, 284, 274, 275, 275, 285, 285, 12, + 276, 277, 277, 286, 286, 12, 12, 287, 253, 288, + 12, 12, 280, 281, 281, 289, 289, 290, 291, 292, + 282, 292, 293, 294, 283, 294, 255, 295, 12, 296, + 287, 253, 297, 253, 12, 298, 299, 253, 291, 292, + + 292, 300, 300, 293, 294, 294, 301, 301, 255, 302, + 253, 303, 304, 304, 297, 253, 12, 305, 253, 305, + 305, 299, 253, 283, 302, 253, 306, 307, 303, 307, + 304, 12, 305, 253, 305, 305, 306, 307, 307, 308, + 308, 12, 305, 305, 309, 305, 305, 310, 305, 253, + 310, 253, 0, 253, 253, 253, 253, 253, 253, 253, + 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, + 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, + 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, + 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, + + 253, 253, 253, 253, 253, 253, 253, 253, 253, 253 } ; -static yyconst flex_int16_t yy_nxt[583] = +static yyconst flex_int16_t yy_nxt[696] = { 0, 6, 7, 8, 9, 6, 6, 6, 6, 10, 11, - 12, 13, 14, 15, 16, 12, 12, 17, 12, 12, - 12, 12, 18, 12, 19, 20, 21, 22, 23, 12, - 24, 12, 12, 30, 30, 31, 30, 30, 31, 75, - 32, 76, 238, 32, 27, 27, 27, 28, 33, 44, - 42, 35, 36, 45, 52, 37, 43, 28, 53, 73, - 93, 38, 27, 27, 27, 28, 33, 27, 56, 35, - 36, 27, 56, 57, 30, 30, 31, 57, 28, 28, - 143, 32, 27, 27, 27, 28, 180, 201, 237, 27, - 36, 58, 58, 58, 59, 58, 27, 79, 58, 60, - - 95, 96, 80, 27, 79, 210, 97, 61, 206, 80, - 101, 101, 58, 102, 101, 203, 210, 101, 104, 112, - 112, 58, 113, 112, 211, 212, 112, 115, 116, 116, - 58, 117, 116, 210, 190, 116, 119, 121, 121, 58, - 122, 121, 27, 130, 121, 124, 27, 132, 131, 235, - 224, 187, 133, 136, 136, 58, 137, 136, 27, 145, - 136, 139, 27, 147, 146, 27, 150, 210, 148, 27, - 152, 151, 27, 156, 224, 153, 27, 158, 157, 27, - 130, 224, 159, 27, 167, 131, 27, 169, 226, 168, - 225, 233, 170, 172, 172, 58, 173, 172, 210, 222, - - 172, 175, 176, 176, 58, 177, 176, 27, 145, 176, - 179, 27, 150, 146, 27, 156, 236, 151, 27, 167, - 157, 27, 192, 217, 168, 27, 194, 193, 27, 197, - 214, 195, 27, 199, 198, 27, 192, 208, 200, 27, - 197, 193, 28, 210, 163, 198, 215, 218, 218, 58, - 219, 218, 27, 199, 218, 221, 27, 228, 200, 27, - 230, 210, 229, 27, 228, 231, 232, 204, 203, 229, - 190, 188, 187, 185, 183, 182, 181, 171, 165, 164, - 163, 234, 25, 25, 25, 25, 27, 27, 27, 29, - 29, 29, 29, 34, 34, 34, 34, 54, 161, 54, - - 54, 55, 55, 55, 55, 57, 160, 57, 57, 33, - 33, 33, 33, 61, 61, 154, 61, 78, 78, 78, - 78, 80, 142, 80, 80, 103, 103, 103, 103, 114, - 114, 114, 114, 118, 118, 118, 118, 123, 123, 123, - 123, 129, 129, 129, 129, 131, 141, 131, 131, 138, - 138, 138, 138, 144, 144, 144, 144, 146, 140, 146, - 146, 149, 149, 149, 149, 151, 135, 151, 151, 155, - 155, 155, 155, 157, 134, 157, 157, 162, 162, 162, - 162, 133, 128, 133, 133, 166, 166, 166, 166, 168, - 127, 168, 168, 174, 174, 174, 174, 178, 178, 178, - - 178, 148, 126, 148, 148, 153, 125, 153, 153, 159, - 96, 159, 159, 184, 184, 184, 184, 186, 186, 186, - 186, 170, 120, 170, 170, 189, 189, 189, 189, 191, - 191, 191, 191, 193, 111, 193, 193, 196, 196, 196, - 196, 198, 110, 198, 198, 202, 202, 202, 202, 205, - 205, 205, 205, 207, 207, 207, 207, 209, 209, 209, - 209, 213, 213, 213, 213, 195, 109, 195, 195, 200, - 108, 200, 200, 216, 216, 216, 216, 220, 220, 220, - 220, 206, 107, 206, 206, 223, 223, 223, 223, 227, - 227, 227, 227, 229, 106, 229, 229, 231, 105, 231, - - 231, 100, 99, 98, 94, 93, 92, 91, 90, 89, - 88, 87, 86, 85, 84, 83, 82, 81, 73, 77, - 74, 73, 72, 71, 70, 69, 68, 67, 66, 46, - 65, 64, 63, 62, 28, 51, 50, 49, 48, 47, - 46, 41, 40, 39, 28, 239, 26, 26, 5, 239, - 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, - 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, - 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, - 239, 239 + 12, 13, 14, 15, 16, 17, 17, 18, 17, 17, + 17, 17, 19, 17, 20, 21, 22, 23, 24, 17, + 25, 17, 17, 31, 31, 32, 31, 31, 32, 35, + 33, 35, 41, 33, 28, 28, 28, 29, 34, 35, + 253, 36, 37, 42, 43, 38, 35, 48, 35, 35, + 35, 39, 28, 28, 28, 29, 34, 44, 35, 36, + 37, 40, 46, 45, 65, 49, 47, 35, 35, 50, + 52, 35, 35, 35, 54, 28, 58, 35, 55, 64, + 252, 59, 31, 31, 32, 35, 75, 66, 35, 33, + + 28, 28, 28, 29, 68, 35, 48, 28, 37, 60, + 60, 60, 61, 60, 35, 67, 60, 62, 35, 35, + 35, 35, 72, 71, 73, 69, 35, 35, 35, 35, + 35, 35, 84, 80, 76, 70, 28, 58, 35, 35, + 28, 82, 59, 85, 77, 78, 83, 79, 87, 74, + 76, 86, 35, 35, 35, 35, 35, 35, 35, 90, + 94, 95, 35, 35, 35, 97, 88, 35, 91, 92, + 35, 99, 100, 89, 35, 35, 93, 101, 98, 35, + 35, 102, 28, 82, 35, 35, 96, 35, 83, 109, + 112, 35, 35, 35, 76, 97, 110, 35, 104, 35, + + 103, 105, 105, 60, 106, 105, 139, 115, 105, 108, + 111, 114, 117, 117, 60, 118, 117, 35, 35, 117, + 120, 121, 121, 60, 122, 121, 130, 250, 121, 124, + 35, 100, 125, 35, 126, 126, 60, 127, 126, 35, + 35, 126, 129, 131, 132, 35, 28, 135, 133, 28, + 137, 140, 136, 35, 147, 138, 35, 35, 148, 146, + 35, 29, 170, 35, 35, 178, 35, 219, 141, 142, + 142, 60, 143, 142, 28, 151, 142, 145, 219, 35, + 152, 28, 153, 160, 149, 28, 156, 154, 28, 158, + 35, 157, 28, 162, 159, 28, 164, 166, 163, 28, + + 135, 165, 244, 35, 35, 136, 171, 29, 172, 167, + 28, 174, 28, 176, 187, 212, 175, 35, 177, 179, + 179, 60, 180, 179, 188, 35, 179, 182, 183, 183, + 60, 184, 183, 28, 151, 183, 186, 28, 156, 152, + 28, 162, 35, 157, 190, 35, 163, 35, 196, 35, + 28, 174, 189, 28, 200, 35, 175, 28, 202, 201, + 29, 28, 205, 203, 28, 207, 195, 206, 219, 209, + 208, 63, 214, 28, 200, 234, 220, 221, 217, 201, + 28, 205, 35, 29, 235, 234, 206, 224, 227, 227, + 60, 228, 227, 219, 35, 227, 230, 232, 242, 236, + + 28, 207, 28, 238, 28, 240, 208, 219, 239, 219, + 241, 28, 238, 245, 35, 219, 243, 239, 211, 198, + 234, 194, 231, 226, 223, 247, 216, 246, 169, 211, + 198, 194, 192, 249, 26, 26, 26, 26, 28, 28, + 28, 30, 30, 30, 30, 35, 35, 35, 35, 56, + 169, 56, 56, 57, 57, 57, 57, 59, 116, 59, + 59, 34, 34, 34, 34, 63, 63, 113, 63, 81, + 81, 81, 81, 83, 84, 83, 83, 107, 107, 107, + 107, 119, 119, 119, 119, 123, 123, 123, 123, 128, + 128, 128, 128, 134, 134, 134, 134, 136, 35, 136, + + 136, 144, 144, 144, 144, 150, 150, 150, 150, 152, + 29, 152, 152, 155, 155, 155, 155, 157, 53, 157, + 157, 161, 161, 161, 161, 163, 51, 163, 163, 168, + 168, 168, 168, 138, 35, 138, 138, 173, 173, 173, + 173, 175, 29, 175, 175, 181, 181, 181, 181, 185, + 185, 185, 185, 154, 253, 154, 154, 159, 27, 159, + 159, 165, 27, 165, 165, 191, 191, 191, 191, 193, + 193, 193, 193, 177, 253, 177, 177, 197, 197, 197, + 197, 199, 199, 199, 199, 201, 253, 201, 201, 204, + 204, 204, 204, 206, 253, 206, 206, 210, 210, 210, + + 210, 213, 213, 213, 213, 215, 215, 215, 215, 218, + 218, 218, 218, 222, 222, 222, 222, 203, 253, 203, + 203, 208, 253, 208, 208, 225, 225, 225, 225, 229, + 229, 229, 229, 214, 253, 214, 214, 233, 233, 233, + 233, 237, 237, 237, 237, 239, 253, 239, 239, 241, + 253, 241, 241, 248, 248, 253, 248, 251, 251, 251, + 251, 5, 253, 253, 253, 253, 253, 253, 253, 253, + 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, + 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, + 253, 253, 253, 253, 253 + } ; -static yyconst flex_int16_t yy_chk[583] = +static yyconst flex_int16_t yy_chk[696] = { 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, 7, 7, 7, 8, 8, 8, 51, - 7, 51, 236, 8, 11, 11, 11, 11, 11, 17, - 16, 11, 11, 17, 24, 11, 16, 111, 24, 92, - 92, 11, 12, 12, 12, 12, 12, 29, 29, 12, - 12, 55, 55, 29, 30, 30, 30, 55, 180, 143, - 111, 30, 33, 33, 33, 33, 143, 180, 235, 33, - 33, 35, 35, 35, 35, 35, 58, 58, 35, 35, - - 75, 75, 58, 78, 78, 223, 75, 183, 183, 78, - 83, 83, 83, 83, 83, 216, 188, 83, 83, 91, - 91, 91, 91, 91, 188, 188, 91, 91, 93, 93, - 93, 93, 93, 233, 213, 93, 93, 96, 96, 96, - 96, 96, 101, 101, 96, 96, 103, 103, 101, 233, - 209, 207, 103, 107, 107, 107, 107, 107, 112, 112, - 107, 107, 114, 114, 112, 116, 116, 226, 114, 118, - 118, 116, 121, 121, 212, 118, 123, 123, 121, 129, - 129, 211, 123, 136, 136, 129, 138, 138, 212, 136, - 211, 226, 138, 141, 141, 141, 141, 141, 234, 205, - - 141, 141, 142, 142, 142, 142, 142, 144, 144, 142, - 142, 149, 149, 144, 155, 155, 234, 149, 166, 166, - 155, 172, 172, 202, 166, 174, 174, 172, 176, 176, - 189, 174, 178, 178, 176, 191, 191, 186, 178, 196, - 196, 191, 201, 225, 184, 196, 201, 204, 204, 204, - 204, 204, 215, 215, 204, 204, 218, 218, 215, 220, - 220, 232, 218, 227, 227, 220, 225, 182, 181, 227, - 171, 165, 164, 162, 161, 160, 154, 140, 135, 128, - 127, 232, 240, 240, 240, 240, 241, 241, 241, 242, - 242, 242, 242, 243, 243, 243, 243, 244, 126, 244, - - 244, 245, 245, 245, 245, 246, 125, 246, 246, 247, - 247, 247, 247, 248, 248, 120, 248, 249, 249, 249, - 249, 250, 110, 250, 250, 251, 251, 251, 251, 252, - 252, 252, 252, 253, 253, 253, 253, 254, 254, 254, - 254, 255, 255, 255, 255, 256, 109, 256, 256, 257, - 257, 257, 257, 258, 258, 258, 258, 259, 108, 259, - 259, 260, 260, 260, 260, 261, 106, 261, 261, 262, - 262, 262, 262, 263, 105, 263, 263, 264, 264, 264, - 264, 265, 100, 265, 265, 266, 266, 266, 266, 267, - 99, 267, 267, 268, 268, 268, 268, 269, 269, 269, - - 269, 270, 98, 270, 270, 271, 97, 271, 271, 272, - 95, 272, 272, 273, 273, 273, 273, 274, 274, 274, - 274, 275, 94, 275, 275, 276, 276, 276, 276, 277, - 277, 277, 277, 278, 90, 278, 278, 279, 279, 279, - 279, 280, 89, 280, 280, 281, 281, 281, 281, 282, - 282, 282, 282, 283, 283, 283, 283, 284, 284, 284, - 284, 285, 285, 285, 285, 286, 88, 286, 286, 287, - 87, 287, 287, 288, 288, 288, 288, 289, 289, 289, - 289, 290, 86, 290, 290, 291, 291, 291, 291, 292, - 292, 292, 292, 293, 85, 293, 293, 294, 84, 294, - - 294, 82, 77, 76, 74, 73, 72, 71, 70, 69, - 68, 67, 66, 65, 64, 63, 62, 61, 53, 52, - 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, - 40, 39, 38, 37, 27, 23, 22, 21, 20, 19, - 18, 15, 14, 13, 6, 5, 4, 3, 239, 239, - 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, - 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, - 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, - 239, 239 + 1, 1, 1, 7, 7, 7, 8, 8, 8, 13, + 7, 15, 13, 8, 11, 11, 11, 11, 11, 14, + 251, 11, 11, 14, 15, 11, 19, 19, 18, 16, + 39, 11, 12, 12, 12, 12, 12, 16, 20, 12, + 12, 12, 18, 16, 39, 20, 18, 21, 23, 21, + 23, 25, 50, 42, 25, 30, 30, 38, 25, 38, + 249, 30, 31, 31, 31, 40, 50, 40, 41, 31, + + 34, 34, 34, 34, 42, 43, 43, 34, 34, 36, + 36, 36, 36, 36, 44, 41, 36, 36, 45, 46, + 47, 48, 47, 46, 48, 44, 49, 52, 51, 54, + 53, 55, 248, 54, 55, 45, 57, 57, 66, 64, + 60, 60, 57, 64, 52, 53, 60, 53, 66, 49, + 51, 65, 67, 65, 68, 69, 70, 71, 72, 69, + 73, 74, 73, 74, 75, 76, 67, 76, 70, 71, + 77, 78, 78, 68, 78, 79, 72, 78, 77, 80, + 85, 79, 81, 81, 88, 87, 75, 89, 81, 87, + 90, 92, 90, 109, 96, 96, 88, 96, 85, 93, + + 80, 86, 86, 86, 86, 86, 109, 93, 86, 86, + 89, 92, 95, 95, 95, 95, 95, 98, 101, 95, + 95, 97, 97, 97, 97, 97, 101, 247, 97, 97, + 104, 99, 98, 99, 100, 100, 100, 100, 100, 102, + 113, 100, 100, 102, 103, 103, 105, 105, 104, 107, + 107, 110, 105, 111, 114, 107, 114, 110, 115, 113, + 115, 116, 133, 133, 125, 146, 146, 233, 111, 112, + 112, 112, 112, 112, 117, 117, 112, 112, 236, 130, + 117, 119, 119, 125, 116, 121, 121, 119, 123, 123, + 131, 121, 126, 126, 123, 128, 128, 130, 126, 134, + + 134, 128, 236, 139, 141, 134, 139, 149, 141, 131, + 142, 142, 144, 144, 149, 189, 142, 189, 144, 147, + 147, 147, 147, 147, 160, 160, 147, 147, 148, 148, + 148, 148, 148, 150, 150, 148, 148, 155, 155, 150, + 161, 161, 166, 155, 167, 167, 161, 171, 172, 172, + 173, 173, 166, 179, 179, 195, 173, 181, 181, 179, + 187, 183, 183, 181, 185, 185, 171, 183, 196, 187, + 185, 190, 190, 199, 199, 220, 196, 196, 195, 199, + 204, 204, 217, 209, 220, 221, 204, 209, 212, 212, + 212, 212, 212, 235, 232, 212, 212, 217, 232, 221, + + 224, 224, 227, 227, 229, 229, 224, 243, 227, 244, + 229, 237, 237, 242, 242, 246, 235, 237, 225, 222, + 218, 215, 213, 210, 197, 244, 193, 243, 191, 188, + 178, 170, 168, 246, 254, 254, 254, 254, 255, 255, + 255, 256, 256, 256, 256, 257, 257, 257, 257, 258, + 132, 258, 258, 259, 259, 259, 259, 260, 94, 260, + 260, 261, 261, 261, 261, 262, 262, 91, 262, 263, + 263, 263, 263, 264, 63, 264, 264, 265, 265, 265, + 265, 266, 266, 266, 266, 267, 267, 267, 267, 268, + 268, 268, 268, 269, 269, 269, 269, 270, 35, 270, + + 270, 271, 271, 271, 271, 272, 272, 272, 272, 273, + 28, 273, 273, 274, 274, 274, 274, 275, 24, 275, + 275, 276, 276, 276, 276, 277, 22, 277, 277, 278, + 278, 278, 278, 279, 17, 279, 279, 280, 280, 280, + 280, 281, 6, 281, 281, 282, 282, 282, 282, 283, + 283, 283, 283, 284, 5, 284, 284, 285, 4, 285, + 285, 286, 3, 286, 286, 287, 287, 287, 287, 288, + 288, 288, 288, 289, 0, 289, 289, 290, 290, 290, + 290, 291, 291, 291, 291, 292, 0, 292, 292, 293, + 293, 293, 293, 294, 0, 294, 294, 295, 295, 295, + + 295, 296, 296, 296, 296, 297, 297, 297, 297, 298, + 298, 298, 298, 299, 299, 299, 299, 300, 0, 300, + 300, 301, 0, 301, 301, 302, 302, 302, 302, 303, + 303, 303, 303, 304, 0, 304, 304, 305, 305, 305, + 305, 306, 306, 306, 306, 307, 0, 307, 307, 308, + 0, 308, 308, 309, 309, 0, 309, 310, 310, 310, + 310, 253, 253, 253, 253, 253, 253, 253, 253, 253, + 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, + 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, + 253, 253, 253, 253, 253 + } ; #define YY_TRAILING_MASK 0x2000 @@ -815,10 +847,18 @@ 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 */ -#line 822 "libxlu_disk_l.c" +#line 862 "libxlu_disk_l.c" #define INITIAL 0 #define LEXERR 1 @@ -1054,12 +1094,12 @@ YY_DECL register int yy_act; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; -#line 118 "libxlu_disk_l.l" +#line 126 "libxlu_disk_l.l" /*----- the scanner rules which do the parsing -----*/ -#line 1063 "libxlu_disk_l.c" +#line 1103 "libxlu_disk_l.c" if ( !yyg->yy_init ) { @@ -1123,14 +1163,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 >= 240 ) + if ( yy_current_state >= 254 ) 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 != 239 ); + while ( yy_current_state != 253 ); yy_find_action: yy_current_state = *--yyg->yy_state_ptr; @@ -1180,148 +1220,154 @@ do_action: /* This label is used only to access EOF actions. */ case 1: /* rule 1 can match eol */ YY_RULE_SETUP -#line 122 "libxlu_disk_l.l" +#line 130 "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 126 "libxlu_disk_l.l" +#line 134 "libxlu_disk_l.l" { STRIP(','); setformat(DPC, FROMEQUALS); } YY_BREAK case 3: YY_RULE_SETUP -#line 128 "libxlu_disk_l.l" +#line 136 "libxlu_disk_l.l" { DPC->disk->is_cdrom = 1; } YY_BREAK case 4: YY_RULE_SETUP -#line 129 "libxlu_disk_l.l" +#line 137 "libxlu_disk_l.l" { DPC->disk->is_cdrom = 1; } YY_BREAK case 5: YY_RULE_SETUP -#line 130 "libxlu_disk_l.l" +#line 138 "libxlu_disk_l.l" { DPC->disk->is_cdrom = 0; } YY_BREAK case 6: /* rule 6 can match eol */ YY_RULE_SETUP -#line 131 "libxlu_disk_l.l" +#line 139 "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 133 "libxlu_disk_l.l" +#line 141 "libxlu_disk_l.l" { STRIP(','); setaccess(DPC, FROMEQUALS); } YY_BREAK case 8: /* rule 8 can match eol */ YY_RULE_SETUP -#line 135 "libxlu_disk_l.l" -{ STRIP(','); SAVESTRING("vdev", vdev, FROMEQUALS); } +#line 142 "libxlu_disk_l.l" +{ STRIP(','); setbackendtype(DPC,yytext); } YY_BREAK case 9: /* rule 9 can match eol */ YY_RULE_SETUP -#line 136 "libxlu_disk_l.l" +#line 144 "libxlu_disk_l.l" +{ STRIP(','); SAVESTRING("vdev", vdev, FROMEQUALS); } + YY_BREAK +case 10: +/* rule 10 can match eol */ +YY_RULE_SETUP +#line 145 "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 140 "libxlu_disk_l.l" +#line 149 "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 144 "libxlu_disk_l.l" +#line 153 "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 151 "libxlu_disk_l.l" +#line 160 "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 157 "libxlu_disk_l.l" +#line 166 "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 163 "libxlu_disk_l.l" +#line 172 "libxlu_disk_l.l" { DPC->had_depr_prefix=1; DEPRECATE(0); } YY_BREAK -case 15: +case 16: 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 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 165 "libxlu_disk_l.l" +#line 174 "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 166 "libxlu_disk_l.l" +#line 175 "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 167 "libxlu_disk_l.l" +#line 176 "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 168 "libxlu_disk_l.l" +#line 177 "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 170 "libxlu_disk_l.l" +#line 179 "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 177 "libxlu_disk_l.l" +#line 186 "libxlu_disk_l.l" { char *colon; STRIP(','); @@ -1356,27 +1402,27 @@ YY_RULE_SETUP } } YY_BREAK -case 22: +case 23: YY_RULE_SETUP -#line 211 "libxlu_disk_l.l" +#line 220 "libxlu_disk_l.l" { BEGIN(LEXERR); yymore(); } YY_BREAK -case 23: +case 24: YY_RULE_SETUP -#line 215 "libxlu_disk_l.l" +#line 224 "libxlu_disk_l.l" { xlu__disk_err(DPC,yytext,"bad disk syntax"); return 0; } YY_BREAK -case 24: +case 25: YY_RULE_SETUP -#line 218 "libxlu_disk_l.l" +#line 227 "libxlu_disk_l.l" YY_FATAL_ERROR( "flex scanner jammed" ); YY_BREAK -#line 1380 "libxlu_disk_l.c" +#line 1426 "libxlu_disk_l.c" case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(LEXERR): yyterminate(); @@ -1640,7 +1686,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 >= 240 ) + if ( yy_current_state >= 254 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -1664,11 +1710,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 >= 240 ) + if ( yy_current_state >= 254 ) 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 == 239); + yy_is_jam = (yy_current_state == 253); if ( ! yy_is_jam ) *yyg->yy_state_ptr++ = yy_current_state; @@ -2468,4 +2514,4 @@ void xlu__disk_yyfree (void * ptr , yyscan_t yyscanner) #define YYTABLES_NAME "yytables" -#line 218 "libxlu_disk_l.l" +#line 227 "libxlu_disk_l.l" diff --git a/tools/libxl/libxlu_disk_l.h b/tools/libxl/libxlu_disk_l.h index 7c1a8a0..2b6396e 100644 --- a/tools/libxl/libxlu_disk_l.h +++ b/tools/libxl/libxlu_disk_l.h @@ -340,7 +340,7 @@ extern int xlu__disk_yylex (yyscan_t yyscanner); #undef YY_DECL #endif -#line 218 "libxlu_disk_l.l" +#line 227 "libxlu_disk_l.l" #line 346 "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 48a1314..e9d43c9 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); } -- 1.5.6.5 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |