mirror of https://gitee.com/openkylin/libvirt.git
conf: add 'isa' controller type
Introduce 'isa' controller type. In domain XML it looks this way: ... <controller type='isa' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/> </controller> ... Currently, this is needed for the bhyve driver to allow choosing a specific PCI address for that. In bhyve, this controller is used to attach serial ports and a boot ROM. Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
7143ae1265
commit
f787df9947
|
@ -2419,6 +2419,12 @@
|
|||
</attribute>
|
||||
</optional>
|
||||
</group>
|
||||
<!-- isa -->
|
||||
<group>
|
||||
<attribute name="type">
|
||||
<value>isa</value>
|
||||
</attribute>
|
||||
</group>
|
||||
<!-- pci has an optional attribute "model" -->
|
||||
<group>
|
||||
<attribute name="type">
|
||||
|
|
|
@ -400,6 +400,7 @@ VIR_ENUM_IMPL(virDomainController,
|
|||
"usb",
|
||||
"pci",
|
||||
"xenbus",
|
||||
"isa",
|
||||
);
|
||||
|
||||
VIR_ENUM_IMPL(virDomainControllerModelPCI,
|
||||
|
@ -445,6 +446,9 @@ VIR_ENUM_IMPL(virDomainControllerModelSCSI,
|
|||
"virtio-non-transitional",
|
||||
);
|
||||
|
||||
VIR_ENUM_IMPL(virDomainControllerModelISA, VIR_DOMAIN_CONTROLLER_MODEL_ISA_LAST,
|
||||
);
|
||||
|
||||
VIR_ENUM_IMPL(virDomainControllerModelUSB,
|
||||
VIR_DOMAIN_CONTROLLER_MODEL_USB_LAST,
|
||||
"piix3-uhci",
|
||||
|
@ -2337,6 +2341,7 @@ virDomainControllerDefNew(virDomainControllerType type)
|
|||
case VIR_DOMAIN_CONTROLLER_TYPE_SCSI:
|
||||
case VIR_DOMAIN_CONTROLLER_TYPE_SATA:
|
||||
case VIR_DOMAIN_CONTROLLER_TYPE_CCID:
|
||||
case VIR_DOMAIN_CONTROLLER_TYPE_ISA:
|
||||
case VIR_DOMAIN_CONTROLLER_TYPE_LAST:
|
||||
break;
|
||||
}
|
||||
|
@ -11047,6 +11052,8 @@ virDomainControllerModelTypeFromString(const virDomainControllerDef *def,
|
|||
return virDomainControllerModelIDETypeFromString(model);
|
||||
else if (def->type == VIR_DOMAIN_CONTROLLER_TYPE_VIRTIO_SERIAL)
|
||||
return virDomainControllerModelVirtioSerialTypeFromString(model);
|
||||
else if (def->type == VIR_DOMAIN_CONTROLLER_TYPE_ISA)
|
||||
return virDomainControllerModelISATypeFromString(model);
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
@ -11066,6 +11073,8 @@ virDomainControllerModelTypeToString(virDomainControllerDefPtr def,
|
|||
return virDomainControllerModelIDETypeToString(model);
|
||||
else if (def->type == VIR_DOMAIN_CONTROLLER_TYPE_VIRTIO_SERIAL)
|
||||
return virDomainControllerModelVirtioSerialTypeToString(model);
|
||||
else if (def->type == VIR_DOMAIN_CONTROLLER_TYPE_ISA)
|
||||
return virDomainControllerModelISATypeToString(model);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
@ -599,6 +599,7 @@ typedef enum {
|
|||
VIR_DOMAIN_CONTROLLER_TYPE_USB,
|
||||
VIR_DOMAIN_CONTROLLER_TYPE_PCI,
|
||||
VIR_DOMAIN_CONTROLLER_TYPE_XENBUS,
|
||||
VIR_DOMAIN_CONTROLLER_TYPE_ISA,
|
||||
|
||||
VIR_DOMAIN_CONTROLLER_TYPE_LAST
|
||||
} virDomainControllerType;
|
||||
|
@ -690,6 +691,12 @@ typedef enum {
|
|||
VIR_DOMAIN_CONTROLLER_MODEL_VIRTIO_SERIAL_LAST
|
||||
} virDomainControllerModelVirtioSerial;
|
||||
|
||||
typedef enum {
|
||||
VIR_DOMAIN_CONTROLLER_MODEL_ISA_DEFAULT = -1,
|
||||
|
||||
VIR_DOMAIN_CONTROLLER_MODEL_ISA_LAST
|
||||
} virDomainControllerModelISA;
|
||||
|
||||
#define IS_USB2_CONTROLLER(ctrl) \
|
||||
(((ctrl)->type == VIR_DOMAIN_CONTROLLER_TYPE_USB) && \
|
||||
((ctrl)->model == VIR_DOMAIN_CONTROLLER_MODEL_USB_ICH9_EHCI1 || \
|
||||
|
@ -3597,6 +3604,7 @@ VIR_ENUM_DECL(virDomainControllerModelSCSI);
|
|||
VIR_ENUM_DECL(virDomainControllerModelUSB);
|
||||
VIR_ENUM_DECL(virDomainControllerModelIDE);
|
||||
VIR_ENUM_DECL(virDomainControllerModelVirtioSerial);
|
||||
VIR_ENUM_DECL(virDomainControllerModelISA);
|
||||
VIR_ENUM_DECL(virDomainFS);
|
||||
VIR_ENUM_DECL(virDomainFSDriver);
|
||||
VIR_ENUM_DECL(virDomainFSAccessMode);
|
||||
|
|
|
@ -2681,6 +2681,7 @@ qemuBuildControllerDevStr(const virDomainDef *domainDef,
|
|||
case VIR_DOMAIN_CONTROLLER_TYPE_IDE:
|
||||
case VIR_DOMAIN_CONTROLLER_TYPE_FDC:
|
||||
case VIR_DOMAIN_CONTROLLER_TYPE_XENBUS:
|
||||
case VIR_DOMAIN_CONTROLLER_TYPE_ISA:
|
||||
case VIR_DOMAIN_CONTROLLER_TYPE_LAST:
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
_("Unsupported controller type: %s"),
|
||||
|
|
|
@ -4930,6 +4930,7 @@ qemuDomainControllerDefPostParse(virDomainControllerDefPtr cont,
|
|||
case VIR_DOMAIN_CONTROLLER_TYPE_IDE:
|
||||
case VIR_DOMAIN_CONTROLLER_TYPE_FDC:
|
||||
case VIR_DOMAIN_CONTROLLER_TYPE_XENBUS:
|
||||
case VIR_DOMAIN_CONTROLLER_TYPE_ISA:
|
||||
case VIR_DOMAIN_CONTROLLER_TYPE_LAST:
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -678,6 +678,7 @@ qemuDomainDeviceCalculatePCIConnectFlags(virDomainDeviceDefPtr dev,
|
|||
case VIR_DOMAIN_CONTROLLER_TYPE_FDC:
|
||||
case VIR_DOMAIN_CONTROLLER_TYPE_CCID:
|
||||
case VIR_DOMAIN_CONTROLLER_TYPE_XENBUS:
|
||||
case VIR_DOMAIN_CONTROLLER_TYPE_ISA:
|
||||
case VIR_DOMAIN_CONTROLLER_TYPE_LAST:
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -3241,6 +3241,7 @@ qemuValidateDomainDeviceDefController(const virDomainControllerDef *controller,
|
|||
case VIR_DOMAIN_CONTROLLER_TYPE_CCID:
|
||||
case VIR_DOMAIN_CONTROLLER_TYPE_USB:
|
||||
case VIR_DOMAIN_CONTROLLER_TYPE_XENBUS:
|
||||
case VIR_DOMAIN_CONTROLLER_TYPE_ISA:
|
||||
case VIR_DOMAIN_CONTROLLER_TYPE_LAST:
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -397,6 +397,7 @@ vboxSetStorageController(virDomainControllerDefPtr controller,
|
|||
case VIR_DOMAIN_CONTROLLER_TYPE_USB:
|
||||
case VIR_DOMAIN_CONTROLLER_TYPE_PCI:
|
||||
case VIR_DOMAIN_CONTROLLER_TYPE_XENBUS:
|
||||
case VIR_DOMAIN_CONTROLLER_TYPE_ISA:
|
||||
case VIR_DOMAIN_CONTROLLER_TYPE_LAST:
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
_("The vbox driver does not support %s controller type"),
|
||||
|
|
Loading…
Reference in New Issue