mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 05:35:25 +00:00
conf: move/rename hostdev PCI driver type enum to device_conf.h
Currently this enum is defined in domain_conf.h and named virDomainHostdevSubsysPCIDriverType. I want to use it in parts of the network and networkport config, so am moving its definition to device_conf.h which is / can be included by all interested parties, and renaming it to match the name of the corresponding XML attribute ("driver name"). The name change (which includes enum values) does cause a lot of churn, but it's all mechanical. Signed-off-by: Laine Stump <laine@redhat.com> Reviewed-by: Peter Krempa <pkrempa@redhat.com>
This commit is contained in:
parent
deefaf8f1c
commit
a435e7e6c8
@ -29,6 +29,15 @@
|
|||||||
|
|
||||||
#define VIR_FROM_THIS VIR_FROM_DEVICE
|
#define VIR_FROM_THIS VIR_FROM_DEVICE
|
||||||
|
|
||||||
|
VIR_ENUM_IMPL(virDeviceHostdevPCIDriverName,
|
||||||
|
VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_LAST,
|
||||||
|
"default",
|
||||||
|
"kvm",
|
||||||
|
"vfio",
|
||||||
|
"xen",
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
VIR_ENUM_IMPL(virDomainDeviceAddress,
|
VIR_ENUM_IMPL(virDomainDeviceAddress,
|
||||||
VIR_DOMAIN_DEVICE_ADDRESS_TYPE_LAST,
|
VIR_DOMAIN_DEVICE_ADDRESS_TYPE_LAST,
|
||||||
"none",
|
"none",
|
||||||
|
@ -31,6 +31,18 @@
|
|||||||
#include "virnetdev.h"
|
#include "virnetdev.h"
|
||||||
#include "virenum.h"
|
#include "virenum.h"
|
||||||
|
|
||||||
|
/* the backend driver used for PCI hostdev devices */
|
||||||
|
typedef enum {
|
||||||
|
VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_DEFAULT = 0, /* detect automatically, prefer VFIO */
|
||||||
|
VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_KVM, /* force legacy kvm style */
|
||||||
|
VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_VFIO, /* force vfio */
|
||||||
|
VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_XEN, /* force legacy xen style, use pciback */
|
||||||
|
|
||||||
|
VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_LAST
|
||||||
|
} virDeviceHostdevPCIDriverName;
|
||||||
|
|
||||||
|
VIR_ENUM_DECL(virDeviceHostdevPCIDriverName);
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE = 0,
|
VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE = 0,
|
||||||
VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI,
|
VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI,
|
||||||
|
@ -524,7 +524,7 @@ virDomainCapsDeviceHostdevFormat(virBuffer *buf,
|
|||||||
ENUM_PROCESS(hostdev, startupPolicy, virDomainStartupPolicyTypeToString);
|
ENUM_PROCESS(hostdev, startupPolicy, virDomainStartupPolicyTypeToString);
|
||||||
ENUM_PROCESS(hostdev, subsysType, virDomainHostdevSubsysTypeToString);
|
ENUM_PROCESS(hostdev, subsysType, virDomainHostdevSubsysTypeToString);
|
||||||
ENUM_PROCESS(hostdev, capsType, virDomainHostdevCapsTypeToString);
|
ENUM_PROCESS(hostdev, capsType, virDomainHostdevCapsTypeToString);
|
||||||
ENUM_PROCESS(hostdev, pciBackend, virDomainHostdevSubsysPCIBackendTypeToString);
|
ENUM_PROCESS(hostdev, pciBackend, virDeviceHostdevPCIDriverNameTypeToString);
|
||||||
|
|
||||||
FORMAT_EPILOGUE(hostdev);
|
FORMAT_EPILOGUE(hostdev);
|
||||||
}
|
}
|
||||||
|
@ -99,7 +99,7 @@ STATIC_ASSERT_ENUM(VIR_DOMAIN_HOSTDEV_MODE_LAST);
|
|||||||
STATIC_ASSERT_ENUM(VIR_DOMAIN_STARTUP_POLICY_LAST);
|
STATIC_ASSERT_ENUM(VIR_DOMAIN_STARTUP_POLICY_LAST);
|
||||||
STATIC_ASSERT_ENUM(VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_LAST);
|
STATIC_ASSERT_ENUM(VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_LAST);
|
||||||
STATIC_ASSERT_ENUM(VIR_DOMAIN_HOSTDEV_CAPS_TYPE_LAST);
|
STATIC_ASSERT_ENUM(VIR_DOMAIN_HOSTDEV_CAPS_TYPE_LAST);
|
||||||
STATIC_ASSERT_ENUM(VIR_DOMAIN_HOSTDEV_PCI_BACKEND_TYPE_LAST);
|
STATIC_ASSERT_ENUM(VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_LAST);
|
||||||
typedef struct _virDomainCapsDeviceHostdev virDomainCapsDeviceHostdev;
|
typedef struct _virDomainCapsDeviceHostdev virDomainCapsDeviceHostdev;
|
||||||
struct _virDomainCapsDeviceHostdev {
|
struct _virDomainCapsDeviceHostdev {
|
||||||
virTristateBool supported;
|
virTristateBool supported;
|
||||||
|
@ -1054,13 +1054,6 @@ VIR_ENUM_IMPL(virDomainHostdevSubsys,
|
|||||||
"mdev",
|
"mdev",
|
||||||
);
|
);
|
||||||
|
|
||||||
VIR_ENUM_IMPL(virDomainHostdevSubsysPCIBackend,
|
|
||||||
VIR_DOMAIN_HOSTDEV_PCI_BACKEND_TYPE_LAST,
|
|
||||||
"default",
|
|
||||||
"kvm",
|
|
||||||
"vfio",
|
|
||||||
"xen",
|
|
||||||
);
|
|
||||||
|
|
||||||
VIR_ENUM_IMPL(virDomainHostdevSubsysSCSIProtocol,
|
VIR_ENUM_IMPL(virDomainHostdevSubsysSCSIProtocol,
|
||||||
VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_LAST,
|
VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_LAST,
|
||||||
@ -6292,7 +6285,7 @@ virDomainHostdevDefParseXMLSubsys(xmlNodePtr node,
|
|||||||
|
|
||||||
driver_node = virXPathNode("./driver", ctxt);
|
driver_node = virXPathNode("./driver", ctxt);
|
||||||
if (virXMLPropEnum(driver_node, "name",
|
if (virXMLPropEnum(driver_node, "name",
|
||||||
virDomainHostdevSubsysPCIBackendTypeFromString,
|
virDeviceHostdevPCIDriverNameTypeFromString,
|
||||||
VIR_XML_PROP_NONZERO,
|
VIR_XML_PROP_NONZERO,
|
||||||
&pcisrc->backend) < 0)
|
&pcisrc->backend) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
@ -23438,8 +23431,8 @@ virDomainHostdevDefFormatSubsysPCI(virBuffer *buf,
|
|||||||
virBufferAsprintf(&sourceAttrBuf, " writeFiltering='%s'",
|
virBufferAsprintf(&sourceAttrBuf, " writeFiltering='%s'",
|
||||||
virTristateBoolTypeToString(def->writeFiltering));
|
virTristateBoolTypeToString(def->writeFiltering));
|
||||||
|
|
||||||
if (pcisrc->backend != VIR_DOMAIN_HOSTDEV_PCI_BACKEND_DEFAULT) {
|
if (pcisrc->backend != VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_DEFAULT) {
|
||||||
const char *backend = virDomainHostdevSubsysPCIBackendTypeToString(pcisrc->backend);
|
const char *backend = virDeviceHostdevPCIDriverNameTypeToString(pcisrc->backend);
|
||||||
|
|
||||||
if (!backend) {
|
if (!backend) {
|
||||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||||
@ -29970,18 +29963,15 @@ virDomainNetDefActualFromNetworkPort(virDomainNetDef *iface,
|
|||||||
actual->data.hostdev.def.source.subsys.u.pci.addr = port->plug.hostdevpci.addr;
|
actual->data.hostdev.def.source.subsys.u.pci.addr = port->plug.hostdevpci.addr;
|
||||||
switch ((virNetworkForwardDriverNameType)port->plug.hostdevpci.driver) {
|
switch ((virNetworkForwardDriverNameType)port->plug.hostdevpci.driver) {
|
||||||
case VIR_NETWORK_FORWARD_DRIVER_NAME_DEFAULT:
|
case VIR_NETWORK_FORWARD_DRIVER_NAME_DEFAULT:
|
||||||
actual->data.hostdev.def.source.subsys.u.pci.backend =
|
actual->data.hostdev.def.source.subsys.u.pci.backend = VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_DEFAULT;
|
||||||
VIR_DOMAIN_HOSTDEV_PCI_BACKEND_DEFAULT;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VIR_NETWORK_FORWARD_DRIVER_NAME_KVM:
|
case VIR_NETWORK_FORWARD_DRIVER_NAME_KVM:
|
||||||
actual->data.hostdev.def.source.subsys.u.pci.backend =
|
actual->data.hostdev.def.source.subsys.u.pci.backend = VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_KVM;
|
||||||
VIR_DOMAIN_HOSTDEV_PCI_BACKEND_KVM;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VIR_NETWORK_FORWARD_DRIVER_NAME_VFIO:
|
case VIR_NETWORK_FORWARD_DRIVER_NAME_VFIO:
|
||||||
actual->data.hostdev.def.source.subsys.u.pci.backend =
|
actual->data.hostdev.def.source.subsys.u.pci.backend = VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_VFIO;
|
||||||
VIR_DOMAIN_HOSTDEV_PCI_BACKEND_VFIO;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VIR_NETWORK_FORWARD_DRIVER_NAME_LAST:
|
case VIR_NETWORK_FORWARD_DRIVER_NAME_LAST:
|
||||||
@ -30092,26 +30082,26 @@ virDomainNetDefActualToNetworkPort(virDomainDef *dom,
|
|||||||
port->plug.hostdevpci.managed = virTristateBoolFromBool(actual->data.hostdev.def.managed);
|
port->plug.hostdevpci.managed = virTristateBoolFromBool(actual->data.hostdev.def.managed);
|
||||||
port->plug.hostdevpci.addr = actual->data.hostdev.def.source.subsys.u.pci.addr;
|
port->plug.hostdevpci.addr = actual->data.hostdev.def.source.subsys.u.pci.addr;
|
||||||
switch (actual->data.hostdev.def.source.subsys.u.pci.backend) {
|
switch (actual->data.hostdev.def.source.subsys.u.pci.backend) {
|
||||||
case VIR_DOMAIN_HOSTDEV_PCI_BACKEND_DEFAULT:
|
case VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_DEFAULT:
|
||||||
port->plug.hostdevpci.driver = VIR_NETWORK_FORWARD_DRIVER_NAME_DEFAULT;
|
port->plug.hostdevpci.driver = VIR_NETWORK_FORWARD_DRIVER_NAME_DEFAULT;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VIR_DOMAIN_HOSTDEV_PCI_BACKEND_KVM:
|
case VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_KVM:
|
||||||
port->plug.hostdevpci.driver = VIR_NETWORK_FORWARD_DRIVER_NAME_KVM;
|
port->plug.hostdevpci.driver = VIR_NETWORK_FORWARD_DRIVER_NAME_KVM;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VIR_DOMAIN_HOSTDEV_PCI_BACKEND_VFIO:
|
case VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_VFIO:
|
||||||
port->plug.hostdevpci.driver = VIR_NETWORK_FORWARD_DRIVER_NAME_VFIO;
|
port->plug.hostdevpci.driver = VIR_NETWORK_FORWARD_DRIVER_NAME_VFIO;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VIR_DOMAIN_HOSTDEV_PCI_BACKEND_XEN:
|
case VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_XEN:
|
||||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||||
_("Unexpected PCI backend 'xen'"));
|
_("Unexpected PCI backend 'xen'"));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VIR_DOMAIN_HOSTDEV_PCI_BACKEND_TYPE_LAST:
|
case VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_LAST:
|
||||||
default:
|
default:
|
||||||
virReportEnumRangeError(virDomainHostdevSubsysPCIBackendType,
|
virReportEnumRangeError(virDeviceHostdevPCIDriverName,
|
||||||
actual->data.hostdev.def.source.subsys.u.pci.backend);
|
actual->data.hostdev.def.source.subsys.u.pci.backend);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@ -31056,7 +31046,7 @@ virHostdevIsVFIODevice(const virDomainHostdevDef *hostdev)
|
|||||||
{
|
{
|
||||||
return hostdev->mode == VIR_DOMAIN_HOSTDEV_MODE_SUBSYS &&
|
return hostdev->mode == VIR_DOMAIN_HOSTDEV_MODE_SUBSYS &&
|
||||||
hostdev->source.subsys.type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI &&
|
hostdev->source.subsys.type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI &&
|
||||||
hostdev->source.subsys.u.pci.backend == VIR_DOMAIN_HOSTDEV_PCI_BACKEND_VFIO;
|
hostdev->source.subsys.u.pci.backend == VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_VFIO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -201,18 +201,6 @@ typedef enum {
|
|||||||
VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_LAST
|
VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_LAST
|
||||||
} virDomainHostdevSubsysType;
|
} virDomainHostdevSubsysType;
|
||||||
|
|
||||||
/* the backend driver used for PCI hostdev devices */
|
|
||||||
typedef enum {
|
|
||||||
VIR_DOMAIN_HOSTDEV_PCI_BACKEND_DEFAULT = 0, /* detect automatically, prefer VFIO */
|
|
||||||
VIR_DOMAIN_HOSTDEV_PCI_BACKEND_KVM, /* force legacy kvm style */
|
|
||||||
VIR_DOMAIN_HOSTDEV_PCI_BACKEND_VFIO, /* force vfio */
|
|
||||||
VIR_DOMAIN_HOSTDEV_PCI_BACKEND_XEN, /* force legacy xen style, use pciback */
|
|
||||||
|
|
||||||
VIR_DOMAIN_HOSTDEV_PCI_BACKEND_TYPE_LAST
|
|
||||||
} virDomainHostdevSubsysPCIBackendType;
|
|
||||||
|
|
||||||
VIR_ENUM_DECL(virDomainHostdevSubsysPCIBackend);
|
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_NONE,
|
VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_NONE,
|
||||||
VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_ISCSI,
|
VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_ISCSI,
|
||||||
@ -247,7 +235,7 @@ struct _virDomainHostdevSubsysUSB {
|
|||||||
|
|
||||||
struct _virDomainHostdevSubsysPCI {
|
struct _virDomainHostdevSubsysPCI {
|
||||||
virPCIDeviceAddress addr; /* host address */
|
virPCIDeviceAddress addr; /* host address */
|
||||||
virDomainHostdevSubsysPCIBackendType backend;
|
virDeviceHostdevPCIDriverName backend;
|
||||||
|
|
||||||
virBitmap *origstates;
|
virBitmap *origstates;
|
||||||
};
|
};
|
||||||
|
@ -243,14 +243,14 @@ virHostdevGetPCIHostDevice(const virDomainHostdevDef *hostdev,
|
|||||||
|
|
||||||
virPCIDeviceSetManaged(actual, hostdev->managed);
|
virPCIDeviceSetManaged(actual, hostdev->managed);
|
||||||
|
|
||||||
if (pcisrc->backend == VIR_DOMAIN_HOSTDEV_PCI_BACKEND_VFIO) {
|
if (pcisrc->backend == VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_VFIO) {
|
||||||
virPCIDeviceSetStubDriverType(actual, VIR_PCI_STUB_DRIVER_VFIO);
|
virPCIDeviceSetStubDriverType(actual, VIR_PCI_STUB_DRIVER_VFIO);
|
||||||
} else if (pcisrc->backend == VIR_DOMAIN_HOSTDEV_PCI_BACKEND_XEN) {
|
} else if (pcisrc->backend == VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_XEN) {
|
||||||
virPCIDeviceSetStubDriverType(actual, VIR_PCI_STUB_DRIVER_XEN);
|
virPCIDeviceSetStubDriverType(actual, VIR_PCI_STUB_DRIVER_XEN);
|
||||||
} else {
|
} else {
|
||||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||||
_("pci backend driver '%1$s' is not supported"),
|
_("pci backend driver type '%1$s' is not supported"),
|
||||||
virDomainHostdevSubsysPCIBackendTypeToString(pcisrc->backend));
|
virDeviceHostdevPCIDriverNameTypeToString(pcisrc->backend));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -126,6 +126,7 @@ virCPUModeTypeToString;
|
|||||||
|
|
||||||
# conf/device_conf.h
|
# conf/device_conf.h
|
||||||
virCCWDeviceAddressParseXML;
|
virCCWDeviceAddressParseXML;
|
||||||
|
virDeviceHostdevPCIDriverNameTypeToString;
|
||||||
virDeviceInfoPCIAddressExtensionIsPresent;
|
virDeviceInfoPCIAddressExtensionIsPresent;
|
||||||
virDeviceInfoPCIAddressExtensionIsWanted;
|
virDeviceInfoPCIAddressExtensionIsWanted;
|
||||||
virDeviceInfoPCIAddressIsPresent;
|
virDeviceInfoPCIAddressIsPresent;
|
||||||
@ -467,7 +468,6 @@ virDomainHostdevInsert;
|
|||||||
virDomainHostdevMatch;
|
virDomainHostdevMatch;
|
||||||
virDomainHostdevModeTypeToString;
|
virDomainHostdevModeTypeToString;
|
||||||
virDomainHostdevRemove;
|
virDomainHostdevRemove;
|
||||||
virDomainHostdevSubsysPCIBackendTypeToString;
|
|
||||||
virDomainHostdevSubsysSCSIVHostModelTypeFromString;
|
virDomainHostdevSubsysSCSIVHostModelTypeFromString;
|
||||||
virDomainHostdevSubsysSCSIVHostModelTypeToString;
|
virDomainHostdevSubsysSCSIVHostModelTypeToString;
|
||||||
virDomainHostdevSubsysTypeToString;
|
virDomainHostdevSubsysTypeToString;
|
||||||
|
@ -623,8 +623,7 @@ libxlMakeDomainDeviceHostdevCaps(virDomainCapsDeviceHostdev *dev)
|
|||||||
virDomainCapsEnumClear(&dev->capsType);
|
virDomainCapsEnumClear(&dev->capsType);
|
||||||
|
|
||||||
virDomainCapsEnumClear(&dev->pciBackend);
|
virDomainCapsEnumClear(&dev->pciBackend);
|
||||||
VIR_DOMAIN_CAPS_ENUM_SET(dev->pciBackend,
|
VIR_DOMAIN_CAPS_ENUM_SET(dev->pciBackend, VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_XEN);
|
||||||
VIR_DOMAIN_HOSTDEV_PCI_BACKEND_XEN);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -160,8 +160,8 @@ libxlDomainDeviceDefPostParse(virDomainDeviceDef *dev,
|
|||||||
|
|
||||||
if (hostdev->mode == VIR_DOMAIN_HOSTDEV_MODE_SUBSYS &&
|
if (hostdev->mode == VIR_DOMAIN_HOSTDEV_MODE_SUBSYS &&
|
||||||
hostdev->source.subsys.type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI &&
|
hostdev->source.subsys.type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI &&
|
||||||
pcisrc->backend == VIR_DOMAIN_HOSTDEV_PCI_BACKEND_DEFAULT)
|
pcisrc->backend == VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_DEFAULT)
|
||||||
pcisrc->backend = VIR_DOMAIN_HOSTDEV_PCI_BACKEND_XEN;
|
pcisrc->backend = VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_XEN;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dev->type == VIR_DOMAIN_DEVICE_VIDEO) {
|
if (dev->type == VIR_DOMAIN_DEVICE_VIDEO) {
|
||||||
@ -997,7 +997,7 @@ libxlNetworkPrepareDevices(virDomainDef *def)
|
|||||||
|
|
||||||
if (hostdev->mode == VIR_DOMAIN_HOSTDEV_MODE_SUBSYS &&
|
if (hostdev->mode == VIR_DOMAIN_HOSTDEV_MODE_SUBSYS &&
|
||||||
hostdev->source.subsys.type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI)
|
hostdev->source.subsys.type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI)
|
||||||
pcisrc->backend = VIR_DOMAIN_HOSTDEV_PCI_BACKEND_XEN;
|
pcisrc->backend = VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_XEN;
|
||||||
|
|
||||||
if (virDomainHostdevInsert(def, hostdev) < 0)
|
if (virDomainHostdevInsert(def, hostdev) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -3398,12 +3398,12 @@ libxlDomainAttachNetDevice(libxlDriverPrivate *driver,
|
|||||||
virDomainHostdevSubsysPCI *pcisrc = &hostdev->source.subsys.u.pci;
|
virDomainHostdevSubsysPCI *pcisrc = &hostdev->source.subsys.u.pci;
|
||||||
|
|
||||||
/* For those just allocated from a network pool whose backend is
|
/* For those just allocated from a network pool whose backend is
|
||||||
* still VIR_DOMAIN_HOSTDEV_PCI_BACKEND_DEFAULT, we need to set
|
* still VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_DEFAULT, we need to set
|
||||||
* backend correctly.
|
* backend correctly.
|
||||||
*/
|
*/
|
||||||
if (hostdev->mode == VIR_DOMAIN_HOSTDEV_MODE_SUBSYS &&
|
if (hostdev->mode == VIR_DOMAIN_HOSTDEV_MODE_SUBSYS &&
|
||||||
hostdev->source.subsys.type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI)
|
hostdev->source.subsys.type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI)
|
||||||
pcisrc->backend = VIR_DOMAIN_HOSTDEV_PCI_BACKEND_XEN;
|
pcisrc->backend = VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_XEN;
|
||||||
|
|
||||||
/* This is really a "smart hostdev", so it should be attached
|
/* This is really a "smart hostdev", so it should be attached
|
||||||
* as a hostdev (the hostdev code will reach over into the
|
* as a hostdev (the hostdev code will reach over into the
|
||||||
|
@ -6351,8 +6351,8 @@ virQEMUCapsFillDomainDeviceHostdevCaps(virQEMUCaps *qemuCaps,
|
|||||||
if (supportsPassthroughVFIO &&
|
if (supportsPassthroughVFIO &&
|
||||||
virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VFIO_PCI)) {
|
virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VFIO_PCI)) {
|
||||||
VIR_DOMAIN_CAPS_ENUM_SET(hostdev->pciBackend,
|
VIR_DOMAIN_CAPS_ENUM_SET(hostdev->pciBackend,
|
||||||
VIR_DOMAIN_HOSTDEV_PCI_BACKEND_DEFAULT,
|
VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_DEFAULT,
|
||||||
VIR_DOMAIN_HOSTDEV_PCI_BACKEND_VFIO);
|
VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_VFIO);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4709,16 +4709,16 @@ qemuBuildPCIHostdevDevProps(const virDomainDef *def,
|
|||||||
|
|
||||||
/* caller has to assign proper passthrough backend type */
|
/* caller has to assign proper passthrough backend type */
|
||||||
switch (pcisrc->backend) {
|
switch (pcisrc->backend) {
|
||||||
case VIR_DOMAIN_HOSTDEV_PCI_BACKEND_VFIO:
|
case VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_VFIO:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VIR_DOMAIN_HOSTDEV_PCI_BACKEND_KVM:
|
case VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_KVM:
|
||||||
case VIR_DOMAIN_HOSTDEV_PCI_BACKEND_DEFAULT:
|
case VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_DEFAULT:
|
||||||
case VIR_DOMAIN_HOSTDEV_PCI_BACKEND_XEN:
|
case VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_XEN:
|
||||||
case VIR_DOMAIN_HOSTDEV_PCI_BACKEND_TYPE_LAST:
|
case VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_LAST:
|
||||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||||
_("invalid PCI passthrough type '%1$s'"),
|
_("invalid PCI passthrough type '%1$s'"),
|
||||||
virDomainHostdevSubsysPCIBackendTypeToString(pcisrc->backend));
|
virDeviceHostdevPCIDriverNameTypeToString(pcisrc->backend));
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10534,7 +10534,7 @@ qemuDomainGetHostdevPath(virDomainHostdevDef *dev,
|
|||||||
case VIR_DOMAIN_HOSTDEV_MODE_SUBSYS:
|
case VIR_DOMAIN_HOSTDEV_MODE_SUBSYS:
|
||||||
switch (dev->source.subsys.type) {
|
switch (dev->source.subsys.type) {
|
||||||
case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI:
|
case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI:
|
||||||
if (pcisrc->backend == VIR_DOMAIN_HOSTDEV_PCI_BACKEND_VFIO) {
|
if (pcisrc->backend == VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_VFIO) {
|
||||||
if (!(tmpPath = virPCIDeviceAddressGetIOMMUGroupDev(&pcisrc->addr)))
|
if (!(tmpPath = virPCIDeviceAddressGetIOMMUGroupDev(&pcisrc->addr)))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
@ -11305,14 +11305,14 @@ qemuDomainPrepareHostdevPCI(virDomainHostdevDef *hostdev,
|
|||||||
virQEMUCaps *qemuCaps)
|
virQEMUCaps *qemuCaps)
|
||||||
{
|
{
|
||||||
bool supportsPassthroughVFIO = qemuHostdevHostSupportsPassthroughVFIO();
|
bool supportsPassthroughVFIO = qemuHostdevHostSupportsPassthroughVFIO();
|
||||||
virDomainHostdevSubsysPCIBackendType *backend = &hostdev->source.subsys.u.pci.backend;
|
virDeviceHostdevPCIDriverName *driverName = &hostdev->source.subsys.u.pci.backend;
|
||||||
|
|
||||||
/* assign defaults for hostdev passthrough */
|
/* assign defaults for hostdev passthrough */
|
||||||
switch (*backend) {
|
switch (*driverName) {
|
||||||
case VIR_DOMAIN_HOSTDEV_PCI_BACKEND_DEFAULT:
|
case VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_DEFAULT:
|
||||||
if (supportsPassthroughVFIO) {
|
if (supportsPassthroughVFIO) {
|
||||||
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VFIO_PCI)) {
|
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VFIO_PCI)) {
|
||||||
*backend = VIR_DOMAIN_HOSTDEV_PCI_BACKEND_VFIO;
|
*driverName = VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_VFIO;
|
||||||
} else {
|
} else {
|
||||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||||
_("VFIO PCI device assignment is not supported by this version of QEMU"));
|
_("VFIO PCI device assignment is not supported by this version of QEMU"));
|
||||||
@ -11325,7 +11325,7 @@ qemuDomainPrepareHostdevPCI(virDomainHostdevDef *hostdev,
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VIR_DOMAIN_HOSTDEV_PCI_BACKEND_VFIO:
|
case VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_VFIO:
|
||||||
if (!supportsPassthroughVFIO) {
|
if (!supportsPassthroughVFIO) {
|
||||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||||
_("host doesn't support VFIO PCI passthrough"));
|
_("host doesn't support VFIO PCI passthrough"));
|
||||||
@ -11333,20 +11333,20 @@ qemuDomainPrepareHostdevPCI(virDomainHostdevDef *hostdev,
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VIR_DOMAIN_HOSTDEV_PCI_BACKEND_KVM:
|
case VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_KVM:
|
||||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||||
_("host doesn't support legacy PCI passthrough"));
|
_("host doesn't support legacy PCI passthrough"));
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
case VIR_DOMAIN_HOSTDEV_PCI_BACKEND_XEN:
|
case VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_XEN:
|
||||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||||
_("QEMU does not support device assignment mode '%1$s'"),
|
_("QEMU does not support device assignment mode '%1$s'"),
|
||||||
virDomainHostdevSubsysPCIBackendTypeToString(*backend));
|
virDeviceHostdevPCIDriverNameTypeToString(*driverName));
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
case VIR_DOMAIN_HOSTDEV_PCI_BACKEND_TYPE_LAST:
|
case VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_LAST:
|
||||||
virReportEnumRangeError(virDomainHostdevSubsysPCIBackendType, *backend);
|
virReportEnumRangeError(virDeviceHostdevPCIDriverName, *driverName);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2464,7 +2464,7 @@ qemuValidateDomainDeviceDefHostdev(const virDomainHostdevDef *hostdev,
|
|||||||
case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI:
|
case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI:
|
||||||
backend = hostdev->source.subsys.u.pci.backend;
|
backend = hostdev->source.subsys.u.pci.backend;
|
||||||
|
|
||||||
if (backend == VIR_DOMAIN_HOSTDEV_PCI_BACKEND_VFIO) {
|
if (backend == VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_VFIO) {
|
||||||
if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VFIO_PCI)) {
|
if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VFIO_PCI)) {
|
||||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||||
_("VFIO PCI device assignment is not supported by this version of qemu"));
|
_("VFIO PCI device assignment is not supported by this version of qemu"));
|
||||||
|
@ -869,7 +869,7 @@ AppArmorSetSecurityHostdevLabel(virSecurityManager *mgr,
|
|||||||
if (!pci)
|
if (!pci)
|
||||||
goto done;
|
goto done;
|
||||||
|
|
||||||
if (pcisrc->backend == VIR_DOMAIN_HOSTDEV_PCI_BACKEND_VFIO) {
|
if (pcisrc->backend == VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_VFIO) {
|
||||||
char *vfioGroupDev = virPCIDeviceGetIOMMUGroupDev(pci);
|
char *vfioGroupDev = virPCIDeviceGetIOMMUGroupDev(pci);
|
||||||
|
|
||||||
if (!vfioGroupDev) {
|
if (!vfioGroupDev) {
|
||||||
|
@ -1257,7 +1257,7 @@ virSecurityDACSetHostdevLabel(virSecurityManager *mgr,
|
|||||||
if (!pci)
|
if (!pci)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (pcisrc->backend == VIR_DOMAIN_HOSTDEV_PCI_BACKEND_VFIO) {
|
if (pcisrc->backend == VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_VFIO) {
|
||||||
g_autofree char *vfioGroupDev = virPCIDeviceGetIOMMUGroupDev(pci);
|
g_autofree char *vfioGroupDev = virPCIDeviceGetIOMMUGroupDev(pci);
|
||||||
|
|
||||||
if (!vfioGroupDev)
|
if (!vfioGroupDev)
|
||||||
@ -1418,7 +1418,7 @@ virSecurityDACRestoreHostdevLabel(virSecurityManager *mgr,
|
|||||||
if (!pci)
|
if (!pci)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (pcisrc->backend == VIR_DOMAIN_HOSTDEV_PCI_BACKEND_VFIO) {
|
if (pcisrc->backend == VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_VFIO) {
|
||||||
g_autofree char *vfioGroupDev = virPCIDeviceGetIOMMUGroupDev(pci);
|
g_autofree char *vfioGroupDev = virPCIDeviceGetIOMMUGroupDev(pci);
|
||||||
|
|
||||||
if (!vfioGroupDev)
|
if (!vfioGroupDev)
|
||||||
|
@ -2201,7 +2201,7 @@ virSecuritySELinuxSetHostdevSubsysLabel(virSecurityManager *mgr,
|
|||||||
if (!pci)
|
if (!pci)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (pcisrc->backend == VIR_DOMAIN_HOSTDEV_PCI_BACKEND_VFIO) {
|
if (pcisrc->backend == VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_VFIO) {
|
||||||
g_autofree char *vfioGroupDev = virPCIDeviceGetIOMMUGroupDev(pci);
|
g_autofree char *vfioGroupDev = virPCIDeviceGetIOMMUGroupDev(pci);
|
||||||
|
|
||||||
if (!vfioGroupDev)
|
if (!vfioGroupDev)
|
||||||
@ -2437,7 +2437,7 @@ virSecuritySELinuxRestoreHostdevSubsysLabel(virSecurityManager *mgr,
|
|||||||
if (!pci)
|
if (!pci)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (pcisrc->backend == VIR_DOMAIN_HOSTDEV_PCI_BACKEND_VFIO) {
|
if (pcisrc->backend == VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_VFIO) {
|
||||||
g_autofree char *vfioGroupDev = virPCIDeviceGetIOMMUGroupDev(pci);
|
g_autofree char *vfioGroupDev = virPCIDeviceGetIOMMUGroupDev(pci);
|
||||||
|
|
||||||
if (!vfioGroupDev)
|
if (!vfioGroupDev)
|
||||||
|
@ -1092,9 +1092,10 @@ get_files(vahControl * ctl)
|
|||||||
case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI: {
|
case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI: {
|
||||||
virPCIDevice *pci = virPCIDeviceNew(&dev->source.subsys.u.pci.addr);
|
virPCIDevice *pci = virPCIDeviceNew(&dev->source.subsys.u.pci.addr);
|
||||||
|
|
||||||
virDomainHostdevSubsysPCIBackendType backend = dev->source.subsys.u.pci.backend;
|
virDeviceHostdevPCIDriverName driverName = dev->source.subsys.u.pci.backend;
|
||||||
if (backend == VIR_DOMAIN_HOSTDEV_PCI_BACKEND_VFIO ||
|
|
||||||
backend == VIR_DOMAIN_HOSTDEV_PCI_BACKEND_DEFAULT) {
|
if (driverName == VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_VFIO ||
|
||||||
|
driverName == VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_DEFAULT) {
|
||||||
needsVfio = true;
|
needsVfio = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10045,16 +10045,16 @@ testDomainAttachHostPCIDevice(testDriver *driver G_GNUC_UNUSED,
|
|||||||
int backend = hostdev->source.subsys.u.pci.backend;
|
int backend = hostdev->source.subsys.u.pci.backend;
|
||||||
|
|
||||||
switch (backend) {
|
switch (backend) {
|
||||||
case VIR_DOMAIN_HOSTDEV_PCI_BACKEND_VFIO:
|
case VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_VFIO:
|
||||||
case VIR_DOMAIN_HOSTDEV_PCI_BACKEND_DEFAULT:
|
case VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_DEFAULT:
|
||||||
case VIR_DOMAIN_HOSTDEV_PCI_BACKEND_KVM:
|
case VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_KVM:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VIR_DOMAIN_HOSTDEV_PCI_BACKEND_XEN:
|
case VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_XEN:
|
||||||
case VIR_DOMAIN_HOSTDEV_PCI_BACKEND_TYPE_LAST:
|
case VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_LAST:
|
||||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||||
_("test hypervisor does not support device assignment mode '%1$s'"),
|
_("test hypervisor does not support device assignment mode '%1$s'"),
|
||||||
virDomainHostdevSubsysPCIBackendTypeToString(backend));
|
virDeviceHostdevPCIDriverNameTypeToString(backend));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -10080,7 +10080,7 @@ testDomainAttachHostDevice(testDriver *driver,
|
|||||||
if (hostdev->source.subsys.type != VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI) {
|
if (hostdev->source.subsys.type != VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI) {
|
||||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||||
_("hotplug is not supported for hostdev subsys type '%1$s'"),
|
_("hotplug is not supported for hostdev subsys type '%1$s'"),
|
||||||
virDomainHostdevSubsysTypeToString(hostdev->source.subsys.type));
|
virDeviceHostdevPCIDriverNameTypeToString(hostdev->source.subsys.type));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -109,8 +109,8 @@ fillQemuCaps(virDomainCaps *domCaps,
|
|||||||
* successfully mocked as they are not exposed as internal APIs. Therefore,
|
* successfully mocked as they are not exposed as internal APIs. Therefore,
|
||||||
* instead of mocking set the expected values here by hand. */
|
* instead of mocking set the expected values here by hand. */
|
||||||
VIR_DOMAIN_CAPS_ENUM_SET(domCaps->hostdev.pciBackend,
|
VIR_DOMAIN_CAPS_ENUM_SET(domCaps->hostdev.pciBackend,
|
||||||
VIR_DOMAIN_HOSTDEV_PCI_BACKEND_DEFAULT,
|
VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_DEFAULT,
|
||||||
VIR_DOMAIN_HOSTDEV_PCI_BACKEND_VFIO);
|
VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_VFIO);
|
||||||
|
|
||||||
/* As of f05b6a918e28 we are expecting to see OVMF_CODE.fd file which
|
/* As of f05b6a918e28 we are expecting to see OVMF_CODE.fd file which
|
||||||
* may not exists everywhere. */
|
* may not exists everywhere. */
|
||||||
|
@ -134,7 +134,7 @@ myInit(void)
|
|||||||
subsys->u.pci.addr.bus = 0;
|
subsys->u.pci.addr.bus = 0;
|
||||||
subsys->u.pci.addr.slot = i + 1;
|
subsys->u.pci.addr.slot = i + 1;
|
||||||
subsys->u.pci.addr.function = 0;
|
subsys->u.pci.addr.function = 0;
|
||||||
subsys->u.pci.backend = VIR_DOMAIN_HOSTDEV_PCI_BACKEND_VFIO;
|
subsys->u.pci.backend = VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_VFIO;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < nhostdevs; i++) {
|
for (i = 0; i < nhostdevs; i++) {
|
||||||
|
@ -110,6 +110,6 @@ virshNodeDevicePCIBackendCompleter(vshControl *ctl G_GNUC_UNUSED,
|
|||||||
{
|
{
|
||||||
virCheckFlags(0, NULL);
|
virCheckFlags(0, NULL);
|
||||||
|
|
||||||
return virshEnumComplete(VIR_DOMAIN_HOSTDEV_PCI_BACKEND_TYPE_LAST,
|
return virshEnumComplete(VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_LAST,
|
||||||
virDomainHostdevSubsysPCIBackendTypeToString);
|
virDeviceHostdevPCIDriverNameTypeToString);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user