2014-06-25 15:24:53 +04:00
<?xml version="1.0"?>
<!-- A Relax NG schema for the libvirt domain capabilities XML format -->
<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
<include href='basictypes.rng'/>
2016-06-15 17:45:47 +03:00
<include href='cputypes.rng'/>
2014-06-25 15:24:53 +04:00
<start>
<ref name='domainCapabilities'/>
</start>
<define name='domainCapabilities'>
<element name='domainCapabilities'>
<interleave>
<element name='path'>
<ref name="absFilePath"/>
</element>
<element name='domain'>
<text/>
</element>
2017-03-26 17:35:14 +03:00
<optional>
<element name='machine'>
<text/>
</element>
</optional>
2014-06-25 15:24:53 +04:00
<element name='arch'>
<text/>
</element>
<optional>
<ref name='vcpu'/>
</optional>
2017-10-19 15:19:38 +03:00
<optional>
<ref name='iothreads'/>
</optional>
2014-09-16 16:47:47 +04:00
<optional>
<ref name='os'/>
</optional>
2016-04-22 12:08:57 +03:00
<optional>
<ref name='cpu'/>
</optional>
2014-06-25 15:24:53 +04:00
<optional>
<ref name='devices'/>
</optional>
2016-03-09 20:42:14 +03:00
<optional>
<ref name='features'/>
</optional>
2014-06-25 15:24:53 +04:00
</interleave>
</element>
</define>
<define name='vcpu'>
<element name='vcpu'>
<attribute name='max'>
<ref name='unsignedInt'/>
</attribute>
<empty/>
</element>
</define>
2017-10-19 15:19:38 +03:00
<define name='iothreads'>
<element name='iothreads'>
<ref name='supported'/>
<empty/>
</element>
</define>
2014-09-16 16:47:47 +04:00
<define name='loader'>
<element name='loader'>
<ref name='supported'/>
2014-09-17 03:52:54 +04:00
<optional>
<ref name='value'/>
</optional>
2014-09-16 16:47:47 +04:00
<ref name='enum'/>
</element>
</define>
<define name='os'>
<element name='os'>
<interleave>
<ref name='supported'/>
2019-04-04 13:42:14 +03:00
<ref name='enum'/>
2014-09-16 16:47:47 +04:00
<optional>
<ref name='loader'/>
</optional>
</interleave>
</element>
</define>
2016-04-22 12:08:57 +03:00
<define name='cpu'>
<element name='cpu'>
<ref name='cpuHost'/>
<ref name='cpuHostModel'/>
<ref name='cpuCustom'/>
</element>
</define>
<define name='cpuHost'>
<element name='mode'>
<attribute name='name'>
<value>host-passthrough</value>
</attribute>
<ref name='supported'/>
</element>
</define>
<define name='cpuHostModel'>
<element name='mode'>
<attribute name='name'>
<value>host-model</value>
</attribute>
<ref name='supported'/>
2016-06-15 17:45:47 +03:00
<optional>
<ref name="cpuModel"/>
<optional>
<ref name="cpuVendor"/>
</optional>
<zeroOrMore>
<ref name="cpuFeature"/>
</zeroOrMore>
</optional>
2016-04-22 12:08:57 +03:00
</element>
</define>
<define name='cpuCustom'>
<element name='mode'>
<attribute name='name'>
<value>custom</value>
</attribute>
<ref name='supported'/>
<zeroOrMore>
<element name='model'>
2016-06-15 17:15:44 +03:00
<attribute name='usable'>
<choice>
<value>yes</value>
<value>no</value>
<value>unknown</value>
</choice>
</attribute>
2016-04-22 12:08:57 +03:00
<text/>
</element>
</zeroOrMore>
</element>
</define>
2014-06-25 15:24:53 +04:00
<define name='devices'>
<element name='devices'>
2019-02-09 03:10:17 +03:00
<optional>
2014-06-25 15:24:53 +04:00
<ref name='disk'/>
2019-02-09 03:10:17 +03:00
</optional>
<optional>
2016-05-08 18:57:20 +03:00
<ref name='graphics'/>
2019-02-09 03:10:17 +03:00
</optional>
<optional>
2016-05-08 19:11:39 +03:00
<ref name='video'/>
2019-02-09 03:10:17 +03:00
</optional>
<optional>
2014-06-25 15:24:53 +04:00
<ref name='hostdev'/>
2019-02-09 03:10:17 +03:00
</optional>
2019-04-01 00:19:33 +03:00
<optional>
<ref name='rng'/>
</optional>
2014-06-25 15:24:53 +04:00
</element>
</define>
<define name='disk'>
<element name='disk'>
<ref name='supported'/>
<ref name='enum'/>
</element>
</define>
2016-05-08 18:57:20 +03:00
<define name='graphics'>
<element name='graphics'>
<ref name='supported'/>
<ref name='enum'/>
</element>
</define>
2016-05-08 19:11:39 +03:00
<define name='video'>
<element name='video'>
<ref name='supported'/>
<ref name='enum'/>
</element>
</define>
2014-06-25 15:24:53 +04:00
<define name='hostdev'>
<element name='hostdev'>
<ref name='supported'/>
<ref name='enum'/>
</element>
</define>
2019-04-01 00:19:33 +03:00
<define name='rng'>
<element name='rng'>
<ref name='supported'/>
<ref name='enum'/>
</element>
</define>
2016-03-09 20:42:14 +03:00
<define name='features'>
<element name='features'>
2019-02-09 03:10:17 +03:00
<optional>
2016-03-09 20:42:14 +03:00
<ref name='gic'/>
2019-02-09 03:10:17 +03:00
</optional>
<optional>
2018-04-17 20:54:28 +03:00
<ref name='vmcoreinfo'/>
2019-02-09 03:10:17 +03:00
</optional>
<optional>
2018-04-27 15:16:40 +03:00
<ref name='vmgenid'/>
2019-02-09 03:10:17 +03:00
</optional>
2019-10-30 18:54:56 +03:00
<optional>
<ref name='backingStoreInput'/>
</optional>
2019-12-03 19:36:35 +03:00
<optional>
<ref name='backup'/>
</optional>
2019-02-09 03:10:17 +03:00
<optional>
2018-06-14 15:18:30 +03:00
<ref name='sev'/>
2019-02-09 03:10:17 +03:00
</optional>
2016-03-09 20:42:14 +03:00
</element>
</define>
<define name='gic'>
<element name='gic'>
<ref name='supported'/>
<ref name='enum'/>
</element>
</define>
2018-04-17 20:54:28 +03:00
<define name='vmcoreinfo'>
<element name='vmcoreinfo'>
<ref name='supported'/>
</element>
</define>
2018-04-27 15:16:40 +03:00
<define name='vmgenid'>
<element name='genid'>
<ref name='supported'/>
</element>
</define>
2019-10-30 18:54:56 +03:00
<define name='backingStoreInput'>
<element name='backingStoreInput'>
<ref name='supported'/>
</element>
</define>
2019-12-03 19:36:35 +03:00
<define name='backup'>
<element name='backup'>
<ref name='supported'/>
</element>
</define>
2018-06-08 17:40:52 +03:00
<define name='sev'>
<element name='sev'>
2018-06-14 15:18:30 +03:00
<ref name='supported'/>
<optional>
<element name='cbitpos'>
<data type='unsignedInt'/>
</element>
<element name='reducedPhysBits'>
<data type='unsignedInt'/>
</element>
</optional>
2018-06-08 17:40:52 +03:00
</element>
</define>
2014-09-17 03:52:54 +04:00
<define name='value'>
<zeroOrMore>
<element name='value'>
<text/>
</element>
</zeroOrMore>
</define>
2014-06-25 15:24:53 +04:00
<define name='supported'>
<attribute name='supported'>
2014-09-08 10:06:35 +04:00
<ref name="virYesNo"/>
2014-06-25 15:24:53 +04:00
</attribute>
</define>
<define name='enum'>
<zeroOrMore>
<element name='enum'>
<attribute name='name'>
<text/>
</attribute>
2014-09-17 03:52:54 +04:00
<ref name='value'/>
2014-06-25 15:24:53 +04:00
</element>
</zeroOrMore>
</define>
</grammar>