mirror of
https://github.com/libvirt/libvirt.git
synced 2026-09-03 20:53:04 -05:00
conf: Alter virCapabilitiesFormatGuestXML to take virCapsGuestPtr
Rather than deref off of "caps->guests", let's pass "caps->guests" and caps->nguests to have the helper use "guests[i]->" instead. Signed-off-by: John Ferlan <jferlan@redhat.com> ACKed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
+36
-35
@@ -1179,31 +1179,32 @@ virCapabilitiesFormatHostXML(virCapsHostPtr host,
|
|||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
virCapabilitiesFormatGuestXML(virCapsPtr caps,
|
virCapabilitiesFormatGuestXML(virCapsGuestPtr *guests,
|
||||||
|
size_t nguests,
|
||||||
virBufferPtr buf)
|
virBufferPtr buf)
|
||||||
{
|
{
|
||||||
size_t i, j, k;
|
size_t i, j, k;
|
||||||
|
|
||||||
for (i = 0; i < caps->nguests; i++) {
|
for (i = 0; i < nguests; i++) {
|
||||||
virBufferAddLit(buf, "<guest>\n");
|
virBufferAddLit(buf, "<guest>\n");
|
||||||
virBufferAdjustIndent(buf, 2);
|
virBufferAdjustIndent(buf, 2);
|
||||||
virBufferAsprintf(buf, "<os_type>%s</os_type>\n",
|
virBufferAsprintf(buf, "<os_type>%s</os_type>\n",
|
||||||
virDomainOSTypeToString(caps->guests[i]->ostype));
|
virDomainOSTypeToString(guests[i]->ostype));
|
||||||
if (caps->guests[i]->arch.id)
|
if (guests[i]->arch.id)
|
||||||
virBufferAsprintf(buf, "<arch name='%s'>\n",
|
virBufferAsprintf(buf, "<arch name='%s'>\n",
|
||||||
virArchToString(caps->guests[i]->arch.id));
|
virArchToString(guests[i]->arch.id));
|
||||||
virBufferAdjustIndent(buf, 2);
|
virBufferAdjustIndent(buf, 2);
|
||||||
virBufferAsprintf(buf, "<wordsize>%d</wordsize>\n",
|
virBufferAsprintf(buf, "<wordsize>%d</wordsize>\n",
|
||||||
caps->guests[i]->arch.wordsize);
|
guests[i]->arch.wordsize);
|
||||||
if (caps->guests[i]->arch.defaultInfo.emulator)
|
if (guests[i]->arch.defaultInfo.emulator)
|
||||||
virBufferAsprintf(buf, "<emulator>%s</emulator>\n",
|
virBufferAsprintf(buf, "<emulator>%s</emulator>\n",
|
||||||
caps->guests[i]->arch.defaultInfo.emulator);
|
guests[i]->arch.defaultInfo.emulator);
|
||||||
if (caps->guests[i]->arch.defaultInfo.loader)
|
if (guests[i]->arch.defaultInfo.loader)
|
||||||
virBufferAsprintf(buf, "<loader>%s</loader>\n",
|
virBufferAsprintf(buf, "<loader>%s</loader>\n",
|
||||||
caps->guests[i]->arch.defaultInfo.loader);
|
guests[i]->arch.defaultInfo.loader);
|
||||||
|
|
||||||
for (j = 0; j < caps->guests[i]->arch.defaultInfo.nmachines; j++) {
|
for (j = 0; j < guests[i]->arch.defaultInfo.nmachines; j++) {
|
||||||
virCapsGuestMachinePtr machine = caps->guests[i]->arch.defaultInfo.machines[j];
|
virCapsGuestMachinePtr machine = guests[i]->arch.defaultInfo.machines[j];
|
||||||
virBufferAddLit(buf, "<machine");
|
virBufferAddLit(buf, "<machine");
|
||||||
if (machine->canonical)
|
if (machine->canonical)
|
||||||
virBufferAsprintf(buf, " canonical='%s'", machine->canonical);
|
virBufferAsprintf(buf, " canonical='%s'", machine->canonical);
|
||||||
@@ -1212,26 +1213,26 @@ virCapabilitiesFormatGuestXML(virCapsPtr caps,
|
|||||||
virBufferAsprintf(buf, ">%s</machine>\n", machine->name);
|
virBufferAsprintf(buf, ">%s</machine>\n", machine->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (j = 0; j < caps->guests[i]->arch.ndomains; j++) {
|
for (j = 0; j < guests[i]->arch.ndomains; j++) {
|
||||||
virBufferAsprintf(buf, "<domain type='%s'",
|
virBufferAsprintf(buf, "<domain type='%s'",
|
||||||
virDomainVirtTypeToString(caps->guests[i]->arch.domains[j]->type));
|
virDomainVirtTypeToString(guests[i]->arch.domains[j]->type));
|
||||||
if (!caps->guests[i]->arch.domains[j]->info.emulator &&
|
if (!guests[i]->arch.domains[j]->info.emulator &&
|
||||||
!caps->guests[i]->arch.domains[j]->info.loader &&
|
!guests[i]->arch.domains[j]->info.loader &&
|
||||||
!caps->guests[i]->arch.domains[j]->info.nmachines) {
|
!guests[i]->arch.domains[j]->info.nmachines) {
|
||||||
virBufferAddLit(buf, "/>\n");
|
virBufferAddLit(buf, "/>\n");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
virBufferAddLit(buf, ">\n");
|
virBufferAddLit(buf, ">\n");
|
||||||
virBufferAdjustIndent(buf, 2);
|
virBufferAdjustIndent(buf, 2);
|
||||||
if (caps->guests[i]->arch.domains[j]->info.emulator)
|
if (guests[i]->arch.domains[j]->info.emulator)
|
||||||
virBufferAsprintf(buf, "<emulator>%s</emulator>\n",
|
virBufferAsprintf(buf, "<emulator>%s</emulator>\n",
|
||||||
caps->guests[i]->arch.domains[j]->info.emulator);
|
guests[i]->arch.domains[j]->info.emulator);
|
||||||
if (caps->guests[i]->arch.domains[j]->info.loader)
|
if (guests[i]->arch.domains[j]->info.loader)
|
||||||
virBufferAsprintf(buf, "<loader>%s</loader>\n",
|
virBufferAsprintf(buf, "<loader>%s</loader>\n",
|
||||||
caps->guests[i]->arch.domains[j]->info.loader);
|
guests[i]->arch.domains[j]->info.loader);
|
||||||
|
|
||||||
for (k = 0; k < caps->guests[i]->arch.domains[j]->info.nmachines; k++) {
|
for (k = 0; k < guests[i]->arch.domains[j]->info.nmachines; k++) {
|
||||||
virCapsGuestMachinePtr machine = caps->guests[i]->arch.domains[j]->info.machines[k];
|
virCapsGuestMachinePtr machine = guests[i]->arch.domains[j]->info.machines[k];
|
||||||
virBufferAddLit(buf, "<machine");
|
virBufferAddLit(buf, "<machine");
|
||||||
if (machine->canonical)
|
if (machine->canonical)
|
||||||
virBufferAsprintf(buf, " canonical='%s'", machine->canonical);
|
virBufferAsprintf(buf, " canonical='%s'", machine->canonical);
|
||||||
@@ -1246,23 +1247,23 @@ virCapabilitiesFormatGuestXML(virCapsPtr caps,
|
|||||||
virBufferAdjustIndent(buf, -2);
|
virBufferAdjustIndent(buf, -2);
|
||||||
virBufferAddLit(buf, "</arch>\n");
|
virBufferAddLit(buf, "</arch>\n");
|
||||||
|
|
||||||
if (caps->guests[i]->nfeatures) {
|
if (guests[i]->nfeatures) {
|
||||||
virBufferAddLit(buf, "<features>\n");
|
virBufferAddLit(buf, "<features>\n");
|
||||||
virBufferAdjustIndent(buf, 2);
|
virBufferAdjustIndent(buf, 2);
|
||||||
|
|
||||||
for (j = 0; j < caps->guests[i]->nfeatures; j++) {
|
for (j = 0; j < guests[i]->nfeatures; j++) {
|
||||||
if (STREQ(caps->guests[i]->features[j]->name, "pae") ||
|
if (STREQ(guests[i]->features[j]->name, "pae") ||
|
||||||
STREQ(caps->guests[i]->features[j]->name, "nonpae") ||
|
STREQ(guests[i]->features[j]->name, "nonpae") ||
|
||||||
STREQ(caps->guests[i]->features[j]->name, "ia64_be") ||
|
STREQ(guests[i]->features[j]->name, "ia64_be") ||
|
||||||
STREQ(caps->guests[i]->features[j]->name, "cpuselection") ||
|
STREQ(guests[i]->features[j]->name, "cpuselection") ||
|
||||||
STREQ(caps->guests[i]->features[j]->name, "deviceboot")) {
|
STREQ(guests[i]->features[j]->name, "deviceboot")) {
|
||||||
virBufferAsprintf(buf, "<%s/>\n",
|
virBufferAsprintf(buf, "<%s/>\n",
|
||||||
caps->guests[i]->features[j]->name);
|
guests[i]->features[j]->name);
|
||||||
} else {
|
} else {
|
||||||
virBufferAsprintf(buf, "<%s default='%s' toggle='%s'/>\n",
|
virBufferAsprintf(buf, "<%s default='%s' toggle='%s'/>\n",
|
||||||
caps->guests[i]->features[j]->name,
|
guests[i]->features[j]->name,
|
||||||
caps->guests[i]->features[j]->defaultOn ? "on" : "off",
|
guests[i]->features[j]->defaultOn ? "on" : "off",
|
||||||
caps->guests[i]->features[j]->toggle ? "yes" : "no");
|
guests[i]->features[j]->toggle ? "yes" : "no");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1294,7 +1295,7 @@ virCapabilitiesFormatXML(virCapsPtr caps)
|
|||||||
if (virCapabilitiesFormatHostXML(&caps->host, &buf) < 0)
|
if (virCapabilitiesFormatHostXML(&caps->host, &buf) < 0)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
virCapabilitiesFormatGuestXML(caps, &buf);
|
virCapabilitiesFormatGuestXML(caps->guests, caps->nguests, &buf);
|
||||||
|
|
||||||
virBufferAdjustIndent(&buf, -2);
|
virBufferAdjustIndent(&buf, -2);
|
||||||
virBufferAddLit(&buf, "</capabilities>\n");
|
virBufferAddLit(&buf, "</capabilities>\n");
|
||||||
|
|||||||
Reference in New Issue
Block a user