For input,hub,redirdev devices, their sub-elements should be interleaved.
input device: interleave for <driver>, <alias>, <address>
hub device: interleave for <alias>, <address>
redirdev device: interleave for <source>, <alias>, <address>, <boot>
Signed-off-by: Han Han <hhan@redhat.com>
---
docs/schemas/domaincommon.rng | 60 +++++++++++++++++++----------------
1 file changed, 33 insertions(+), 27 deletions(-)
diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
index 4a454dddb4..d262eb2b1b 100644
--- a/docs/schemas/domaincommon.rng
+++ b/docs/schemas/domaincommon.rng
@@ -4270,11 +4270,19 @@
<define name="input">
<element name="input">
- <optional>
- <element name="driver">
- <ref name="virtioOptions"/>
- </element>
- </optional>
+ <interleave>
+ <optional>
+ <element name="driver">
+ <ref name="virtioOptions"/>
+ </element>
+ </optional>
+ <optional>
+ <ref name="alias"/>
+ </optional>
+ <optional>
+ <ref name="address"/>
+ </optional>
+ </interleave>
<choice>
<group>
<attribute name="type">
@@ -4309,12 +4317,6 @@
</element>
</group>
</choice>
- <optional>
- <ref name="alias"/>
- </optional>
- <optional>
- <ref name="address"/>
- </optional>
</element>
</define>
<define name="hub">
@@ -4322,12 +4324,14 @@
<attribute name="type">
<value>usb</value>
</attribute>
- <optional>
- <ref name="alias"/>
- </optional>
- <optional>
- <ref name="address"/>
- </optional>
+ <interleave>
+ <optional>
+ <ref name="alias"/>
+ </optional>
+ <optional>
+ <ref name="address"/>
+ </optional>
+ </interleave>
</element>
</define>
<define name="redirdev">
@@ -4338,16 +4342,18 @@
<attribute name="type">
<ref name="qemucdevSrcTypeChoice"/>
</attribute>
- <ref name="qemucdevSrcDef"/>
- <optional>
- <ref name="alias"/>
- </optional>
- <optional>
- <ref name="address"/>
- </optional>
- <optional>
- <ref name="deviceBoot"/>
- </optional>
+ <interleave>
+ <ref name="qemucdevSrcDef"/>
+ <optional>
+ <ref name="alias"/>
+ </optional>
+ <optional>
+ <ref name="address"/>
+ </optional>
+ <optional>
+ <ref name="deviceBoot"/>
+ </optional>
+ </interleave>
</element>
</define>
<define name="redirfilter">
--
2.17.1
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
On 06/22/2018 07:24 AM, Han Han wrote:
> For input,hub,redirdev devices, their sub-elements should be interleaved.
>
> input device: interleave for <driver>, <alias>, <address>
> hub device: interleave for <alias>, <address>
> redirdev device: interleave for <source>, <alias>, <address>, <boot>
>
> Signed-off-by: Han Han <hhan@redhat.com>
> ---
> docs/schemas/domaincommon.rng | 60 +++++++++++++++++++----------------
> 1 file changed, 33 insertions(+), 27 deletions(-)
>
> diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
> index 4a454dddb4..d262eb2b1b 100644
> --- a/docs/schemas/domaincommon.rng
> +++ b/docs/schemas/domaincommon.rng
> @@ -4270,11 +4270,19 @@
>
> <define name="input">
> <element name="input">
> - <optional>
> - <element name="driver">
> - <ref name="virtioOptions"/>
> - </element>
> - </optional>
> + <interleave>
> + <optional>
> + <element name="driver">
> + <ref name="virtioOptions"/>
> + </element>
> + </optional>
> + <optional>
> + <ref name="alias"/>
> + </optional>
> + <optional>
> + <ref name="address"/>
> + </optional>
> + </interleave>
> <choice>
> <group>
> <attribute name="type">
This is not that simple. In between these two hunks there's another
possible element defined <source/> for this kind of <input/> device:
<input type='passthrough' bus='virtio'>
<driver iommu='on' ats='on'/>
<source evdev='/dev/input/event1234'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x12'
function='0x0'/>
</input>
What we need is to put the whole <element name="input"/> body into
<interleave/>.
Fixed, ACKed and pushed.
Michal
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
© 2016 - 2026 Red Hat, Inc.