domain: Allow 'model' attribute for ide controller

The optional values are 'piix3', 'piix4' or 'ich6'. Those will be
needed to allow setting IDE controller model in VirtualBox driver.
This commit is contained in:
Dawid Zamirski 2017-10-24 15:35:32 -04:00 committed by John Ferlan
parent 06c4fd10fd
commit 1ed22398c3
5 changed files with 40 additions and 2 deletions

View File

@ -3647,6 +3647,10 @@
<span class="since">Since 1.3.5</span>, USB controllers accept a <span class="since">Since 1.3.5</span>, USB controllers accept a
<code>ports</code> attribute to configure how many devices can be <code>ports</code> attribute to configure how many devices can be
connected to the controller.</dd> connected to the controller.</dd>
<dt><code>ide</code></dt>
<dd><span class="since">Since 3.10.0</span> for the vbox driver, the
<code>ide</code> controller has an optional attribute
<code>model</code>, which is one of "piix3", "piix4" or "ich6".</dd>
</dl> </dl>
<p> <p>

View File

@ -1975,12 +1975,11 @@
<ref name="address"/> <ref name="address"/>
</optional> </optional>
<choice> <choice>
<!-- fdc/ide/sata/ccid have only the common attributes --> <!-- fdc/sata/ccid have only the common attributes -->
<group> <group>
<attribute name="type"> <attribute name="type">
<choice> <choice>
<value>fdc</value> <value>fdc</value>
<value>ide</value>
<value>sata</value> <value>sata</value>
<value>ccid</value> <value>ccid</value>
</choice> </choice>
@ -2041,6 +2040,21 @@
</attribute> </attribute>
</optional> </optional>
</group> </group>
<!-- ide has an optional attribute "model" -->
<group>
<attribute name="type">
<value>ide</value>
</attribute>
<optional>
<attribute name="model">
<choice>
<value>piix3</value>
<value>piix4</value>
<value>ich6</value>
</choice>
</attribute>
</optional>
</group>
<!-- pci has an optional attribute "model" --> <!-- pci has an optional attribute "model" -->
<group> <group>
<attribute name="type"> <attribute name="type">

View File

@ -377,6 +377,11 @@ VIR_ENUM_IMPL(virDomainControllerModelUSB, VIR_DOMAIN_CONTROLLER_MODEL_USB_LAST,
"qemu-xhci", "qemu-xhci",
"none") "none")
VIR_ENUM_IMPL(virDomainControllerModelIDE, VIR_DOMAIN_CONTROLLER_MODEL_IDE_LAST,
"piix3",
"piix4",
"ich6")
VIR_ENUM_IMPL(virDomainFS, VIR_DOMAIN_FS_TYPE_LAST, VIR_ENUM_IMPL(virDomainFS, VIR_DOMAIN_FS_TYPE_LAST,
"mount", "mount",
"block", "block",
@ -9785,6 +9790,8 @@ virDomainControllerModelTypeFromString(const virDomainControllerDef *def,
return virDomainControllerModelUSBTypeFromString(model); return virDomainControllerModelUSBTypeFromString(model);
else if (def->type == VIR_DOMAIN_CONTROLLER_TYPE_PCI) else if (def->type == VIR_DOMAIN_CONTROLLER_TYPE_PCI)
return virDomainControllerModelPCITypeFromString(model); return virDomainControllerModelPCITypeFromString(model);
else if (def->type == VIR_DOMAIN_CONTROLLER_TYPE_IDE)
return virDomainControllerModelIDETypeFromString(model);
return -1; return -1;
} }
@ -9800,6 +9807,8 @@ virDomainControllerModelTypeToString(virDomainControllerDefPtr def,
return virDomainControllerModelUSBTypeToString(model); return virDomainControllerModelUSBTypeToString(model);
else if (def->type == VIR_DOMAIN_CONTROLLER_TYPE_PCI) else if (def->type == VIR_DOMAIN_CONTROLLER_TYPE_PCI)
return virDomainControllerModelPCITypeToString(model); return virDomainControllerModelPCITypeToString(model);
else if (def->type == VIR_DOMAIN_CONTROLLER_TYPE_IDE)
return virDomainControllerModelIDETypeToString(model);
return NULL; return NULL;
} }

View File

@ -748,6 +748,14 @@ typedef enum {
VIR_DOMAIN_CONTROLLER_MODEL_USB_LAST VIR_DOMAIN_CONTROLLER_MODEL_USB_LAST
} virDomainControllerModelUSB; } virDomainControllerModelUSB;
typedef enum {
VIR_DOMAIN_CONTROLLER_MODEL_IDE_PIIX3,
VIR_DOMAIN_CONTROLLER_MODEL_IDE_PIIX4,
VIR_DOMAIN_CONTROLLER_MODEL_IDE_ICH6,
VIR_DOMAIN_CONTROLLER_MODEL_IDE_LAST
} virDomainControllerModelIDE;
# define IS_USB2_CONTROLLER(ctrl) \ # define IS_USB2_CONTROLLER(ctrl) \
(((ctrl)->type == VIR_DOMAIN_CONTROLLER_TYPE_USB) && \ (((ctrl)->type == VIR_DOMAIN_CONTROLLER_TYPE_USB) && \
((ctrl)->model == VIR_DOMAIN_CONTROLLER_MODEL_USB_ICH9_EHCI1 || \ ((ctrl)->model == VIR_DOMAIN_CONTROLLER_MODEL_USB_ICH9_EHCI1 || \
@ -3219,6 +3227,7 @@ VIR_ENUM_DECL(virDomainControllerModelPCI)
VIR_ENUM_DECL(virDomainControllerPCIModelName) VIR_ENUM_DECL(virDomainControllerPCIModelName)
VIR_ENUM_DECL(virDomainControllerModelSCSI) VIR_ENUM_DECL(virDomainControllerModelSCSI)
VIR_ENUM_DECL(virDomainControllerModelUSB) VIR_ENUM_DECL(virDomainControllerModelUSB)
VIR_ENUM_DECL(virDomainControllerModelIDE)
VIR_ENUM_DECL(virDomainFS) VIR_ENUM_DECL(virDomainFS)
VIR_ENUM_DECL(virDomainFSDriver) VIR_ENUM_DECL(virDomainFSDriver)
VIR_ENUM_DECL(virDomainFSAccessMode) VIR_ENUM_DECL(virDomainFSAccessMode)

View File

@ -234,6 +234,8 @@ virDomainControllerFindUnusedIndex;
virDomainControllerInsert; virDomainControllerInsert;
virDomainControllerInsertPreAlloced; virDomainControllerInsertPreAlloced;
virDomainControllerIsPSeriesPHB; virDomainControllerIsPSeriesPHB;
virDomainControllerModelIDETypeFromString;
virDomainControllerModelIDETypeToString;
virDomainControllerModelPCITypeToString; virDomainControllerModelPCITypeToString;
virDomainControllerModelSCSITypeFromString; virDomainControllerModelSCSITypeFromString;
virDomainControllerModelSCSITypeToString; virDomainControllerModelSCSITypeToString;