mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-02 13:47:13 +03:00
conf: Introduce virtio model for <iommu>
Signed-off-by: Andrea Bolognani <abologna@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
672c227037
commit
579f430e3e
@ -1287,6 +1287,7 @@ VIR_ENUM_IMPL(virDomainIOMMUModel,
|
||||
VIR_DOMAIN_IOMMU_MODEL_LAST,
|
||||
"intel",
|
||||
"smmuv3",
|
||||
"virtio",
|
||||
);
|
||||
|
||||
VIR_ENUM_IMPL(virDomainVsockModel,
|
||||
|
@ -2755,6 +2755,7 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC(virDomainSecDef, virDomainSecDefFree);
|
||||
typedef enum {
|
||||
VIR_DOMAIN_IOMMU_MODEL_INTEL,
|
||||
VIR_DOMAIN_IOMMU_MODEL_SMMUV3,
|
||||
VIR_DOMAIN_IOMMU_MODEL_VIRTIO,
|
||||
|
||||
VIR_DOMAIN_IOMMU_MODEL_LAST
|
||||
} virDomainIOMMUModel;
|
||||
|
@ -5457,6 +5457,7 @@
|
||||
<choice>
|
||||
<value>intel</value>
|
||||
<value>smmuv3</value>
|
||||
<value>virtio</value>
|
||||
</choice>
|
||||
</attribute>
|
||||
<optional>
|
||||
|
@ -6451,6 +6451,9 @@ qemuBuildIOMMUCommandLine(virCommand *cmd,
|
||||
|
||||
return 0;
|
||||
|
||||
case VIR_DOMAIN_IOMMU_MODEL_VIRTIO:
|
||||
return 0;
|
||||
|
||||
case VIR_DOMAIN_IOMMU_MODEL_SMMUV3:
|
||||
/* There is no -device for SMMUv3, so nothing to be done here */
|
||||
return 0;
|
||||
@ -7037,6 +7040,7 @@ qemuBuildMachineCommandLine(virCommand *cmd,
|
||||
break;
|
||||
|
||||
case VIR_DOMAIN_IOMMU_MODEL_INTEL:
|
||||
case VIR_DOMAIN_IOMMU_MODEL_VIRTIO:
|
||||
/* These IOMMUs are formatted in qemuBuildIOMMUCommandLine */
|
||||
break;
|
||||
|
||||
|
@ -1004,6 +1004,9 @@ qemuDomainDeviceCalculatePCIConnectFlags(virDomainDeviceDef *dev,
|
||||
|
||||
case VIR_DOMAIN_DEVICE_IOMMU:
|
||||
switch ((virDomainIOMMUModel) dev->data.iommu->model) {
|
||||
case VIR_DOMAIN_IOMMU_MODEL_VIRTIO:
|
||||
return 0;
|
||||
|
||||
case VIR_DOMAIN_IOMMU_MODEL_INTEL:
|
||||
case VIR_DOMAIN_IOMMU_MODEL_SMMUV3:
|
||||
case VIR_DOMAIN_IOMMU_MODEL_LAST:
|
||||
@ -2382,6 +2385,9 @@ qemuDomainAssignDevicePCISlots(virDomainDef *def,
|
||||
virDomainIOMMUDef *iommu = def->iommu;
|
||||
|
||||
switch ((virDomainIOMMUModel) iommu->model) {
|
||||
case VIR_DOMAIN_IOMMU_MODEL_VIRTIO:
|
||||
break;
|
||||
|
||||
case VIR_DOMAIN_IOMMU_MODEL_INTEL:
|
||||
case VIR_DOMAIN_IOMMU_MODEL_SMMUV3:
|
||||
case VIR_DOMAIN_IOMMU_MODEL_LAST:
|
||||
|
@ -4865,6 +4865,9 @@ qemuValidateDomainDeviceDefIOMMU(const virDomainIOMMUDef *iommu,
|
||||
}
|
||||
break;
|
||||
|
||||
case VIR_DOMAIN_IOMMU_MODEL_VIRTIO:
|
||||
break;
|
||||
|
||||
case VIR_DOMAIN_IOMMU_MODEL_LAST:
|
||||
default:
|
||||
virReportEnumRangeError(virDomainIOMMUModel, iommu->model);
|
||||
|
Loading…
x
Reference in New Issue
Block a user