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")); |