}
+/**
+ * qemuDeviceVideoGetModel:
+ * @qemuCaps: qemu capabilities
+ * @video: video device definition
+ * @virtio: the returned video device is a 'virtio' device
+ * @virtioBusSuffix: the returned device needs to get the bus-suffix
+ *
+ * Returns the model fo the device for @video and @qemuCaps. @virtio and
+ * @virtioBusSuffix are filled with the corresponding flags.
+ */
static const char *
qemuDeviceVideoGetModel(virQEMUCaps *qemuCaps,
const virDomainVideoDef *video,
- bool *virtio)
+ bool *virtio,
+ bool *virtioBusSuffix)
{
const char *model = NULL;
bool primaryVga = false;
virTristateSwitch accel3d = VIR_TRISTATE_SWITCH_ABSENT;
*virtio = false;
+ *virtioBusSuffix = false;
if (video->accel)
accel3d = video->accel->accel3d;
} else {
model = "vhost-user-gpu";
*virtio = true;
+ *virtioBusSuffix = true;
}
} else {
if (primaryVga) {
model = "virtio-vga-gl";
else
model = "virtio-vga";
+
+ *virtio = true;
+ *virtioBusSuffix = false;
break;
case VIR_DOMAIN_VIDEO_TYPE_BOCHS:
model = "bochs-display";
model = "virtio-gpu-gl";
else
model = "virtio-gpu";
+
*virtio = true;
+ *virtioBusSuffix = true;
break;
case VIR_DOMAIN_VIDEO_TYPE_DEFAULT:
case VIR_DOMAIN_VIDEO_TYPE_VGA:
const char *model = NULL;
virTristateSwitch accel3d = VIR_TRISTATE_SWITCH_ABSENT;
bool virtio = false;
+ bool virtioBusSuffix = false;
if (video->accel)
accel3d = video->accel->accel3d;
- if (!(model = qemuDeviceVideoGetModel(qemuCaps, video, &virtio)))
+ if (!(model = qemuDeviceVideoGetModel(qemuCaps, video, &virtio, &virtioBusSuffix)))
return NULL;
- if (virtio) {
+ if (virtioBusSuffix) {
if (qemuBuildVirtioDevStr(&buf, model, qemuCaps,
VIR_DOMAIN_DEVICE_VIDEO, video) < 0) {
return NULL;