"pseries",
"hyperv",
"s390",
+ "pvpanic",
);
VIR_ENUM_IMPL(virDomainVideoBackend,
VIR_DOMAIN_PANIC_MODEL_PSERIES,
VIR_DOMAIN_PANIC_MODEL_HYPERV,
VIR_DOMAIN_PANIC_MODEL_S390,
+ VIR_DOMAIN_PANIC_MODEL_PVPANIC,
VIR_DOMAIN_PANIC_MODEL_LAST
} virDomainPanicModel;
<value>pseries</value>
<value>hyperv</value>
<value>s390</value>
+ <value>pvpanic</value>
</choice>
</attribute>
</optional>
break;
}
+ case VIR_DOMAIN_PANIC_MODEL_PVPANIC: {
+ g_autoptr(virJSONValue) props = NULL;
+
+ if (virJSONValueObjectAdd(&props,
+ "s:driver", "pvpanic-pci",
+ NULL) < 0)
+ return -1;
+
+ if (qemuBuildDeviceAddressProps(props, def, &def->panics[i]->info) < 0)
+ return -1;
+
+ if (qemuBuildDeviceCommandlineFromJSON(cmd, props, def, qemuCaps) < 0)
+ return -1;
+
+ break;
+ }
+
case VIR_DOMAIN_PANIC_MODEL_S390:
case VIR_DOMAIN_PANIC_MODEL_HYPERV:
case VIR_DOMAIN_PANIC_MODEL_PSERIES:
}
break;
+ case VIR_DOMAIN_PANIC_MODEL_PVPANIC:
+ if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_PANIC_PCI)) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("the QEMU binary does not support the PCI pvpanic device"));
+ return -1;
+ }
+
+ if (def->panics[i]->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("pvpanic is supported only with PCI address type"));
+ return -1;
+ }
+ break;
+
/* default model value was changed before in post parse */
case VIR_DOMAIN_PANIC_MODEL_DEFAULT:
case VIR_DOMAIN_PANIC_MODEL_LAST: