mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
virDomainDeviceInfo: Convert 'type' field to proper enum type
Convert the field, adjust the XML parsers to use virXMLPropEnum() and fill in missing cases to switch() statements. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
cc4bb25852
commit
2dd6369477
@ -98,7 +98,7 @@ virDomainDeviceInfoAddressIsEqual(const virDomainDeviceInfo *a,
|
||||
if (a->type != b->type)
|
||||
return false;
|
||||
|
||||
switch ((virDomainDeviceAddressType) a->type) {
|
||||
switch (a->type) {
|
||||
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE:
|
||||
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_LAST:
|
||||
/* address types below don't have any specific data */
|
||||
@ -427,6 +427,16 @@ virDomainDeviceAddressIsValid(virDomainDeviceInfo *info,
|
||||
|
||||
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_USB:
|
||||
return true;
|
||||
|
||||
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE:
|
||||
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_SERIAL:
|
||||
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCID:
|
||||
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_SPAPRVIO:
|
||||
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_ISA:
|
||||
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DIMM:
|
||||
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_UNASSIGNED:
|
||||
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_LAST:
|
||||
break;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
@ -32,7 +32,7 @@
|
||||
#include "virenum.h"
|
||||
|
||||
typedef enum {
|
||||
VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE,
|
||||
VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE = 0,
|
||||
VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI,
|
||||
VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE,
|
||||
VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_SERIAL,
|
||||
@ -116,7 +116,7 @@ struct _virDomainDeviceDimmAddress {
|
||||
typedef struct _virDomainDeviceInfo virDomainDeviceInfo;
|
||||
struct _virDomainDeviceInfo {
|
||||
char *alias;
|
||||
int type; /* virDomainDeviceAddressType */
|
||||
virDomainDeviceAddressType type;
|
||||
union {
|
||||
virPCIDeviceAddress pci;
|
||||
virDomainDeviceDriveAddress drive;
|
||||
|
@ -5366,7 +5366,7 @@ virDomainDeviceInfoFormat(virBuffer *buf,
|
||||
virBufferAsprintf(&attrBuf, " type='%s'",
|
||||
virDomainDeviceAddressTypeToString(info->type));
|
||||
|
||||
switch ((virDomainDeviceAddressType) info->type) {
|
||||
switch (info->type) {
|
||||
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI:
|
||||
if (!virPCIDeviceAddressIsEmpty(&info->addr.pci)) {
|
||||
virBufferAsprintf(&attrBuf, " domain='0x%04x' bus='0x%02x' "
|
||||
@ -5539,21 +5539,14 @@ static int
|
||||
virDomainDeviceAddressParseXML(xmlNodePtr address,
|
||||
virDomainDeviceInfo *info)
|
||||
{
|
||||
g_autofree char *type = virXMLPropString(address, "type");
|
||||
|
||||
if (!type) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
"%s", _("No type specified for device address"));
|
||||
if (virXMLPropEnum(address, "type",
|
||||
virDomainDeviceAddressTypeFromString,
|
||||
VIR_XML_PROP_REQUIRED | VIR_XML_PROP_NONZERO,
|
||||
&info->type) < 0) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if ((info->type = virDomainDeviceAddressTypeFromString(type)) <= 0) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
_("unknown address type '%1$s'"), type);
|
||||
return -1;
|
||||
}
|
||||
|
||||
switch ((virDomainDeviceAddressType) info->type) {
|
||||
switch (info->type) {
|
||||
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI:
|
||||
if (virPCIDeviceAddressParseXML(address, &info->addr.pci) < 0)
|
||||
return -1;
|
||||
@ -19625,7 +19618,7 @@ virDomainDeviceInfoCheckABIStability(virDomainDeviceInfo *src,
|
||||
return false;
|
||||
}
|
||||
|
||||
switch ((virDomainDeviceAddressType) src->type) {
|
||||
switch (src->type) {
|
||||
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI:
|
||||
if (src->addr.pci.domain != dst->addr.pci.domain ||
|
||||
src->addr.pci.bus != dst->addr.pci.bus ||
|
||||
|
@ -2806,7 +2806,7 @@ virDomainDeviceInfoValidate(const virDomainDeviceDef *dev)
|
||||
if (!(info = virDomainDeviceGetInfo(dev)))
|
||||
return 0;
|
||||
|
||||
switch ((virDomainDeviceAddressType) info->type) {
|
||||
switch (info->type) {
|
||||
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI:
|
||||
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE:
|
||||
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_SPAPRVIO:
|
||||
|
@ -541,7 +541,7 @@ qemuBuildDeviceAddressProps(virJSONValue *props,
|
||||
const virDomainDef *domainDef,
|
||||
const virDomainDeviceInfo *info)
|
||||
{
|
||||
switch ((virDomainDeviceAddressType) info->type) {
|
||||
switch (info->type) {
|
||||
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI: {
|
||||
g_autofree char *pciaddr = NULL;
|
||||
g_autofree char *bus = qemuBuildDeviceAddressPCIGetBus(domainDef, info);
|
||||
@ -981,7 +981,7 @@ qemuBuildVirtioDevGetConfig(const virDomainDeviceDef *device,
|
||||
|
||||
virBufferAdd(&buf, baseName, -1);
|
||||
|
||||
switch ((virDomainDeviceAddressType) info->type) {
|
||||
switch (info->type) {
|
||||
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI:
|
||||
implName = "pci";
|
||||
break;
|
||||
|
@ -954,6 +954,18 @@ qemuMonitorInitBalloonObjectPath(qemuMonitor *mon,
|
||||
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCW:
|
||||
name = "virtio-balloon-ccw";
|
||||
break;
|
||||
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE:
|
||||
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE:
|
||||
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_SERIAL:
|
||||
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCID:
|
||||
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_USB:
|
||||
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_SPAPRVIO:
|
||||
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_S390:
|
||||
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_MMIO:
|
||||
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_ISA:
|
||||
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DIMM:
|
||||
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_UNASSIGNED:
|
||||
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_LAST:
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
@ -1479,7 +1479,7 @@ qemuValidateDomainDeviceDefAddress(const virDomainDeviceDef *dev,
|
||||
const virDomainDef *def,
|
||||
virQEMUCaps *qemuCaps)
|
||||
{
|
||||
switch ((virDomainDeviceAddressType) info->type) {
|
||||
switch (info->type) {
|
||||
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI:
|
||||
if (qemuValidateDomainDeviceDefZPCIAddress(info, qemuCaps) < 0)
|
||||
return -1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user