mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
Introduce QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY
Check whether the disable-legacy property is present on the following devices: virtio-balloon-pci virtio-blk-pci virtio-scsi-pci virtio-serial-pci virtio-9p-pci virtio-net-pci virtio-rng-pci virtio-gpu-pci virtio-input-host-pci virtio-keyboard-pci virtio-mouse-pci virtio-tablet-pci Assuming that if QEMU knows other virtio devices where this property is applicable, it will have at least one of these devices. Added in QEMU by: commit e266d421490e0ae83044bbebb209b2d3650c0ba6 virtio-pci: add flags to enable/disable legacy/modern
This commit is contained in:
parent
d53d465083
commit
41f5c2ca27
@ -340,6 +340,7 @@ VIR_ENUM_IMPL(virQEMUCaps, QEMU_CAPS_LAST,
|
|||||||
"display", /* 230 */
|
"display", /* 230 */
|
||||||
"intel-iommu",
|
"intel-iommu",
|
||||||
"smm",
|
"smm",
|
||||||
|
"virtio-pci-disable-legacy",
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
@ -1741,6 +1742,34 @@ static struct virQEMUCapsObjectTypeProps virQEMUCapsObjectProps[] = {
|
|||||||
ARRAY_CARDINALITY(virQEMUCapsObjectPropsUSBNECXHCI) },
|
ARRAY_CARDINALITY(virQEMUCapsObjectPropsUSBNECXHCI) },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct virQEMUCapsPropTypeObjects {
|
||||||
|
const char *prop;
|
||||||
|
int flag;
|
||||||
|
const char **objects;
|
||||||
|
};
|
||||||
|
|
||||||
|
static const char *virQEMUCapsVirtioPCIDisableLegacyObjects[] = {
|
||||||
|
"virtio-balloon-pci",
|
||||||
|
"virtio-blk-pci",
|
||||||
|
"virtio-scsi-pci",
|
||||||
|
"virtio-serial-pci",
|
||||||
|
"virtio-9p-pci",
|
||||||
|
"virtio-net-pci",
|
||||||
|
"virtio-rng-pci",
|
||||||
|
"virtio-gpu-pci",
|
||||||
|
"virtio-input-host-pci",
|
||||||
|
"virtio-keyboard-pci",
|
||||||
|
"virtio-mouse-pci",
|
||||||
|
"virtio-tablet-pci",
|
||||||
|
NULL
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct virQEMUCapsPropTypeObjects virQEMUCapsPropObjects[] = {
|
||||||
|
{ "disable-legacy",
|
||||||
|
QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY,
|
||||||
|
virQEMUCapsVirtioPCIDisableLegacyObjects }
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
virQEMUCapsProcessStringFlags(virQEMUCapsPtr qemuCaps,
|
virQEMUCapsProcessStringFlags(virQEMUCapsPtr qemuCaps,
|
||||||
@ -1761,6 +1790,31 @@ virQEMUCapsProcessStringFlags(virQEMUCapsPtr qemuCaps,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
virQEMUCapsProcessProps(virQEMUCapsPtr qemuCaps,
|
||||||
|
size_t nprops,
|
||||||
|
struct virQEMUCapsPropTypeObjects *props,
|
||||||
|
const char *object,
|
||||||
|
size_t nvalues,
|
||||||
|
char *const*values)
|
||||||
|
{
|
||||||
|
size_t i, j;
|
||||||
|
|
||||||
|
for (i = 0; i < nprops; i++) {
|
||||||
|
if (virQEMUCapsGet(qemuCaps, props[i].flag))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
for (j = 0; j < nvalues; j++) {
|
||||||
|
if (STREQ(values[j], props[i].prop)) {
|
||||||
|
if (virStringArrayHasString(props[i].objects, object))
|
||||||
|
virQEMUCapsSet(qemuCaps, props[i].flag);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
virQEMUCapsFreeStringList(size_t len,
|
virQEMUCapsFreeStringList(size_t len,
|
||||||
char **values)
|
char **values)
|
||||||
@ -2470,6 +2524,10 @@ virQEMUCapsProbeQMPObjects(virQEMUCapsPtr qemuCaps,
|
|||||||
virQEMUCapsObjectProps[i].nprops,
|
virQEMUCapsObjectProps[i].nprops,
|
||||||
virQEMUCapsObjectProps[i].props,
|
virQEMUCapsObjectProps[i].props,
|
||||||
nvalues, values);
|
nvalues, values);
|
||||||
|
virQEMUCapsProcessProps(qemuCaps,
|
||||||
|
ARRAY_CARDINALITY(virQEMUCapsPropObjects),
|
||||||
|
virQEMUCapsPropObjects, type,
|
||||||
|
nvalues, values);
|
||||||
virQEMUCapsFreeStringList(nvalues, values);
|
virQEMUCapsFreeStringList(nvalues, values);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -373,6 +373,7 @@ typedef enum {
|
|||||||
QEMU_CAPS_DISPLAY, /* -display */
|
QEMU_CAPS_DISPLAY, /* -display */
|
||||||
QEMU_CAPS_DEVICE_INTEL_IOMMU, /* -device intel-iommu */
|
QEMU_CAPS_DEVICE_INTEL_IOMMU, /* -device intel-iommu */
|
||||||
QEMU_CAPS_MACHINE_SMM_OPT, /* -machine xxx,smm=on/off/auto */
|
QEMU_CAPS_MACHINE_SMM_OPT, /* -machine xxx,smm=on/off/auto */
|
||||||
|
QEMU_CAPS_VIRTIO_PCI_DISABLE_LEGACY, /* virtio-*pci.disable-legacy */
|
||||||
|
|
||||||
QEMU_CAPS_LAST /* this must always be the last item */
|
QEMU_CAPS_LAST /* this must always be the last item */
|
||||||
} virQEMUCapsFlags;
|
} virQEMUCapsFlags;
|
||||||
|
@ -184,6 +184,7 @@
|
|||||||
<flag name='display'/>
|
<flag name='display'/>
|
||||||
<flag name='intel-iommu'/>
|
<flag name='intel-iommu'/>
|
||||||
<flag name='smm'/>
|
<flag name='smm'/>
|
||||||
|
<flag name='virtio-pci-disable-legacy'/>
|
||||||
<version>2004000</version>
|
<version>2004000</version>
|
||||||
<kvmVersion>0</kvmVersion>
|
<kvmVersion>0</kvmVersion>
|
||||||
<package></package>
|
<package></package>
|
||||||
|
@ -189,6 +189,7 @@
|
|||||||
<flag name='display'/>
|
<flag name='display'/>
|
||||||
<flag name='intel-iommu'/>
|
<flag name='intel-iommu'/>
|
||||||
<flag name='smm'/>
|
<flag name='smm'/>
|
||||||
|
<flag name='virtio-pci-disable-legacy'/>
|
||||||
<version>2005000</version>
|
<version>2005000</version>
|
||||||
<kvmVersion>0</kvmVersion>
|
<kvmVersion>0</kvmVersion>
|
||||||
<package></package>
|
<package></package>
|
||||||
|
@ -158,6 +158,7 @@
|
|||||||
<flag name='tls-creds-x509'/>
|
<flag name='tls-creds-x509'/>
|
||||||
<flag name='display'/>
|
<flag name='display'/>
|
||||||
<flag name='smm'/>
|
<flag name='smm'/>
|
||||||
|
<flag name='virtio-pci-disable-legacy'/>
|
||||||
<version>2005094</version>
|
<version>2005094</version>
|
||||||
<kvmVersion>0</kvmVersion>
|
<kvmVersion>0</kvmVersion>
|
||||||
<package></package>
|
<package></package>
|
||||||
|
@ -158,6 +158,7 @@
|
|||||||
<flag name='tls-creds-x509'/>
|
<flag name='tls-creds-x509'/>
|
||||||
<flag name='display'/>
|
<flag name='display'/>
|
||||||
<flag name='smm'/>
|
<flag name='smm'/>
|
||||||
|
<flag name='virtio-pci-disable-legacy'/>
|
||||||
<version>2005094</version>
|
<version>2005094</version>
|
||||||
<kvmVersion>0</kvmVersion>
|
<kvmVersion>0</kvmVersion>
|
||||||
<package></package>
|
<package></package>
|
||||||
|
@ -152,6 +152,7 @@
|
|||||||
<flag name='tls-creds-x509'/>
|
<flag name='tls-creds-x509'/>
|
||||||
<flag name='display'/>
|
<flag name='display'/>
|
||||||
<flag name='smm'/>
|
<flag name='smm'/>
|
||||||
|
<flag name='virtio-pci-disable-legacy'/>
|
||||||
<version>2005094</version>
|
<version>2005094</version>
|
||||||
<kvmVersion>0</kvmVersion>
|
<kvmVersion>0</kvmVersion>
|
||||||
<package></package>
|
<package></package>
|
||||||
|
@ -195,6 +195,7 @@
|
|||||||
<flag name='display'/>
|
<flag name='display'/>
|
||||||
<flag name='intel-iommu'/>
|
<flag name='intel-iommu'/>
|
||||||
<flag name='smm'/>
|
<flag name='smm'/>
|
||||||
|
<flag name='virtio-pci-disable-legacy'/>
|
||||||
<version>2006000</version>
|
<version>2006000</version>
|
||||||
<kvmVersion>0</kvmVersion>
|
<kvmVersion>0</kvmVersion>
|
||||||
<package></package>
|
<package></package>
|
||||||
|
@ -192,6 +192,7 @@
|
|||||||
<flag name='display'/>
|
<flag name='display'/>
|
||||||
<flag name='intel-iommu'/>
|
<flag name='intel-iommu'/>
|
||||||
<flag name='smm'/>
|
<flag name='smm'/>
|
||||||
|
<flag name='virtio-pci-disable-legacy'/>
|
||||||
<version>2006091</version>
|
<version>2006091</version>
|
||||||
<kvmVersion>0</kvmVersion>
|
<kvmVersion>0</kvmVersion>
|
||||||
<package> (v2.7.0-rc1-52-g42e0d60)</package>
|
<package> (v2.7.0-rc1-52-g42e0d60)</package>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user