]> xenbits.xensource.com Git - libvirt.git/commitdiff
vbox: move video default logic to driver
authorRafael Fonseca <r4f4rfs@gmail.com>
Tue, 24 Mar 2020 16:14:35 +0000 (17:14 +0100)
committerMichal Privoznik <mprivozn@redhat.com>
Wed, 25 Mar 2020 08:31:33 +0000 (09:31 +0100)
The logic setting a device default should be in the post parse function
of individual driver code.

Signed-off-by: Rafael Fonseca <r4f4rfs@gmail.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/conf/domain_conf.c
src/vbox/vbox_common.c

index 53fd13e80ff9db233f7de46fd5e2d631bc5b7448..665bb10b2720200a444c12cd4709947ef16b4906 100644 (file)
@@ -15716,8 +15716,6 @@ virDomainVideoDefaultType(const virDomainDef *def)
 {
     switch ((virDomainVirtType)def->virtType) {
     case VIR_DOMAIN_VIRT_VBOX:
-        return VIR_DOMAIN_VIDEO_TYPE_VBOX;
-
     case VIR_DOMAIN_VIRT_TEST:
     case VIR_DOMAIN_VIRT_VMWARE:
     case VIR_DOMAIN_VIRT_VZ:
index 618663952acf9f24933603ac78ffef13885e284f..e98ae04ec04b4b47760912779df9de1a51f384c3 100644 (file)
@@ -62,9 +62,25 @@ static virMutex vbox_driver_lock = VIR_MUTEX_INITIALIZER;
 static vboxDriverPtr vbox_driver;
 static vboxDriverPtr vboxDriverObjNew(void);
 
+static int
+vboxDomainDevicesDefPostParse(virDomainDeviceDefPtr dev G_GNUC_UNUSED,
+                              const virDomainDef *def G_GNUC_UNUSED,
+                              unsigned int parseFlags G_GNUC_UNUSED,
+                              void *opaque G_GNUC_UNUSED,
+                              void *parseOpaque G_GNUC_UNUSED)
+{
+    if (dev->type == VIR_DOMAIN_DEVICE_VIDEO &&
+        dev->data.video->type == VIR_DOMAIN_VIDEO_TYPE_DEFAULT) {
+        dev->data.video->type = VIR_DOMAIN_VIDEO_TYPE_VBOX;
+    }
+
+    return 0;
+}
+
 static virDomainDefParserConfig vboxDomainDefParserConfig = {
     .macPrefix = { 0x08, 0x00, 0x27 },
     .features = VIR_DOMAIN_DEF_FEATURE_NAME_SLASH,
+    .devicesPostParseCallback = vboxDomainDevicesDefPostParse,
 };
 
 static virCapsPtr