|
Lines 335-340
xenParseSxprDisks(virDomainDefPtr def,
Link Here
|
| 335 |
{ |
335 |
{ |
| 336 |
const struct sexpr *cur, *node; |
336 |
const struct sexpr *cur, *node; |
| 337 |
virDomainDiskDefPtr disk = NULL; |
337 |
virDomainDiskDefPtr disk = NULL; |
|
|
338 |
int bootIndex = 0; |
| 338 |
|
339 |
|
| 339 |
for (cur = root; cur->kind == SEXPR_CONS; cur = cur->u.s.cdr) { |
340 |
for (cur = root; cur->kind == SEXPR_CONS; cur = cur->u.s.cdr) { |
| 340 |
node = cur->u.s.car; |
341 |
node = cur->u.s.car; |
|
Lines 494-509
xenParseSxprDisks(virDomainDefPtr def,
Link Here
|
| 494 |
strchr(mode, '!')) |
495 |
strchr(mode, '!')) |
| 495 |
disk->shared = 1; |
496 |
disk->shared = 1; |
| 496 |
|
497 |
|
|
|
498 |
if (STREQ_NULLABLE(bootable, "1")) |
| 499 |
disk->bootIndex = ++bootIndex; |
| 500 |
|
| 497 |
if (VIR_REALLOC_N(def->disks, def->ndisks+1) < 0) |
501 |
if (VIR_REALLOC_N(def->disks, def->ndisks+1) < 0) |
| 498 |
goto no_memory; |
502 |
goto no_memory; |
| 499 |
|
503 |
|
| 500 |
/* re-order disks if there is a bootable device */ |
504 |
def->disks[def->ndisks++] = disk; |
| 501 |
if (STREQ_NULLABLE(bootable, "1")) { |
|
|
| 502 |
def->disks[def->ndisks++] = def->disks[0]; |
| 503 |
def->disks[0] = disk; |
| 504 |
} else { |
| 505 |
def->disks[def->ndisks++] = disk; |
| 506 |
} |
| 507 |
disk = NULL; |
505 |
disk = NULL; |
| 508 |
} |
506 |
} |
| 509 |
} |
507 |
} |
|
Lines 1736-1741
xenFormatSxprDisk(virDomainDiskDefPtr def,
Link Here
|
| 1736 |
virBufferAddLit(buf, "(mode 'w!')"); |
1734 |
virBufferAddLit(buf, "(mode 'w!')"); |
| 1737 |
else |
1735 |
else |
| 1738 |
virBufferAddLit(buf, "(mode 'w')"); |
1736 |
virBufferAddLit(buf, "(mode 'w')"); |
|
|
1737 |
|
| 1738 |
if (def->bootIndex) |
| 1739 |
virBufferAddLit(buf, "(bootable 1)"); |
| 1740 |
else |
| 1741 |
virBufferAddLit(buf, "(bootable 0)"); |
| 1742 |
|
| 1739 |
if (def->transient) { |
1743 |
if (def->transient) { |
| 1740 |
XENXS_ERROR(VIR_ERR_CONFIG_UNSUPPORTED, |
1744 |
XENXS_ERROR(VIR_ERR_CONFIG_UNSUPPORTED, |
| 1741 |
_("transient disks not supported yet")); |
1745 |
_("transient disks not supported yet")); |