xref: /aosp_15_r20/external/libxml2/test/relaxng/libvirt.rng (revision 7c5688314b92172186c154356a6374bf7684c3ca)
1*7c568831SAndroid Build Coastguard Worker<?xml version="1.0"?>
2*7c568831SAndroid Build Coastguard Worker<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
3*7c568831SAndroid Build Coastguard Worker  <!-- We handle only document defining a domain -->
4*7c568831SAndroid Build Coastguard Worker  <start>
5*7c568831SAndroid Build Coastguard Worker    <ref name="domain"/>
6*7c568831SAndroid Build Coastguard Worker  </start>
7*7c568831SAndroid Build Coastguard Worker
8*7c568831SAndroid Build Coastguard Worker  <!--
9*7c568831SAndroid Build Coastguard Worker      We handle only document defining a domain
10*7c568831SAndroid Build Coastguard Worker    -->
11*7c568831SAndroid Build Coastguard Worker  <define name="domain">
12*7c568831SAndroid Build Coastguard Worker    <element name="domain">
13*7c568831SAndroid Build Coastguard Worker      <ref name="hvs"/>
14*7c568831SAndroid Build Coastguard Worker      <ref name="ids"/>
15*7c568831SAndroid Build Coastguard Worker      <interleave>
16*7c568831SAndroid Build Coastguard Worker        <ref name="os"/>
17*7c568831SAndroid Build Coastguard Worker        <ref name="clock"/>
18*7c568831SAndroid Build Coastguard Worker        <ref name="resources"/>
19*7c568831SAndroid Build Coastguard Worker        <ref name="features"/>
20*7c568831SAndroid Build Coastguard Worker        <ref name="termination"/>
21*7c568831SAndroid Build Coastguard Worker        <optional>
22*7c568831SAndroid Build Coastguard Worker          <ref name="devices"/>
23*7c568831SAndroid Build Coastguard Worker        </optional>
24*7c568831SAndroid Build Coastguard Worker        <optional>
25*7c568831SAndroid Build Coastguard Worker          <ref name="seclabel"/>
26*7c568831SAndroid Build Coastguard Worker        </optional>
27*7c568831SAndroid Build Coastguard Worker      </interleave>
28*7c568831SAndroid Build Coastguard Worker    </element>
29*7c568831SAndroid Build Coastguard Worker  </define>
30*7c568831SAndroid Build Coastguard Worker  <define name="seclabel">
31*7c568831SAndroid Build Coastguard Worker    <element name="seclabel">
32*7c568831SAndroid Build Coastguard Worker      <attribute name="model">
33*7c568831SAndroid Build Coastguard Worker        <text/>
34*7c568831SAndroid Build Coastguard Worker      </attribute>
35*7c568831SAndroid Build Coastguard Worker      <attribute name="type">
36*7c568831SAndroid Build Coastguard Worker        <choice>
37*7c568831SAndroid Build Coastguard Worker          <value>dynamic</value>
38*7c568831SAndroid Build Coastguard Worker          <value>static</value>
39*7c568831SAndroid Build Coastguard Worker        </choice>
40*7c568831SAndroid Build Coastguard Worker      </attribute>
41*7c568831SAndroid Build Coastguard Worker      <element name="label">
42*7c568831SAndroid Build Coastguard Worker        <text/>
43*7c568831SAndroid Build Coastguard Worker      </element>
44*7c568831SAndroid Build Coastguard Worker    </element>
45*7c568831SAndroid Build Coastguard Worker  </define>
46*7c568831SAndroid Build Coastguard Worker  <define name="hvs">
47*7c568831SAndroid Build Coastguard Worker    <attribute name="type">
48*7c568831SAndroid Build Coastguard Worker      <choice>
49*7c568831SAndroid Build Coastguard Worker        <value>xen</value>
50*7c568831SAndroid Build Coastguard Worker        <value>kvm</value>
51*7c568831SAndroid Build Coastguard Worker        <value>kqemu</value>
52*7c568831SAndroid Build Coastguard Worker        <value>qemu</value>
53*7c568831SAndroid Build Coastguard Worker        <value>lxc</value>
54*7c568831SAndroid Build Coastguard Worker        <value>openvz</value>
55*7c568831SAndroid Build Coastguard Worker        <value>test</value>
56*7c568831SAndroid Build Coastguard Worker      </choice>
57*7c568831SAndroid Build Coastguard Worker    </attribute>
58*7c568831SAndroid Build Coastguard Worker  </define>
59*7c568831SAndroid Build Coastguard Worker  <define name="os">
60*7c568831SAndroid Build Coastguard Worker    <choice>
61*7c568831SAndroid Build Coastguard Worker      <ref name="osxen"/>
62*7c568831SAndroid Build Coastguard Worker      <ref name="oshvm"/>
63*7c568831SAndroid Build Coastguard Worker      <ref name="osexe"/>
64*7c568831SAndroid Build Coastguard Worker    </choice>
65*7c568831SAndroid Build Coastguard Worker  </define>
66*7c568831SAndroid Build Coastguard Worker  <define name="osxen">
67*7c568831SAndroid Build Coastguard Worker    <choice>
68*7c568831SAndroid Build Coastguard Worker      <group>
69*7c568831SAndroid Build Coastguard Worker        <optional>
70*7c568831SAndroid Build Coastguard Worker          <ref name="bootloader"/>
71*7c568831SAndroid Build Coastguard Worker        </optional>
72*7c568831SAndroid Build Coastguard Worker        <element name="os">
73*7c568831SAndroid Build Coastguard Worker          <ref name="ostypexen"/>
74*7c568831SAndroid Build Coastguard Worker          <ref name="osbootkernel"/>
75*7c568831SAndroid Build Coastguard Worker        </element>
76*7c568831SAndroid Build Coastguard Worker      </group>
77*7c568831SAndroid Build Coastguard Worker      <group>
78*7c568831SAndroid Build Coastguard Worker        <ref name="bootloader"/>
79*7c568831SAndroid Build Coastguard Worker        <optional>
80*7c568831SAndroid Build Coastguard Worker          <element name="os">
81*7c568831SAndroid Build Coastguard Worker            <ref name="ostypexen"/>
82*7c568831SAndroid Build Coastguard Worker            <optional>
83*7c568831SAndroid Build Coastguard Worker              <ref name="osbootkernel"/>
84*7c568831SAndroid Build Coastguard Worker            </optional>
85*7c568831SAndroid Build Coastguard Worker          </element>
86*7c568831SAndroid Build Coastguard Worker        </optional>
87*7c568831SAndroid Build Coastguard Worker      </group>
88*7c568831SAndroid Build Coastguard Worker    </choice>
89*7c568831SAndroid Build Coastguard Worker  </define>
90*7c568831SAndroid Build Coastguard Worker  <define name="oshvm">
91*7c568831SAndroid Build Coastguard Worker    <element name="os">
92*7c568831SAndroid Build Coastguard Worker      <ref name="ostypehvm"/>
93*7c568831SAndroid Build Coastguard Worker      <interleave>
94*7c568831SAndroid Build Coastguard Worker        <optional>
95*7c568831SAndroid Build Coastguard Worker          <element name="loader">
96*7c568831SAndroid Build Coastguard Worker            <ref name="absFilePath"/>
97*7c568831SAndroid Build Coastguard Worker          </element>
98*7c568831SAndroid Build Coastguard Worker        </optional>
99*7c568831SAndroid Build Coastguard Worker        <choice>
100*7c568831SAndroid Build Coastguard Worker          <ref name="osbootkernel"/>
101*7c568831SAndroid Build Coastguard Worker          <ref name="osbootdev"/>
102*7c568831SAndroid Build Coastguard Worker        </choice>
103*7c568831SAndroid Build Coastguard Worker      </interleave>
104*7c568831SAndroid Build Coastguard Worker    </element>
105*7c568831SAndroid Build Coastguard Worker  </define>
106*7c568831SAndroid Build Coastguard Worker  <define name="ostypexen">
107*7c568831SAndroid Build Coastguard Worker    <element name="type">
108*7c568831SAndroid Build Coastguard Worker      <optional>
109*7c568831SAndroid Build Coastguard Worker        <attribute name="arch">
110*7c568831SAndroid Build Coastguard Worker          <choice>
111*7c568831SAndroid Build Coastguard Worker            <value>i686</value>
112*7c568831SAndroid Build Coastguard Worker            <value>x86_64</value>
113*7c568831SAndroid Build Coastguard Worker            <value>ia64</value>
114*7c568831SAndroid Build Coastguard Worker          </choice>
115*7c568831SAndroid Build Coastguard Worker        </attribute>
116*7c568831SAndroid Build Coastguard Worker      </optional>
117*7c568831SAndroid Build Coastguard Worker      <optional>
118*7c568831SAndroid Build Coastguard Worker        <attribute name="machine">
119*7c568831SAndroid Build Coastguard Worker          <choice>
120*7c568831SAndroid Build Coastguard Worker            <value>xenpv</value>
121*7c568831SAndroid Build Coastguard Worker            <value>xenner</value>
122*7c568831SAndroid Build Coastguard Worker          </choice>
123*7c568831SAndroid Build Coastguard Worker        </attribute>
124*7c568831SAndroid Build Coastguard Worker      </optional>
125*7c568831SAndroid Build Coastguard Worker      <choice>
126*7c568831SAndroid Build Coastguard Worker        <value>xen</value>
127*7c568831SAndroid Build Coastguard Worker        <value>linux</value>
128*7c568831SAndroid Build Coastguard Worker      </choice>
129*7c568831SAndroid Build Coastguard Worker    </element>
130*7c568831SAndroid Build Coastguard Worker  </define>
131*7c568831SAndroid Build Coastguard Worker  <define name="ostypehvm">
132*7c568831SAndroid Build Coastguard Worker    <element name="type">
133*7c568831SAndroid Build Coastguard Worker      <optional>
134*7c568831SAndroid Build Coastguard Worker        <choice>
135*7c568831SAndroid Build Coastguard Worker          <ref name="hvmx86"/>
136*7c568831SAndroid Build Coastguard Worker          <ref name="hvmmips"/>
137*7c568831SAndroid Build Coastguard Worker          <ref name="hvmsparc"/>
138*7c568831SAndroid Build Coastguard Worker          <ref name="hvmppc"/>
139*7c568831SAndroid Build Coastguard Worker        </choice>
140*7c568831SAndroid Build Coastguard Worker      </optional>
141*7c568831SAndroid Build Coastguard Worker      <value>hvm</value>
142*7c568831SAndroid Build Coastguard Worker    </element>
143*7c568831SAndroid Build Coastguard Worker  </define>
144*7c568831SAndroid Build Coastguard Worker  <define name="hvmx86">
145*7c568831SAndroid Build Coastguard Worker    <group>
146*7c568831SAndroid Build Coastguard Worker      <attribute name="arch">
147*7c568831SAndroid Build Coastguard Worker        <choice>
148*7c568831SAndroid Build Coastguard Worker          <value>i686</value>
149*7c568831SAndroid Build Coastguard Worker          <value>x86_64</value>
150*7c568831SAndroid Build Coastguard Worker        </choice>
151*7c568831SAndroid Build Coastguard Worker      </attribute>
152*7c568831SAndroid Build Coastguard Worker      <attribute name="machine">
153*7c568831SAndroid Build Coastguard Worker        <choice>
154*7c568831SAndroid Build Coastguard Worker          <value>xenfv</value>
155*7c568831SAndroid Build Coastguard Worker          <value>pc</value>
156*7c568831SAndroid Build Coastguard Worker          <value>isapc</value>
157*7c568831SAndroid Build Coastguard Worker        </choice>
158*7c568831SAndroid Build Coastguard Worker      </attribute>
159*7c568831SAndroid Build Coastguard Worker    </group>
160*7c568831SAndroid Build Coastguard Worker  </define>
161*7c568831SAndroid Build Coastguard Worker  <define name="hvmmips">
162*7c568831SAndroid Build Coastguard Worker    <group>
163*7c568831SAndroid Build Coastguard Worker      <attribute name="arch">
164*7c568831SAndroid Build Coastguard Worker        <value>mips</value>
165*7c568831SAndroid Build Coastguard Worker      </attribute>
166*7c568831SAndroid Build Coastguard Worker      <attribute name="machine">
167*7c568831SAndroid Build Coastguard Worker        <value>mips</value>
168*7c568831SAndroid Build Coastguard Worker      </attribute>
169*7c568831SAndroid Build Coastguard Worker    </group>
170*7c568831SAndroid Build Coastguard Worker  </define>
171*7c568831SAndroid Build Coastguard Worker  <define name="hvmsparc">
172*7c568831SAndroid Build Coastguard Worker    <group>
173*7c568831SAndroid Build Coastguard Worker      <attribute name="arch">
174*7c568831SAndroid Build Coastguard Worker        <value>sparc</value>
175*7c568831SAndroid Build Coastguard Worker      </attribute>
176*7c568831SAndroid Build Coastguard Worker      <attribute name="machine">
177*7c568831SAndroid Build Coastguard Worker        <value>sun4m</value>
178*7c568831SAndroid Build Coastguard Worker      </attribute>
179*7c568831SAndroid Build Coastguard Worker    </group>
180*7c568831SAndroid Build Coastguard Worker  </define>
181*7c568831SAndroid Build Coastguard Worker  <define name="hvmppc">
182*7c568831SAndroid Build Coastguard Worker    <group>
183*7c568831SAndroid Build Coastguard Worker      <attribute name="arch">
184*7c568831SAndroid Build Coastguard Worker        <value>ppc</value>
185*7c568831SAndroid Build Coastguard Worker      </attribute>
186*7c568831SAndroid Build Coastguard Worker      <attribute name="machine">
187*7c568831SAndroid Build Coastguard Worker        <choice>
188*7c568831SAndroid Build Coastguard Worker          <value>g3beige</value>
189*7c568831SAndroid Build Coastguard Worker          <value>mac99</value>
190*7c568831SAndroid Build Coastguard Worker          <value>prep</value>
191*7c568831SAndroid Build Coastguard Worker        </choice>
192*7c568831SAndroid Build Coastguard Worker      </attribute>
193*7c568831SAndroid Build Coastguard Worker    </group>
194*7c568831SAndroid Build Coastguard Worker  </define>
195*7c568831SAndroid Build Coastguard Worker  <define name="osexe">
196*7c568831SAndroid Build Coastguard Worker    <element name="os">
197*7c568831SAndroid Build Coastguard Worker      <element name="type">
198*7c568831SAndroid Build Coastguard Worker        <value>exe</value>
199*7c568831SAndroid Build Coastguard Worker      </element>
200*7c568831SAndroid Build Coastguard Worker      <interleave>
201*7c568831SAndroid Build Coastguard Worker        <optional>
202*7c568831SAndroid Build Coastguard Worker          <element name="init">
203*7c568831SAndroid Build Coastguard Worker            <ref name="absFilePath"/>
204*7c568831SAndroid Build Coastguard Worker          </element>
205*7c568831SAndroid Build Coastguard Worker        </optional>
206*7c568831SAndroid Build Coastguard Worker      </interleave>
207*7c568831SAndroid Build Coastguard Worker    </element>
208*7c568831SAndroid Build Coastguard Worker  </define>
209*7c568831SAndroid Build Coastguard Worker  <!--
210*7c568831SAndroid Build Coastguard Worker      The Identifiers can be:
211*7c568831SAndroid Build Coastguard Worker      - an optional id attribute with a number on the domain element
212*7c568831SAndroid Build Coastguard Worker      - a mandatory name
213*7c568831SAndroid Build Coastguard Worker      - an optional uuid
214*7c568831SAndroid Build Coastguard Worker    -->
215*7c568831SAndroid Build Coastguard Worker  <define name="ids">
216*7c568831SAndroid Build Coastguard Worker    <optional>
217*7c568831SAndroid Build Coastguard Worker      <attribute name="id">
218*7c568831SAndroid Build Coastguard Worker        <ref name="unsignedInt"/>
219*7c568831SAndroid Build Coastguard Worker      </attribute>
220*7c568831SAndroid Build Coastguard Worker    </optional>
221*7c568831SAndroid Build Coastguard Worker    <interleave>
222*7c568831SAndroid Build Coastguard Worker      <element name="name">
223*7c568831SAndroid Build Coastguard Worker        <ref name="domainName"/>
224*7c568831SAndroid Build Coastguard Worker      </element>
225*7c568831SAndroid Build Coastguard Worker      <optional>
226*7c568831SAndroid Build Coastguard Worker        <element name="uuid">
227*7c568831SAndroid Build Coastguard Worker          <ref name="UUID"/>
228*7c568831SAndroid Build Coastguard Worker        </element>
229*7c568831SAndroid Build Coastguard Worker      </optional>
230*7c568831SAndroid Build Coastguard Worker    </interleave>
231*7c568831SAndroid Build Coastguard Worker  </define>
232*7c568831SAndroid Build Coastguard Worker  <!--
233*7c568831SAndroid Build Coastguard Worker      Resources usage defines the amount of memory (maximum and possibly
234*7c568831SAndroid Build Coastguard Worker      current usage) and number of virtual CPUs used by that domain.
235*7c568831SAndroid Build Coastguard Worker      We can't check here the rule that currentMemory <= memory
236*7c568831SAndroid Build Coastguard Worker    -->
237*7c568831SAndroid Build Coastguard Worker  <define name="resources">
238*7c568831SAndroid Build Coastguard Worker    <interleave>
239*7c568831SAndroid Build Coastguard Worker      <element name="memory">
240*7c568831SAndroid Build Coastguard Worker        <ref name="memoryKB"/>
241*7c568831SAndroid Build Coastguard Worker      </element>
242*7c568831SAndroid Build Coastguard Worker      <optional>
243*7c568831SAndroid Build Coastguard Worker        <element name="currentMemory">
244*7c568831SAndroid Build Coastguard Worker          <ref name="memoryKB"/>
245*7c568831SAndroid Build Coastguard Worker        </element>
246*7c568831SAndroid Build Coastguard Worker      </optional>
247*7c568831SAndroid Build Coastguard Worker      <optional>
248*7c568831SAndroid Build Coastguard Worker	<element name="memoryBacking">
249*7c568831SAndroid Build Coastguard Worker	  <optional>
250*7c568831SAndroid Build Coastguard Worker	    <element name="hugepages">
251*7c568831SAndroid Build Coastguard Worker	      <empty/>
252*7c568831SAndroid Build Coastguard Worker	    </element>
253*7c568831SAndroid Build Coastguard Worker	  </optional>
254*7c568831SAndroid Build Coastguard Worker	</element>
255*7c568831SAndroid Build Coastguard Worker      </optional>
256*7c568831SAndroid Build Coastguard Worker      <optional>
257*7c568831SAndroid Build Coastguard Worker        <element name="vcpu">
258*7c568831SAndroid Build Coastguard Worker          <optional>
259*7c568831SAndroid Build Coastguard Worker            <attribute name="cpuset"/>
260*7c568831SAndroid Build Coastguard Worker          </optional>
261*7c568831SAndroid Build Coastguard Worker          <ref name="countCPU"/>
262*7c568831SAndroid Build Coastguard Worker        </element>
263*7c568831SAndroid Build Coastguard Worker      </optional>
264*7c568831SAndroid Build Coastguard Worker    </interleave>
265*7c568831SAndroid Build Coastguard Worker  </define>
266*7c568831SAndroid Build Coastguard Worker  <define name="clock">
267*7c568831SAndroid Build Coastguard Worker    <optional>
268*7c568831SAndroid Build Coastguard Worker      <element name="clock">
269*7c568831SAndroid Build Coastguard Worker        <attribute name="offset">
270*7c568831SAndroid Build Coastguard Worker          <choice>
271*7c568831SAndroid Build Coastguard Worker            <value>localtime</value>
272*7c568831SAndroid Build Coastguard Worker            <value>utc</value>
273*7c568831SAndroid Build Coastguard Worker          </choice>
274*7c568831SAndroid Build Coastguard Worker        </attribute>
275*7c568831SAndroid Build Coastguard Worker        <empty/>
276*7c568831SAndroid Build Coastguard Worker      </element>
277*7c568831SAndroid Build Coastguard Worker    </optional>
278*7c568831SAndroid Build Coastguard Worker  </define>
279*7c568831SAndroid Build Coastguard Worker  <!--
280*7c568831SAndroid Build Coastguard Worker      A bootloader may be used to extract the OS information instead of
281*7c568831SAndroid Build Coastguard Worker      defining the OS parameter in the instance. It points just to the
282*7c568831SAndroid Build Coastguard Worker      binary or script used to extract the data from the first disk device.
283*7c568831SAndroid Build Coastguard Worker    -->
284*7c568831SAndroid Build Coastguard Worker  <define name="bootloader">
285*7c568831SAndroid Build Coastguard Worker    <interleave>
286*7c568831SAndroid Build Coastguard Worker      <element name="bootloader">
287*7c568831SAndroid Build Coastguard Worker        <choice>
288*7c568831SAndroid Build Coastguard Worker          <ref name="absFilePath"/>
289*7c568831SAndroid Build Coastguard Worker          <empty/>
290*7c568831SAndroid Build Coastguard Worker        </choice>
291*7c568831SAndroid Build Coastguard Worker      </element>
292*7c568831SAndroid Build Coastguard Worker      <optional>
293*7c568831SAndroid Build Coastguard Worker        <element name="bootloader_args">
294*7c568831SAndroid Build Coastguard Worker          <text/>
295*7c568831SAndroid Build Coastguard Worker        </element>
296*7c568831SAndroid Build Coastguard Worker      </optional>
297*7c568831SAndroid Build Coastguard Worker    </interleave>
298*7c568831SAndroid Build Coastguard Worker  </define>
299*7c568831SAndroid Build Coastguard Worker  <define name="osbootkernel">
300*7c568831SAndroid Build Coastguard Worker    <interleave>
301*7c568831SAndroid Build Coastguard Worker      <element name="kernel">
302*7c568831SAndroid Build Coastguard Worker        <ref name="absFilePath"/>
303*7c568831SAndroid Build Coastguard Worker      </element>
304*7c568831SAndroid Build Coastguard Worker      <optional>
305*7c568831SAndroid Build Coastguard Worker        <element name="initrd">
306*7c568831SAndroid Build Coastguard Worker          <ref name="absFilePath"/>
307*7c568831SAndroid Build Coastguard Worker        </element>
308*7c568831SAndroid Build Coastguard Worker      </optional>
309*7c568831SAndroid Build Coastguard Worker      <optional>
310*7c568831SAndroid Build Coastguard Worker        <element name="root">
311*7c568831SAndroid Build Coastguard Worker          <ref name="devicePath"/>
312*7c568831SAndroid Build Coastguard Worker        </element>
313*7c568831SAndroid Build Coastguard Worker      </optional>
314*7c568831SAndroid Build Coastguard Worker      <optional>
315*7c568831SAndroid Build Coastguard Worker        <element name="cmdline">
316*7c568831SAndroid Build Coastguard Worker          <text/>
317*7c568831SAndroid Build Coastguard Worker        </element>
318*7c568831SAndroid Build Coastguard Worker      </optional>
319*7c568831SAndroid Build Coastguard Worker    </interleave>
320*7c568831SAndroid Build Coastguard Worker  </define>
321*7c568831SAndroid Build Coastguard Worker  <define name="osbootdev">
322*7c568831SAndroid Build Coastguard Worker    <element name="boot">
323*7c568831SAndroid Build Coastguard Worker      <attribute name="dev">
324*7c568831SAndroid Build Coastguard Worker        <choice>
325*7c568831SAndroid Build Coastguard Worker          <value>hd</value>
326*7c568831SAndroid Build Coastguard Worker          <value>fd</value>
327*7c568831SAndroid Build Coastguard Worker          <value>cdrom</value>
328*7c568831SAndroid Build Coastguard Worker          <value>network</value>
329*7c568831SAndroid Build Coastguard Worker        </choice>
330*7c568831SAndroid Build Coastguard Worker      </attribute>
331*7c568831SAndroid Build Coastguard Worker      <empty/>
332*7c568831SAndroid Build Coastguard Worker    </element>
333*7c568831SAndroid Build Coastguard Worker  </define>
334*7c568831SAndroid Build Coastguard Worker  <define name="diskspec">
335*7c568831SAndroid Build Coastguard Worker    <optional>
336*7c568831SAndroid Build Coastguard Worker      <ref name="driver"/>
337*7c568831SAndroid Build Coastguard Worker    </optional>
338*7c568831SAndroid Build Coastguard Worker    <ref name="target"/>
339*7c568831SAndroid Build Coastguard Worker    <optional>
340*7c568831SAndroid Build Coastguard Worker      <element name="readonly">
341*7c568831SAndroid Build Coastguard Worker        <empty/>
342*7c568831SAndroid Build Coastguard Worker      </element>
343*7c568831SAndroid Build Coastguard Worker    </optional>
344*7c568831SAndroid Build Coastguard Worker    <optional>
345*7c568831SAndroid Build Coastguard Worker      <element name="shareable">
346*7c568831SAndroid Build Coastguard Worker        <empty/>
347*7c568831SAndroid Build Coastguard Worker      </element>
348*7c568831SAndroid Build Coastguard Worker    </optional>
349*7c568831SAndroid Build Coastguard Worker    <optional>
350*7c568831SAndroid Build Coastguard Worker      <element name="serial">
351*7c568831SAndroid Build Coastguard Worker        <ref name="diskSerial"/>
352*7c568831SAndroid Build Coastguard Worker      </element>
353*7c568831SAndroid Build Coastguard Worker    </optional>
354*7c568831SAndroid Build Coastguard Worker  </define>
355*7c568831SAndroid Build Coastguard Worker  <!--
356*7c568831SAndroid Build Coastguard Worker      A disk description can be either of type file or block
357*7c568831SAndroid Build Coastguard Worker      The name of the attribute on the source element depends on the type
358*7c568831SAndroid Build Coastguard Worker
359*7c568831SAndroid Build Coastguard Worker    -->
360*7c568831SAndroid Build Coastguard Worker  <define name="disk">
361*7c568831SAndroid Build Coastguard Worker    <element name="disk">
362*7c568831SAndroid Build Coastguard Worker      <optional>
363*7c568831SAndroid Build Coastguard Worker        <attribute name="device">
364*7c568831SAndroid Build Coastguard Worker          <choice>
365*7c568831SAndroid Build Coastguard Worker            <value>floppy</value>
366*7c568831SAndroid Build Coastguard Worker            <value>disk</value>
367*7c568831SAndroid Build Coastguard Worker            <value>cdrom</value>
368*7c568831SAndroid Build Coastguard Worker          </choice>
369*7c568831SAndroid Build Coastguard Worker        </attribute>
370*7c568831SAndroid Build Coastguard Worker      </optional>
371*7c568831SAndroid Build Coastguard Worker      <choice>
372*7c568831SAndroid Build Coastguard Worker        <group>
373*7c568831SAndroid Build Coastguard Worker          <attribute name="type">
374*7c568831SAndroid Build Coastguard Worker            <value>file</value>
375*7c568831SAndroid Build Coastguard Worker          </attribute>
376*7c568831SAndroid Build Coastguard Worker          <interleave>
377*7c568831SAndroid Build Coastguard Worker            <optional>
378*7c568831SAndroid Build Coastguard Worker              <element name="source">
379*7c568831SAndroid Build Coastguard Worker                <attribute name="file">
380*7c568831SAndroid Build Coastguard Worker                  <ref name="absFilePath"/>
381*7c568831SAndroid Build Coastguard Worker                </attribute>
382*7c568831SAndroid Build Coastguard Worker                <empty/>
383*7c568831SAndroid Build Coastguard Worker              </element>
384*7c568831SAndroid Build Coastguard Worker            </optional>
385*7c568831SAndroid Build Coastguard Worker            <ref name="diskspec"/>
386*7c568831SAndroid Build Coastguard Worker          </interleave>
387*7c568831SAndroid Build Coastguard Worker        </group>
388*7c568831SAndroid Build Coastguard Worker        <group>
389*7c568831SAndroid Build Coastguard Worker          <attribute name="type">
390*7c568831SAndroid Build Coastguard Worker            <value>block</value>
391*7c568831SAndroid Build Coastguard Worker          </attribute>
392*7c568831SAndroid Build Coastguard Worker          <interleave>
393*7c568831SAndroid Build Coastguard Worker            <optional>
394*7c568831SAndroid Build Coastguard Worker              <element name="source">
395*7c568831SAndroid Build Coastguard Worker                <attribute name="dev">
396*7c568831SAndroid Build Coastguard Worker                  <ref name="deviceName"/>
397*7c568831SAndroid Build Coastguard Worker                </attribute>
398*7c568831SAndroid Build Coastguard Worker                <empty/>
399*7c568831SAndroid Build Coastguard Worker              </element>
400*7c568831SAndroid Build Coastguard Worker            </optional>
401*7c568831SAndroid Build Coastguard Worker            <ref name="diskspec"/>
402*7c568831SAndroid Build Coastguard Worker          </interleave>
403*7c568831SAndroid Build Coastguard Worker        </group>
404*7c568831SAndroid Build Coastguard Worker        <ref name="diskspec"/>
405*7c568831SAndroid Build Coastguard Worker      </choice>
406*7c568831SAndroid Build Coastguard Worker    </element>
407*7c568831SAndroid Build Coastguard Worker  </define>
408*7c568831SAndroid Build Coastguard Worker  <define name="target">
409*7c568831SAndroid Build Coastguard Worker    <element name="target">
410*7c568831SAndroid Build Coastguard Worker      <attribute name="dev">
411*7c568831SAndroid Build Coastguard Worker        <ref name="deviceName"/>
412*7c568831SAndroid Build Coastguard Worker      </attribute>
413*7c568831SAndroid Build Coastguard Worker      <optional>
414*7c568831SAndroid Build Coastguard Worker        <attribute name="bus">
415*7c568831SAndroid Build Coastguard Worker          <choice>
416*7c568831SAndroid Build Coastguard Worker            <value>ide</value>
417*7c568831SAndroid Build Coastguard Worker            <value>fdc</value>
418*7c568831SAndroid Build Coastguard Worker            <value>scsi</value>
419*7c568831SAndroid Build Coastguard Worker            <value>virtio</value>
420*7c568831SAndroid Build Coastguard Worker            <value>xen</value>
421*7c568831SAndroid Build Coastguard Worker            <value>usb</value>
422*7c568831SAndroid Build Coastguard Worker            <value>uml</value>
423*7c568831SAndroid Build Coastguard Worker          </choice>
424*7c568831SAndroid Build Coastguard Worker        </attribute>
425*7c568831SAndroid Build Coastguard Worker      </optional>
426*7c568831SAndroid Build Coastguard Worker    </element>
427*7c568831SAndroid Build Coastguard Worker  </define>
428*7c568831SAndroid Build Coastguard Worker  <!--
429*7c568831SAndroid Build Coastguard Worker      Disk may use a special driver for access. Currently this is
430*7c568831SAndroid Build Coastguard Worker      only defined for Xen for tap/aio and file, but will certainly be
431*7c568831SAndroid Build Coastguard Worker      extended in the future, and libvirt doesn't look for specific values.
432*7c568831SAndroid Build Coastguard Worker    -->
433*7c568831SAndroid Build Coastguard Worker  <define name="driver">
434*7c568831SAndroid Build Coastguard Worker    <element name="driver">
435*7c568831SAndroid Build Coastguard Worker      <choice>
436*7c568831SAndroid Build Coastguard Worker        <group>
437*7c568831SAndroid Build Coastguard Worker          <ref name="driverFormat"/>
438*7c568831SAndroid Build Coastguard Worker          <optional>
439*7c568831SAndroid Build Coastguard Worker            <ref name="driverCache"/>
440*7c568831SAndroid Build Coastguard Worker          </optional>
441*7c568831SAndroid Build Coastguard Worker        </group>
442*7c568831SAndroid Build Coastguard Worker        <group>
443*7c568831SAndroid Build Coastguard Worker          <optional>
444*7c568831SAndroid Build Coastguard Worker            <ref name="driverFormat"/>
445*7c568831SAndroid Build Coastguard Worker          </optional>
446*7c568831SAndroid Build Coastguard Worker          <ref name="driverCache"/>
447*7c568831SAndroid Build Coastguard Worker        </group>
448*7c568831SAndroid Build Coastguard Worker      </choice>
449*7c568831SAndroid Build Coastguard Worker      <empty/>
450*7c568831SAndroid Build Coastguard Worker    </element>
451*7c568831SAndroid Build Coastguard Worker  </define>
452*7c568831SAndroid Build Coastguard Worker  <define name="driverFormat">
453*7c568831SAndroid Build Coastguard Worker    <attribute name="name">
454*7c568831SAndroid Build Coastguard Worker      <ref name="genericName"/>
455*7c568831SAndroid Build Coastguard Worker    </attribute>
456*7c568831SAndroid Build Coastguard Worker    <optional>
457*7c568831SAndroid Build Coastguard Worker      <attribute name="type">
458*7c568831SAndroid Build Coastguard Worker        <ref name="genericName"/>
459*7c568831SAndroid Build Coastguard Worker      </attribute>
460*7c568831SAndroid Build Coastguard Worker    </optional>
461*7c568831SAndroid Build Coastguard Worker  </define>
462*7c568831SAndroid Build Coastguard Worker  <define name="driverCache">
463*7c568831SAndroid Build Coastguard Worker    <attribute name="cache">
464*7c568831SAndroid Build Coastguard Worker      <choice>
465*7c568831SAndroid Build Coastguard Worker        <value>none</value>
466*7c568831SAndroid Build Coastguard Worker        <value>writeback</value>
467*7c568831SAndroid Build Coastguard Worker        <value>writethrough</value>
468*7c568831SAndroid Build Coastguard Worker      </choice>
469*7c568831SAndroid Build Coastguard Worker    </attribute>
470*7c568831SAndroid Build Coastguard Worker  </define>
471*7c568831SAndroid Build Coastguard Worker  <define name="filesystem">
472*7c568831SAndroid Build Coastguard Worker    <element name="filesystem">
473*7c568831SAndroid Build Coastguard Worker      <choice>
474*7c568831SAndroid Build Coastguard Worker        <group>
475*7c568831SAndroid Build Coastguard Worker          <attribute name="type">
476*7c568831SAndroid Build Coastguard Worker            <value>file</value>
477*7c568831SAndroid Build Coastguard Worker          </attribute>
478*7c568831SAndroid Build Coastguard Worker          <interleave>
479*7c568831SAndroid Build Coastguard Worker            <element name="source">
480*7c568831SAndroid Build Coastguard Worker              <attribute name="file">
481*7c568831SAndroid Build Coastguard Worker                <ref name="absFilePath"/>
482*7c568831SAndroid Build Coastguard Worker              </attribute>
483*7c568831SAndroid Build Coastguard Worker              <empty/>
484*7c568831SAndroid Build Coastguard Worker            </element>
485*7c568831SAndroid Build Coastguard Worker            <ref name="filesystemtgt"/>
486*7c568831SAndroid Build Coastguard Worker          </interleave>
487*7c568831SAndroid Build Coastguard Worker        </group>
488*7c568831SAndroid Build Coastguard Worker        <group>
489*7c568831SAndroid Build Coastguard Worker          <attribute name="type">
490*7c568831SAndroid Build Coastguard Worker            <value>block</value>
491*7c568831SAndroid Build Coastguard Worker          </attribute>
492*7c568831SAndroid Build Coastguard Worker          <interleave>
493*7c568831SAndroid Build Coastguard Worker            <element name="source">
494*7c568831SAndroid Build Coastguard Worker              <attribute name="dev">
495*7c568831SAndroid Build Coastguard Worker                <ref name="deviceName"/>
496*7c568831SAndroid Build Coastguard Worker              </attribute>
497*7c568831SAndroid Build Coastguard Worker              <empty/>
498*7c568831SAndroid Build Coastguard Worker            </element>
499*7c568831SAndroid Build Coastguard Worker            <ref name="filesystemtgt"/>
500*7c568831SAndroid Build Coastguard Worker          </interleave>
501*7c568831SAndroid Build Coastguard Worker        </group>
502*7c568831SAndroid Build Coastguard Worker        <group>
503*7c568831SAndroid Build Coastguard Worker          <attribute name="type">
504*7c568831SAndroid Build Coastguard Worker            <value>mount</value>
505*7c568831SAndroid Build Coastguard Worker          </attribute>
506*7c568831SAndroid Build Coastguard Worker          <interleave>
507*7c568831SAndroid Build Coastguard Worker            <element name="source">
508*7c568831SAndroid Build Coastguard Worker              <attribute name="dir">
509*7c568831SAndroid Build Coastguard Worker                <ref name="absFilePath"/>
510*7c568831SAndroid Build Coastguard Worker              </attribute>
511*7c568831SAndroid Build Coastguard Worker              <empty/>
512*7c568831SAndroid Build Coastguard Worker            </element>
513*7c568831SAndroid Build Coastguard Worker            <ref name="filesystemtgt"/>
514*7c568831SAndroid Build Coastguard Worker          </interleave>
515*7c568831SAndroid Build Coastguard Worker        </group>
516*7c568831SAndroid Build Coastguard Worker        <group>
517*7c568831SAndroid Build Coastguard Worker          <attribute name="type">
518*7c568831SAndroid Build Coastguard Worker            <value>template</value>
519*7c568831SAndroid Build Coastguard Worker          </attribute>
520*7c568831SAndroid Build Coastguard Worker          <interleave>
521*7c568831SAndroid Build Coastguard Worker            <element name="source">
522*7c568831SAndroid Build Coastguard Worker              <attribute name="name">
523*7c568831SAndroid Build Coastguard Worker                <ref name="genericName"/>
524*7c568831SAndroid Build Coastguard Worker              </attribute>
525*7c568831SAndroid Build Coastguard Worker              <empty/>
526*7c568831SAndroid Build Coastguard Worker            </element>
527*7c568831SAndroid Build Coastguard Worker            <ref name="filesystemtgt"/>
528*7c568831SAndroid Build Coastguard Worker          </interleave>
529*7c568831SAndroid Build Coastguard Worker        </group>
530*7c568831SAndroid Build Coastguard Worker      </choice>
531*7c568831SAndroid Build Coastguard Worker    </element>
532*7c568831SAndroid Build Coastguard Worker  </define>
533*7c568831SAndroid Build Coastguard Worker  <define name="filesystemtgt">
534*7c568831SAndroid Build Coastguard Worker    <element name="target">
535*7c568831SAndroid Build Coastguard Worker      <attribute name="dir">
536*7c568831SAndroid Build Coastguard Worker        <ref name="absDirPath"/>
537*7c568831SAndroid Build Coastguard Worker      </attribute>
538*7c568831SAndroid Build Coastguard Worker      <empty/>
539*7c568831SAndroid Build Coastguard Worker    </element>
540*7c568831SAndroid Build Coastguard Worker  </define>
541*7c568831SAndroid Build Coastguard Worker  <!--
542*7c568831SAndroid Build Coastguard Worker      An interface description can either be of type bridge in which case
543*7c568831SAndroid Build Coastguard Worker      it will use a bridging source, or of type ethernet which uses a device
544*7c568831SAndroid Build Coastguard Worker      source and a device target instead. They both share a set of interface
545*7c568831SAndroid Build Coastguard Worker      options. FIXME
546*7c568831SAndroid Build Coastguard Worker    -->
547*7c568831SAndroid Build Coastguard Worker  <define name="interface">
548*7c568831SAndroid Build Coastguard Worker    <element name="interface">
549*7c568831SAndroid Build Coastguard Worker      <choice>
550*7c568831SAndroid Build Coastguard Worker        <group>
551*7c568831SAndroid Build Coastguard Worker          <attribute name="type">
552*7c568831SAndroid Build Coastguard Worker            <value>bridge</value>
553*7c568831SAndroid Build Coastguard Worker          </attribute>
554*7c568831SAndroid Build Coastguard Worker          <interleave>
555*7c568831SAndroid Build Coastguard Worker            <optional>
556*7c568831SAndroid Build Coastguard Worker              <element name="source">
557*7c568831SAndroid Build Coastguard Worker                <attribute name="bridge">
558*7c568831SAndroid Build Coastguard Worker                  <ref name="deviceName"/>
559*7c568831SAndroid Build Coastguard Worker                </attribute>
560*7c568831SAndroid Build Coastguard Worker                <empty/>
561*7c568831SAndroid Build Coastguard Worker              </element>
562*7c568831SAndroid Build Coastguard Worker            </optional>
563*7c568831SAndroid Build Coastguard Worker            <ref name="interface-options"/>
564*7c568831SAndroid Build Coastguard Worker          </interleave>
565*7c568831SAndroid Build Coastguard Worker        </group>
566*7c568831SAndroid Build Coastguard Worker        <group>
567*7c568831SAndroid Build Coastguard Worker          <attribute name="type">
568*7c568831SAndroid Build Coastguard Worker            <value>ethernet</value>
569*7c568831SAndroid Build Coastguard Worker          </attribute>
570*7c568831SAndroid Build Coastguard Worker          <interleave>
571*7c568831SAndroid Build Coastguard Worker            <optional>
572*7c568831SAndroid Build Coastguard Worker              <element name="source">
573*7c568831SAndroid Build Coastguard Worker                <attribute name="dev">
574*7c568831SAndroid Build Coastguard Worker                  <ref name="deviceName"/>
575*7c568831SAndroid Build Coastguard Worker                </attribute>
576*7c568831SAndroid Build Coastguard Worker                <empty/>
577*7c568831SAndroid Build Coastguard Worker              </element>
578*7c568831SAndroid Build Coastguard Worker            </optional>
579*7c568831SAndroid Build Coastguard Worker            <ref name="interface-options"/>
580*7c568831SAndroid Build Coastguard Worker          </interleave>
581*7c568831SAndroid Build Coastguard Worker        </group>
582*7c568831SAndroid Build Coastguard Worker        <group>
583*7c568831SAndroid Build Coastguard Worker          <attribute name="type">
584*7c568831SAndroid Build Coastguard Worker            <value>network</value>
585*7c568831SAndroid Build Coastguard Worker          </attribute>
586*7c568831SAndroid Build Coastguard Worker          <interleave>
587*7c568831SAndroid Build Coastguard Worker            <element name="source">
588*7c568831SAndroid Build Coastguard Worker              <attribute name="network">
589*7c568831SAndroid Build Coastguard Worker                <ref name="deviceName"/>
590*7c568831SAndroid Build Coastguard Worker              </attribute>
591*7c568831SAndroid Build Coastguard Worker              <empty/>
592*7c568831SAndroid Build Coastguard Worker            </element>
593*7c568831SAndroid Build Coastguard Worker            <ref name="interface-options"/>
594*7c568831SAndroid Build Coastguard Worker          </interleave>
595*7c568831SAndroid Build Coastguard Worker        </group>
596*7c568831SAndroid Build Coastguard Worker        <group>
597*7c568831SAndroid Build Coastguard Worker          <attribute name="type">
598*7c568831SAndroid Build Coastguard Worker            <value>user</value>
599*7c568831SAndroid Build Coastguard Worker          </attribute>
600*7c568831SAndroid Build Coastguard Worker          <interleave>
601*7c568831SAndroid Build Coastguard Worker            <ref name="interface-options"/>
602*7c568831SAndroid Build Coastguard Worker          </interleave>
603*7c568831SAndroid Build Coastguard Worker        </group>
604*7c568831SAndroid Build Coastguard Worker        <group>
605*7c568831SAndroid Build Coastguard Worker          <attribute name="type">
606*7c568831SAndroid Build Coastguard Worker            <value>internal</value>
607*7c568831SAndroid Build Coastguard Worker          </attribute>
608*7c568831SAndroid Build Coastguard Worker          <interleave>
609*7c568831SAndroid Build Coastguard Worker            <element name="source">
610*7c568831SAndroid Build Coastguard Worker              <attribute name="name">
611*7c568831SAndroid Build Coastguard Worker                <ref name="deviceName"/>
612*7c568831SAndroid Build Coastguard Worker              </attribute>
613*7c568831SAndroid Build Coastguard Worker              <empty/>
614*7c568831SAndroid Build Coastguard Worker            </element>
615*7c568831SAndroid Build Coastguard Worker            <ref name="interface-options"/>
616*7c568831SAndroid Build Coastguard Worker          </interleave>
617*7c568831SAndroid Build Coastguard Worker        </group>
618*7c568831SAndroid Build Coastguard Worker      </choice>
619*7c568831SAndroid Build Coastguard Worker    </element>
620*7c568831SAndroid Build Coastguard Worker  </define>
621*7c568831SAndroid Build Coastguard Worker  <!--
622*7c568831SAndroid Build Coastguard Worker      The interface options possible are:
623*7c568831SAndroid Build Coastguard Worker        - the MAC address
624*7c568831SAndroid Build Coastguard Worker        - the IP address bound to the interface
625*7c568831SAndroid Build Coastguard Worker        - the name of the script used to set up the binding
626*7c568831SAndroid Build Coastguard Worker        - the target device used
627*7c568831SAndroid Build Coastguard Worker    -->
628*7c568831SAndroid Build Coastguard Worker  <define name="interface-options">
629*7c568831SAndroid Build Coastguard Worker    <interleave>
630*7c568831SAndroid Build Coastguard Worker      <optional>
631*7c568831SAndroid Build Coastguard Worker        <element name="target">
632*7c568831SAndroid Build Coastguard Worker          <attribute name="dev">
633*7c568831SAndroid Build Coastguard Worker            <ref name="deviceName"/>
634*7c568831SAndroid Build Coastguard Worker          </attribute>
635*7c568831SAndroid Build Coastguard Worker          <empty/>
636*7c568831SAndroid Build Coastguard Worker        </element>
637*7c568831SAndroid Build Coastguard Worker      </optional>
638*7c568831SAndroid Build Coastguard Worker      <optional>
639*7c568831SAndroid Build Coastguard Worker        <element name="mac">
640*7c568831SAndroid Build Coastguard Worker          <attribute name="address">
641*7c568831SAndroid Build Coastguard Worker            <ref name="addrMAC"/>
642*7c568831SAndroid Build Coastguard Worker          </attribute>
643*7c568831SAndroid Build Coastguard Worker          <empty/>
644*7c568831SAndroid Build Coastguard Worker        </element>
645*7c568831SAndroid Build Coastguard Worker      </optional>
646*7c568831SAndroid Build Coastguard Worker      <optional>
647*7c568831SAndroid Build Coastguard Worker        <element name="ip">
648*7c568831SAndroid Build Coastguard Worker          <attribute name="address">
649*7c568831SAndroid Build Coastguard Worker            <ref name="addrIP"/>
650*7c568831SAndroid Build Coastguard Worker          </attribute>
651*7c568831SAndroid Build Coastguard Worker          <empty/>
652*7c568831SAndroid Build Coastguard Worker        </element>
653*7c568831SAndroid Build Coastguard Worker      </optional>
654*7c568831SAndroid Build Coastguard Worker      <optional>
655*7c568831SAndroid Build Coastguard Worker        <element name="script">
656*7c568831SAndroid Build Coastguard Worker          <attribute name="path">
657*7c568831SAndroid Build Coastguard Worker            <ref name="filePath"/>
658*7c568831SAndroid Build Coastguard Worker          </attribute>
659*7c568831SAndroid Build Coastguard Worker          <empty/>
660*7c568831SAndroid Build Coastguard Worker        </element>
661*7c568831SAndroid Build Coastguard Worker      </optional>
662*7c568831SAndroid Build Coastguard Worker      <optional>
663*7c568831SAndroid Build Coastguard Worker        <element name="model">
664*7c568831SAndroid Build Coastguard Worker          <attribute name="type"/>
665*7c568831SAndroid Build Coastguard Worker          <empty/>
666*7c568831SAndroid Build Coastguard Worker        </element>
667*7c568831SAndroid Build Coastguard Worker      </optional>
668*7c568831SAndroid Build Coastguard Worker    </interleave>
669*7c568831SAndroid Build Coastguard Worker  </define>
670*7c568831SAndroid Build Coastguard Worker  <!--
671*7c568831SAndroid Build Coastguard Worker      An emulator description is just a path to the binary used for the task
672*7c568831SAndroid Build Coastguard Worker    -->
673*7c568831SAndroid Build Coastguard Worker  <define name="emulator">
674*7c568831SAndroid Build Coastguard Worker    <element name="emulator">
675*7c568831SAndroid Build Coastguard Worker      <ref name="absFilePath"/>
676*7c568831SAndroid Build Coastguard Worker    </element>
677*7c568831SAndroid Build Coastguard Worker  </define>
678*7c568831SAndroid Build Coastguard Worker  <!--
679*7c568831SAndroid Build Coastguard Worker      A graphic description, currently in Xen only 2 types are supported:
680*7c568831SAndroid Build Coastguard Worker        - sdl with optional display, xauth and fullscreen
681*7c568831SAndroid Build Coastguard Worker        - vnc with a required port and optional listen IP address, password
682*7c568831SAndroid Build Coastguard Worker          and keymap
683*7c568831SAndroid Build Coastguard Worker    -->
684*7c568831SAndroid Build Coastguard Worker  <define name="graphic">
685*7c568831SAndroid Build Coastguard Worker    <element name="graphics">
686*7c568831SAndroid Build Coastguard Worker      <choice>
687*7c568831SAndroid Build Coastguard Worker        <group>
688*7c568831SAndroid Build Coastguard Worker          <attribute name="type">
689*7c568831SAndroid Build Coastguard Worker            <value>sdl</value>
690*7c568831SAndroid Build Coastguard Worker          </attribute>
691*7c568831SAndroid Build Coastguard Worker          <optional>
692*7c568831SAndroid Build Coastguard Worker            <attribute name="display">
693*7c568831SAndroid Build Coastguard Worker              <text/>
694*7c568831SAndroid Build Coastguard Worker            </attribute>
695*7c568831SAndroid Build Coastguard Worker          </optional>
696*7c568831SAndroid Build Coastguard Worker          <optional>
697*7c568831SAndroid Build Coastguard Worker            <attribute name="xauth">
698*7c568831SAndroid Build Coastguard Worker              <text/>
699*7c568831SAndroid Build Coastguard Worker            </attribute>
700*7c568831SAndroid Build Coastguard Worker          </optional>
701*7c568831SAndroid Build Coastguard Worker          <optional>
702*7c568831SAndroid Build Coastguard Worker            <attribute name="fullscreen">
703*7c568831SAndroid Build Coastguard Worker              <choice>
704*7c568831SAndroid Build Coastguard Worker                <value>yes</value>
705*7c568831SAndroid Build Coastguard Worker                <value>no</value>
706*7c568831SAndroid Build Coastguard Worker              </choice>
707*7c568831SAndroid Build Coastguard Worker            </attribute>
708*7c568831SAndroid Build Coastguard Worker          </optional>
709*7c568831SAndroid Build Coastguard Worker        </group>
710*7c568831SAndroid Build Coastguard Worker        <group>
711*7c568831SAndroid Build Coastguard Worker          <attribute name="type">
712*7c568831SAndroid Build Coastguard Worker            <value>vnc</value>
713*7c568831SAndroid Build Coastguard Worker          </attribute>
714*7c568831SAndroid Build Coastguard Worker          <optional>
715*7c568831SAndroid Build Coastguard Worker            <attribute name="port">
716*7c568831SAndroid Build Coastguard Worker              <ref name="PortNumber"/>
717*7c568831SAndroid Build Coastguard Worker            </attribute>
718*7c568831SAndroid Build Coastguard Worker          </optional>
719*7c568831SAndroid Build Coastguard Worker          <optional>
720*7c568831SAndroid Build Coastguard Worker            <attribute name="autoport">
721*7c568831SAndroid Build Coastguard Worker              <choice>
722*7c568831SAndroid Build Coastguard Worker                <value>yes</value>
723*7c568831SAndroid Build Coastguard Worker                <value>no</value>
724*7c568831SAndroid Build Coastguard Worker              </choice>
725*7c568831SAndroid Build Coastguard Worker            </attribute>
726*7c568831SAndroid Build Coastguard Worker          </optional>
727*7c568831SAndroid Build Coastguard Worker          <optional>
728*7c568831SAndroid Build Coastguard Worker            <attribute name="listen">
729*7c568831SAndroid Build Coastguard Worker              <ref name="addrIP"/>
730*7c568831SAndroid Build Coastguard Worker            </attribute>
731*7c568831SAndroid Build Coastguard Worker          </optional>
732*7c568831SAndroid Build Coastguard Worker          <optional>
733*7c568831SAndroid Build Coastguard Worker            <attribute name="passwd">
734*7c568831SAndroid Build Coastguard Worker              <text/>
735*7c568831SAndroid Build Coastguard Worker            </attribute>
736*7c568831SAndroid Build Coastguard Worker          </optional>
737*7c568831SAndroid Build Coastguard Worker          <optional>
738*7c568831SAndroid Build Coastguard Worker            <attribute name="keymap">
739*7c568831SAndroid Build Coastguard Worker              <text/>
740*7c568831SAndroid Build Coastguard Worker            </attribute>
741*7c568831SAndroid Build Coastguard Worker          </optional>
742*7c568831SAndroid Build Coastguard Worker        </group>
743*7c568831SAndroid Build Coastguard Worker        <group>
744*7c568831SAndroid Build Coastguard Worker          <attribute name="type">
745*7c568831SAndroid Build Coastguard Worker            <value>rdp</value>
746*7c568831SAndroid Build Coastguard Worker          </attribute>
747*7c568831SAndroid Build Coastguard Worker          <optional>
748*7c568831SAndroid Build Coastguard Worker            <attribute name="port">
749*7c568831SAndroid Build Coastguard Worker              <ref name="PortNumber"/>
750*7c568831SAndroid Build Coastguard Worker            </attribute>
751*7c568831SAndroid Build Coastguard Worker          </optional>
752*7c568831SAndroid Build Coastguard Worker          <optional>
753*7c568831SAndroid Build Coastguard Worker            <attribute name="autoport">
754*7c568831SAndroid Build Coastguard Worker              <choice>
755*7c568831SAndroid Build Coastguard Worker                <value>yes</value>
756*7c568831SAndroid Build Coastguard Worker                <value>no</value>
757*7c568831SAndroid Build Coastguard Worker              </choice>
758*7c568831SAndroid Build Coastguard Worker            </attribute>
759*7c568831SAndroid Build Coastguard Worker          </optional>
760*7c568831SAndroid Build Coastguard Worker          <optional>
761*7c568831SAndroid Build Coastguard Worker            <attribute name="replaceUser">
762*7c568831SAndroid Build Coastguard Worker              <choice>
763*7c568831SAndroid Build Coastguard Worker                <value>yes</value>
764*7c568831SAndroid Build Coastguard Worker                <value>no</value>
765*7c568831SAndroid Build Coastguard Worker              </choice>
766*7c568831SAndroid Build Coastguard Worker            </attribute>
767*7c568831SAndroid Build Coastguard Worker          </optional>
768*7c568831SAndroid Build Coastguard Worker          <optional>
769*7c568831SAndroid Build Coastguard Worker            <attribute name="multiUser">
770*7c568831SAndroid Build Coastguard Worker              <choice>
771*7c568831SAndroid Build Coastguard Worker                <value>yes</value>
772*7c568831SAndroid Build Coastguard Worker                <value>no</value>
773*7c568831SAndroid Build Coastguard Worker              </choice>
774*7c568831SAndroid Build Coastguard Worker            </attribute>
775*7c568831SAndroid Build Coastguard Worker          </optional>
776*7c568831SAndroid Build Coastguard Worker          <optional>
777*7c568831SAndroid Build Coastguard Worker            <attribute name="listen">
778*7c568831SAndroid Build Coastguard Worker              <ref name="addrIP"/>
779*7c568831SAndroid Build Coastguard Worker            </attribute>
780*7c568831SAndroid Build Coastguard Worker          </optional>
781*7c568831SAndroid Build Coastguard Worker        </group>
782*7c568831SAndroid Build Coastguard Worker        <group>
783*7c568831SAndroid Build Coastguard Worker          <attribute name="type">
784*7c568831SAndroid Build Coastguard Worker            <value>desktop</value>
785*7c568831SAndroid Build Coastguard Worker          </attribute>
786*7c568831SAndroid Build Coastguard Worker          <optional>
787*7c568831SAndroid Build Coastguard Worker            <attribute name="display">
788*7c568831SAndroid Build Coastguard Worker              <text/>
789*7c568831SAndroid Build Coastguard Worker            </attribute>
790*7c568831SAndroid Build Coastguard Worker          </optional>
791*7c568831SAndroid Build Coastguard Worker          <optional>
792*7c568831SAndroid Build Coastguard Worker            <attribute name="fullscreen">
793*7c568831SAndroid Build Coastguard Worker              <choice>
794*7c568831SAndroid Build Coastguard Worker                <value>yes</value>
795*7c568831SAndroid Build Coastguard Worker                <value>no</value>
796*7c568831SAndroid Build Coastguard Worker              </choice>
797*7c568831SAndroid Build Coastguard Worker            </attribute>
798*7c568831SAndroid Build Coastguard Worker          </optional>
799*7c568831SAndroid Build Coastguard Worker        </group>
800*7c568831SAndroid Build Coastguard Worker      </choice>
801*7c568831SAndroid Build Coastguard Worker    </element>
802*7c568831SAndroid Build Coastguard Worker  </define>
803*7c568831SAndroid Build Coastguard Worker  <!--
804*7c568831SAndroid Build Coastguard Worker     A graphic description, currently in Xen only 2 types are supported:
805*7c568831SAndroid Build Coastguard Worker       - sdl with optional display, xauth and fullscreen
806*7c568831SAndroid Build Coastguard Worker       - vnc with a required port and optional listen IP address, password
807*7c568831SAndroid Build Coastguard Worker         and keymap
808*7c568831SAndroid Build Coastguard Worker   -->
809*7c568831SAndroid Build Coastguard Worker  <define name="video">
810*7c568831SAndroid Build Coastguard Worker    <element name="video">
811*7c568831SAndroid Build Coastguard Worker      <optional>
812*7c568831SAndroid Build Coastguard Worker	<element name="model">
813*7c568831SAndroid Build Coastguard Worker          <attribute name="type">
814*7c568831SAndroid Build Coastguard Worker            <choice>
815*7c568831SAndroid Build Coastguard Worker              <value>vga</value>
816*7c568831SAndroid Build Coastguard Worker              <value>cirrus</value>
817*7c568831SAndroid Build Coastguard Worker              <value>vmvga</value>
818*7c568831SAndroid Build Coastguard Worker              <value>xen</value>
819*7c568831SAndroid Build Coastguard Worker              <value>vbox</value>
820*7c568831SAndroid Build Coastguard Worker            </choice>
821*7c568831SAndroid Build Coastguard Worker          </attribute>
822*7c568831SAndroid Build Coastguard Worker          <optional>
823*7c568831SAndroid Build Coastguard Worker            <attribute name="vram">
824*7c568831SAndroid Build Coastguard Worker              <ref name="unsignedInt"/>
825*7c568831SAndroid Build Coastguard Worker            </attribute>
826*7c568831SAndroid Build Coastguard Worker          </optional>
827*7c568831SAndroid Build Coastguard Worker          <optional>
828*7c568831SAndroid Build Coastguard Worker            <attribute name="heads">
829*7c568831SAndroid Build Coastguard Worker              <ref name="unsignedInt"/>
830*7c568831SAndroid Build Coastguard Worker            </attribute>
831*7c568831SAndroid Build Coastguard Worker          </optional>
832*7c568831SAndroid Build Coastguard Worker          <optional>
833*7c568831SAndroid Build Coastguard Worker            <element name="acceleration">
834*7c568831SAndroid Build Coastguard Worker              <optional>
835*7c568831SAndroid Build Coastguard Worker                <attribute name="accel3d">
836*7c568831SAndroid Build Coastguard Worker                  <choice>
837*7c568831SAndroid Build Coastguard Worker                    <value>yes</value>
838*7c568831SAndroid Build Coastguard Worker                    <value>no</value>
839*7c568831SAndroid Build Coastguard Worker                  </choice>
840*7c568831SAndroid Build Coastguard Worker                </attribute>
841*7c568831SAndroid Build Coastguard Worker              </optional>
842*7c568831SAndroid Build Coastguard Worker              <optional>
843*7c568831SAndroid Build Coastguard Worker                <attribute name="accel2d">
844*7c568831SAndroid Build Coastguard Worker                  <choice>
845*7c568831SAndroid Build Coastguard Worker                    <value>yes</value>
846*7c568831SAndroid Build Coastguard Worker                    <value>no</value>
847*7c568831SAndroid Build Coastguard Worker                  </choice>
848*7c568831SAndroid Build Coastguard Worker                </attribute>
849*7c568831SAndroid Build Coastguard Worker              </optional>
850*7c568831SAndroid Build Coastguard Worker            </element>
851*7c568831SAndroid Build Coastguard Worker          </optional>
852*7c568831SAndroid Build Coastguard Worker	</element>
853*7c568831SAndroid Build Coastguard Worker      </optional>
854*7c568831SAndroid Build Coastguard Worker    </element>
855*7c568831SAndroid Build Coastguard Worker  </define>
856*7c568831SAndroid Build Coastguard Worker  <!--
857*7c568831SAndroid Build Coastguard Worker      When a domain terminates multiple policies can be applied depending
858*7c568831SAndroid Build Coastguard Worker      on how it ended:
859*7c568831SAndroid Build Coastguard Worker    -->
860*7c568831SAndroid Build Coastguard Worker  <define name="termination">
861*7c568831SAndroid Build Coastguard Worker    <interleave>
862*7c568831SAndroid Build Coastguard Worker      <optional>
863*7c568831SAndroid Build Coastguard Worker        <element name="on_reboot">
864*7c568831SAndroid Build Coastguard Worker          <ref name="offOptions"/>
865*7c568831SAndroid Build Coastguard Worker        </element>
866*7c568831SAndroid Build Coastguard Worker      </optional>
867*7c568831SAndroid Build Coastguard Worker      <optional>
868*7c568831SAndroid Build Coastguard Worker        <element name="on_poweroff">
869*7c568831SAndroid Build Coastguard Worker          <ref name="offOptions"/>
870*7c568831SAndroid Build Coastguard Worker        </element>
871*7c568831SAndroid Build Coastguard Worker      </optional>
872*7c568831SAndroid Build Coastguard Worker      <optional>
873*7c568831SAndroid Build Coastguard Worker        <element name="on_crash">
874*7c568831SAndroid Build Coastguard Worker          <ref name="offOptions"/>
875*7c568831SAndroid Build Coastguard Worker        </element>
876*7c568831SAndroid Build Coastguard Worker      </optional>
877*7c568831SAndroid Build Coastguard Worker    </interleave>
878*7c568831SAndroid Build Coastguard Worker  </define>
879*7c568831SAndroid Build Coastguard Worker  <!--
880*7c568831SAndroid Build Coastguard Worker      Options when a domain terminates:
881*7c568831SAndroid Build Coastguard Worker      destroy: The domain is cleaned up
882*7c568831SAndroid Build Coastguard Worker      restart: A new domain is started in place of the old one
883*7c568831SAndroid Build Coastguard Worker      preserve: The domain will remain in memory until it is destroyed manually
884*7c568831SAndroid Build Coastguard Worker      rename-restart: a variant of the previous one but where the old domain is
885*7c568831SAndroid Build Coastguard Worker                      renamed before being saved to allow a restart
886*7c568831SAndroid Build Coastguard Worker    -->
887*7c568831SAndroid Build Coastguard Worker  <define name="offOptions">
888*7c568831SAndroid Build Coastguard Worker    <choice>
889*7c568831SAndroid Build Coastguard Worker      <value>destroy</value>
890*7c568831SAndroid Build Coastguard Worker      <value>restart</value>
891*7c568831SAndroid Build Coastguard Worker      <value>preserve</value>
892*7c568831SAndroid Build Coastguard Worker      <value>rename-restart</value>
893*7c568831SAndroid Build Coastguard Worker    </choice>
894*7c568831SAndroid Build Coastguard Worker  </define>
895*7c568831SAndroid Build Coastguard Worker  <!--
896*7c568831SAndroid Build Coastguard Worker      Specific setup for a qemu emulated character device.  Note: this
897*7c568831SAndroid Build Coastguard Worker      definition doesn't fully specify the constraints on this node.
898*7c568831SAndroid Build Coastguard Worker    -->
899*7c568831SAndroid Build Coastguard Worker  <define name="qemucdev">
900*7c568831SAndroid Build Coastguard Worker    <attribute name="type">
901*7c568831SAndroid Build Coastguard Worker      <choice>
902*7c568831SAndroid Build Coastguard Worker        <value>dev</value>
903*7c568831SAndroid Build Coastguard Worker        <value>file</value>
904*7c568831SAndroid Build Coastguard Worker        <value>pipe</value>
905*7c568831SAndroid Build Coastguard Worker        <value>unix</value>
906*7c568831SAndroid Build Coastguard Worker        <value>tcp</value>
907*7c568831SAndroid Build Coastguard Worker        <value>udp</value>
908*7c568831SAndroid Build Coastguard Worker        <value>null</value>
909*7c568831SAndroid Build Coastguard Worker        <value>stdio</value>
910*7c568831SAndroid Build Coastguard Worker        <value>vc</value>
911*7c568831SAndroid Build Coastguard Worker        <value>pty</value>
912*7c568831SAndroid Build Coastguard Worker      </choice>
913*7c568831SAndroid Build Coastguard Worker    </attribute>
914*7c568831SAndroid Build Coastguard Worker    <interleave>
915*7c568831SAndroid Build Coastguard Worker      <optional>
916*7c568831SAndroid Build Coastguard Worker        <oneOrMore>
917*7c568831SAndroid Build Coastguard Worker          <element name="source">
918*7c568831SAndroid Build Coastguard Worker            <optional>
919*7c568831SAndroid Build Coastguard Worker              <attribute name="mode"/>
920*7c568831SAndroid Build Coastguard Worker            </optional>
921*7c568831SAndroid Build Coastguard Worker            <optional>
922*7c568831SAndroid Build Coastguard Worker              <attribute name="path"/>
923*7c568831SAndroid Build Coastguard Worker            </optional>
924*7c568831SAndroid Build Coastguard Worker            <optional>
925*7c568831SAndroid Build Coastguard Worker              <attribute name="host"/>
926*7c568831SAndroid Build Coastguard Worker            </optional>
927*7c568831SAndroid Build Coastguard Worker            <optional>
928*7c568831SAndroid Build Coastguard Worker              <attribute name="service"/>
929*7c568831SAndroid Build Coastguard Worker            </optional>
930*7c568831SAndroid Build Coastguard Worker            <optional>
931*7c568831SAndroid Build Coastguard Worker              <attribute name="wiremode"/>
932*7c568831SAndroid Build Coastguard Worker            </optional>
933*7c568831SAndroid Build Coastguard Worker          </element>
934*7c568831SAndroid Build Coastguard Worker        </oneOrMore>
935*7c568831SAndroid Build Coastguard Worker      </optional>
936*7c568831SAndroid Build Coastguard Worker      <optional>
937*7c568831SAndroid Build Coastguard Worker        <element name="protocol">
938*7c568831SAndroid Build Coastguard Worker          <optional>
939*7c568831SAndroid Build Coastguard Worker            <attribute name="type"/>
940*7c568831SAndroid Build Coastguard Worker          </optional>
941*7c568831SAndroid Build Coastguard Worker        </element>
942*7c568831SAndroid Build Coastguard Worker      </optional>
943*7c568831SAndroid Build Coastguard Worker      <optional>
944*7c568831SAndroid Build Coastguard Worker        <element name="target">
945*7c568831SAndroid Build Coastguard Worker          <optional>
946*7c568831SAndroid Build Coastguard Worker            <attribute name="port"/>
947*7c568831SAndroid Build Coastguard Worker          </optional>
948*7c568831SAndroid Build Coastguard Worker        </element>
949*7c568831SAndroid Build Coastguard Worker      </optional>
950*7c568831SAndroid Build Coastguard Worker    </interleave>
951*7c568831SAndroid Build Coastguard Worker  </define>
952*7c568831SAndroid Build Coastguard Worker  <!--
953*7c568831SAndroid Build Coastguard Worker      The description for a console
954*7c568831SAndroid Build Coastguard Worker      just a tty device
955*7c568831SAndroid Build Coastguard Worker    -->
956*7c568831SAndroid Build Coastguard Worker  <define name="console">
957*7c568831SAndroid Build Coastguard Worker    <element name="console">
958*7c568831SAndroid Build Coastguard Worker      <choice>
959*7c568831SAndroid Build Coastguard Worker        <group>
960*7c568831SAndroid Build Coastguard Worker          <optional>
961*7c568831SAndroid Build Coastguard Worker            <attribute name="tty">
962*7c568831SAndroid Build Coastguard Worker              <ref name="devicePath"/>
963*7c568831SAndroid Build Coastguard Worker            </attribute>
964*7c568831SAndroid Build Coastguard Worker          </optional>
965*7c568831SAndroid Build Coastguard Worker          <empty/>
966*7c568831SAndroid Build Coastguard Worker        </group>
967*7c568831SAndroid Build Coastguard Worker        <ref name="qemucdev"/>
968*7c568831SAndroid Build Coastguard Worker      </choice>
969*7c568831SAndroid Build Coastguard Worker    </element>
970*7c568831SAndroid Build Coastguard Worker  </define>
971*7c568831SAndroid Build Coastguard Worker  <define name="sound">
972*7c568831SAndroid Build Coastguard Worker    <element name="sound">
973*7c568831SAndroid Build Coastguard Worker      <attribute name="model">
974*7c568831SAndroid Build Coastguard Worker        <choice>
975*7c568831SAndroid Build Coastguard Worker          <value>sb16</value>
976*7c568831SAndroid Build Coastguard Worker          <value>es1370</value>
977*7c568831SAndroid Build Coastguard Worker          <value>pcspk</value>
978*7c568831SAndroid Build Coastguard Worker          <value>ac97</value>
979*7c568831SAndroid Build Coastguard Worker        </choice>
980*7c568831SAndroid Build Coastguard Worker      </attribute>
981*7c568831SAndroid Build Coastguard Worker    </element>
982*7c568831SAndroid Build Coastguard Worker  </define>
983*7c568831SAndroid Build Coastguard Worker  <define name="parallel">
984*7c568831SAndroid Build Coastguard Worker    <element name="parallel">
985*7c568831SAndroid Build Coastguard Worker      <ref name="qemucdev"/>
986*7c568831SAndroid Build Coastguard Worker    </element>
987*7c568831SAndroid Build Coastguard Worker  </define>
988*7c568831SAndroid Build Coastguard Worker  <define name="serial">
989*7c568831SAndroid Build Coastguard Worker    <element name="serial">
990*7c568831SAndroid Build Coastguard Worker      <ref name="qemucdev"/>
991*7c568831SAndroid Build Coastguard Worker    </element>
992*7c568831SAndroid Build Coastguard Worker  </define>
993*7c568831SAndroid Build Coastguard Worker  <define name="input">
994*7c568831SAndroid Build Coastguard Worker    <element name="input">
995*7c568831SAndroid Build Coastguard Worker      <attribute name="type">
996*7c568831SAndroid Build Coastguard Worker        <choice>
997*7c568831SAndroid Build Coastguard Worker          <value>tablet</value>
998*7c568831SAndroid Build Coastguard Worker          <value>mouse</value>
999*7c568831SAndroid Build Coastguard Worker        </choice>
1000*7c568831SAndroid Build Coastguard Worker      </attribute>
1001*7c568831SAndroid Build Coastguard Worker      <optional>
1002*7c568831SAndroid Build Coastguard Worker        <attribute name="bus">
1003*7c568831SAndroid Build Coastguard Worker          <choice>
1004*7c568831SAndroid Build Coastguard Worker            <value>ps2</value>
1005*7c568831SAndroid Build Coastguard Worker            <value>usb</value>
1006*7c568831SAndroid Build Coastguard Worker            <value>xen</value>
1007*7c568831SAndroid Build Coastguard Worker          </choice>
1008*7c568831SAndroid Build Coastguard Worker        </attribute>
1009*7c568831SAndroid Build Coastguard Worker      </optional>
1010*7c568831SAndroid Build Coastguard Worker    </element>
1011*7c568831SAndroid Build Coastguard Worker  </define>
1012*7c568831SAndroid Build Coastguard Worker  <define name="hostdev">
1013*7c568831SAndroid Build Coastguard Worker    <element name="hostdev">
1014*7c568831SAndroid Build Coastguard Worker      <optional>
1015*7c568831SAndroid Build Coastguard Worker        <attribute name="mode">
1016*7c568831SAndroid Build Coastguard Worker          <choice>
1017*7c568831SAndroid Build Coastguard Worker            <value>subsystem</value>
1018*7c568831SAndroid Build Coastguard Worker            <value>capabilities</value>
1019*7c568831SAndroid Build Coastguard Worker          </choice>
1020*7c568831SAndroid Build Coastguard Worker        </attribute>
1021*7c568831SAndroid Build Coastguard Worker        <attribute name="type">
1022*7c568831SAndroid Build Coastguard Worker          <choice>
1023*7c568831SAndroid Build Coastguard Worker            <value>usb</value>
1024*7c568831SAndroid Build Coastguard Worker            <value>pci</value>
1025*7c568831SAndroid Build Coastguard Worker          </choice>
1026*7c568831SAndroid Build Coastguard Worker        </attribute>
1027*7c568831SAndroid Build Coastguard Worker        <attribute name="managed">
1028*7c568831SAndroid Build Coastguard Worker          <choice>
1029*7c568831SAndroid Build Coastguard Worker            <value>yes</value>
1030*7c568831SAndroid Build Coastguard Worker            <value>no</value>
1031*7c568831SAndroid Build Coastguard Worker          </choice>
1032*7c568831SAndroid Build Coastguard Worker        </attribute>
1033*7c568831SAndroid Build Coastguard Worker      </optional>
1034*7c568831SAndroid Build Coastguard Worker      <group>
1035*7c568831SAndroid Build Coastguard Worker        <element name="source">
1036*7c568831SAndroid Build Coastguard Worker          <choice>
1037*7c568831SAndroid Build Coastguard Worker            <ref name="usbproduct"/>
1038*7c568831SAndroid Build Coastguard Worker            <ref name="usbaddress"/>
1039*7c568831SAndroid Build Coastguard Worker            <ref name="pciaddress"/>
1040*7c568831SAndroid Build Coastguard Worker          </choice>
1041*7c568831SAndroid Build Coastguard Worker        </element>
1042*7c568831SAndroid Build Coastguard Worker      </group>
1043*7c568831SAndroid Build Coastguard Worker    </element>
1044*7c568831SAndroid Build Coastguard Worker  </define>
1045*7c568831SAndroid Build Coastguard Worker  <define name="usbproduct">
1046*7c568831SAndroid Build Coastguard Worker    <element name="vendor">
1047*7c568831SAndroid Build Coastguard Worker      <attribute name="id">
1048*7c568831SAndroid Build Coastguard Worker        <ref name="usbId"/>
1049*7c568831SAndroid Build Coastguard Worker      </attribute>
1050*7c568831SAndroid Build Coastguard Worker    </element>
1051*7c568831SAndroid Build Coastguard Worker    <element name="product">
1052*7c568831SAndroid Build Coastguard Worker      <attribute name="id">
1053*7c568831SAndroid Build Coastguard Worker        <ref name="usbId"/>
1054*7c568831SAndroid Build Coastguard Worker      </attribute>
1055*7c568831SAndroid Build Coastguard Worker    </element>
1056*7c568831SAndroid Build Coastguard Worker  </define>
1057*7c568831SAndroid Build Coastguard Worker  <define name="usbaddress">
1058*7c568831SAndroid Build Coastguard Worker    <element name="address">
1059*7c568831SAndroid Build Coastguard Worker      <attribute name="bus">
1060*7c568831SAndroid Build Coastguard Worker        <ref name="usbAddr"/>
1061*7c568831SAndroid Build Coastguard Worker      </attribute>
1062*7c568831SAndroid Build Coastguard Worker      <attribute name="device">
1063*7c568831SAndroid Build Coastguard Worker        <ref name="usbAddr"/>
1064*7c568831SAndroid Build Coastguard Worker      </attribute>
1065*7c568831SAndroid Build Coastguard Worker    </element>
1066*7c568831SAndroid Build Coastguard Worker  </define>
1067*7c568831SAndroid Build Coastguard Worker  <define name="pciaddress">
1068*7c568831SAndroid Build Coastguard Worker    <element name="address">
1069*7c568831SAndroid Build Coastguard Worker      <optional>
1070*7c568831SAndroid Build Coastguard Worker        <attribute name="domain">
1071*7c568831SAndroid Build Coastguard Worker          <ref name="pciDomain"/>
1072*7c568831SAndroid Build Coastguard Worker        </attribute>
1073*7c568831SAndroid Build Coastguard Worker      </optional>
1074*7c568831SAndroid Build Coastguard Worker      <attribute name="bus">
1075*7c568831SAndroid Build Coastguard Worker        <ref name="pciBus"/>
1076*7c568831SAndroid Build Coastguard Worker      </attribute>
1077*7c568831SAndroid Build Coastguard Worker      <attribute name="slot">
1078*7c568831SAndroid Build Coastguard Worker        <ref name="pciSlot"/>
1079*7c568831SAndroid Build Coastguard Worker      </attribute>
1080*7c568831SAndroid Build Coastguard Worker      <attribute name="function">
1081*7c568831SAndroid Build Coastguard Worker        <ref name="pciFunc"/>
1082*7c568831SAndroid Build Coastguard Worker      </attribute>
1083*7c568831SAndroid Build Coastguard Worker    </element>
1084*7c568831SAndroid Build Coastguard Worker  </define>
1085*7c568831SAndroid Build Coastguard Worker  <!--
1086*7c568831SAndroid Build Coastguard Worker      Devices attached to a domain.
1087*7c568831SAndroid Build Coastguard Worker    -->
1088*7c568831SAndroid Build Coastguard Worker  <define name="devices">
1089*7c568831SAndroid Build Coastguard Worker    <element name="devices">
1090*7c568831SAndroid Build Coastguard Worker      <interleave>
1091*7c568831SAndroid Build Coastguard Worker        <optional>
1092*7c568831SAndroid Build Coastguard Worker          <ref name="emulator"/>
1093*7c568831SAndroid Build Coastguard Worker        </optional>
1094*7c568831SAndroid Build Coastguard Worker        <zeroOrMore>
1095*7c568831SAndroid Build Coastguard Worker          <choice>
1096*7c568831SAndroid Build Coastguard Worker            <ref name="disk"/>
1097*7c568831SAndroid Build Coastguard Worker            <ref name="filesystem"/>
1098*7c568831SAndroid Build Coastguard Worker            <ref name="interface"/>
1099*7c568831SAndroid Build Coastguard Worker            <ref name="input"/>
1100*7c568831SAndroid Build Coastguard Worker            <ref name="sound"/>
1101*7c568831SAndroid Build Coastguard Worker            <ref name="hostdev"/>
1102*7c568831SAndroid Build Coastguard Worker            <ref name="graphic"/>
1103*7c568831SAndroid Build Coastguard Worker            <ref name="video"/>
1104*7c568831SAndroid Build Coastguard Worker            <ref name="console"/>
1105*7c568831SAndroid Build Coastguard Worker            <ref name="parallel"/>
1106*7c568831SAndroid Build Coastguard Worker            <ref name="serial"/>
1107*7c568831SAndroid Build Coastguard Worker          </choice>
1108*7c568831SAndroid Build Coastguard Worker        </zeroOrMore>
1109*7c568831SAndroid Build Coastguard Worker      </interleave>
1110*7c568831SAndroid Build Coastguard Worker    </element>
1111*7c568831SAndroid Build Coastguard Worker  </define>
1112*7c568831SAndroid Build Coastguard Worker  <!--
1113*7c568831SAndroid Build Coastguard Worker      A set of optional features: PAE, APIC and ACPI support
1114*7c568831SAndroid Build Coastguard Worker    -->
1115*7c568831SAndroid Build Coastguard Worker  <define name="features">
1116*7c568831SAndroid Build Coastguard Worker    <optional>
1117*7c568831SAndroid Build Coastguard Worker      <element name="features">
1118*7c568831SAndroid Build Coastguard Worker        <interleave>
1119*7c568831SAndroid Build Coastguard Worker          <optional>
1120*7c568831SAndroid Build Coastguard Worker            <element name="pae">
1121*7c568831SAndroid Build Coastguard Worker              <empty/>
1122*7c568831SAndroid Build Coastguard Worker            </element>
1123*7c568831SAndroid Build Coastguard Worker          </optional>
1124*7c568831SAndroid Build Coastguard Worker          <optional>
1125*7c568831SAndroid Build Coastguard Worker            <element name="apic">
1126*7c568831SAndroid Build Coastguard Worker              <empty/>
1127*7c568831SAndroid Build Coastguard Worker            </element>
1128*7c568831SAndroid Build Coastguard Worker          </optional>
1129*7c568831SAndroid Build Coastguard Worker          <optional>
1130*7c568831SAndroid Build Coastguard Worker            <element name="acpi">
1131*7c568831SAndroid Build Coastguard Worker              <empty/>
1132*7c568831SAndroid Build Coastguard Worker            </element>
1133*7c568831SAndroid Build Coastguard Worker          </optional>
1134*7c568831SAndroid Build Coastguard Worker        </interleave>
1135*7c568831SAndroid Build Coastguard Worker      </element>
1136*7c568831SAndroid Build Coastguard Worker    </optional>
1137*7c568831SAndroid Build Coastguard Worker  </define>
1138*7c568831SAndroid Build Coastguard Worker  <!--
1139*7c568831SAndroid Build Coastguard Worker       Type library
1140*7c568831SAndroid Build Coastguard Worker
1141*7c568831SAndroid Build Coastguard Worker       Our unsignedInt doesn't allow a leading '+' in its lexical form
1142*7c568831SAndroid Build Coastguard Worker       A domain name shoul be made of ascii, numbers, _-+ and is non-empty
1143*7c568831SAndroid Build Coastguard Worker       UUID currently allows only the 32 characters strict syntax
1144*7c568831SAndroid Build Coastguard Worker       memoryKB request at least 4Mbytes though Xen will grow bigger if too low
1145*7c568831SAndroid Build Coastguard Worker    -->
1146*7c568831SAndroid Build Coastguard Worker  <define name="unsignedInt">
1147*7c568831SAndroid Build Coastguard Worker    <data type="unsignedInt">
1148*7c568831SAndroid Build Coastguard Worker      <param name="pattern">[0-9]+</param>
1149*7c568831SAndroid Build Coastguard Worker    </data>
1150*7c568831SAndroid Build Coastguard Worker  </define>
1151*7c568831SAndroid Build Coastguard Worker  <define name="countCPU">
1152*7c568831SAndroid Build Coastguard Worker    <data type="unsignedShort">
1153*7c568831SAndroid Build Coastguard Worker      <param name="pattern">[0-9]+</param>
1154*7c568831SAndroid Build Coastguard Worker      <param name="minInclusive">1</param>
1155*7c568831SAndroid Build Coastguard Worker    </data>
1156*7c568831SAndroid Build Coastguard Worker  </define>
1157*7c568831SAndroid Build Coastguard Worker  <define name="PortNumber">
1158*7c568831SAndroid Build Coastguard Worker    <data type="short">
1159*7c568831SAndroid Build Coastguard Worker      <param name="minInclusive">-1</param>
1160*7c568831SAndroid Build Coastguard Worker    </data>
1161*7c568831SAndroid Build Coastguard Worker  </define>
1162*7c568831SAndroid Build Coastguard Worker  <define name="memoryKB">
1163*7c568831SAndroid Build Coastguard Worker    <data type="unsignedInt">
1164*7c568831SAndroid Build Coastguard Worker      <param name="pattern">[0-9]+</param>
1165*7c568831SAndroid Build Coastguard Worker      <param name="minInclusive">4000</param>
1166*7c568831SAndroid Build Coastguard Worker    </data>
1167*7c568831SAndroid Build Coastguard Worker  </define>
1168*7c568831SAndroid Build Coastguard Worker  <define name="domainName">
1169*7c568831SAndroid Build Coastguard Worker    <data type="string">
1170*7c568831SAndroid Build Coastguard Worker      <param name="pattern">[A-Za-z0-9_\.\+\-&amp;:/]+</param>
1171*7c568831SAndroid Build Coastguard Worker    </data>
1172*7c568831SAndroid Build Coastguard Worker  </define>
1173*7c568831SAndroid Build Coastguard Worker  <define name="diskSerial">
1174*7c568831SAndroid Build Coastguard Worker    <data type="string">
1175*7c568831SAndroid Build Coastguard Worker      <param name="pattern">[A-Za-z0-9_\.\+\-]+</param>
1176*7c568831SAndroid Build Coastguard Worker    </data>
1177*7c568831SAndroid Build Coastguard Worker  </define>
1178*7c568831SAndroid Build Coastguard Worker  <define name="genericName">
1179*7c568831SAndroid Build Coastguard Worker    <data type="string">
1180*7c568831SAndroid Build Coastguard Worker      <param name="pattern">[a-zA-Z0-9_\+\-]+</param>
1181*7c568831SAndroid Build Coastguard Worker    </data>
1182*7c568831SAndroid Build Coastguard Worker  </define>
1183*7c568831SAndroid Build Coastguard Worker  <define name="UUID">
1184*7c568831SAndroid Build Coastguard Worker    <choice>
1185*7c568831SAndroid Build Coastguard Worker      <data type="string">
1186*7c568831SAndroid Build Coastguard Worker        <param name="pattern">[a-fA-F0-9]{32}</param>
1187*7c568831SAndroid Build Coastguard Worker      </data>
1188*7c568831SAndroid Build Coastguard Worker      <data type="string">
1189*7c568831SAndroid Build Coastguard Worker        <param name="pattern">[a-fA-F0-9]{8}\-([a-fA-F0-9]{4}\-){3}[a-fA-F0-9]{12}</param>
1190*7c568831SAndroid Build Coastguard Worker      </data>
1191*7c568831SAndroid Build Coastguard Worker    </choice>
1192*7c568831SAndroid Build Coastguard Worker  </define>
1193*7c568831SAndroid Build Coastguard Worker  <define name="filePath">
1194*7c568831SAndroid Build Coastguard Worker    <data type="string">
1195*7c568831SAndroid Build Coastguard Worker      <param name="pattern">[a-zA-Z0-9_\.\+\-&amp;/%]+</param>
1196*7c568831SAndroid Build Coastguard Worker    </data>
1197*7c568831SAndroid Build Coastguard Worker  </define>
1198*7c568831SAndroid Build Coastguard Worker  <define name="absFilePath">
1199*7c568831SAndroid Build Coastguard Worker    <data type="string">
1200*7c568831SAndroid Build Coastguard Worker      <param name="pattern">/[a-zA-Z0-9_\.\+\-&amp;/%]+</param>
1201*7c568831SAndroid Build Coastguard Worker    </data>
1202*7c568831SAndroid Build Coastguard Worker  </define>
1203*7c568831SAndroid Build Coastguard Worker  <define name="absDirPath">
1204*7c568831SAndroid Build Coastguard Worker    <data type="string">
1205*7c568831SAndroid Build Coastguard Worker      <param name="pattern">/[a-zA-Z0-9_\.\+\-&amp;/%]*</param>
1206*7c568831SAndroid Build Coastguard Worker    </data>
1207*7c568831SAndroid Build Coastguard Worker  </define>
1208*7c568831SAndroid Build Coastguard Worker  <define name="devicePath">
1209*7c568831SAndroid Build Coastguard Worker    <data type="string">
1210*7c568831SAndroid Build Coastguard Worker      <param name="pattern">/[a-zA-Z0-9_\+\-/%]+</param>
1211*7c568831SAndroid Build Coastguard Worker    </data>
1212*7c568831SAndroid Build Coastguard Worker  </define>
1213*7c568831SAndroid Build Coastguard Worker  <define name="deviceName">
1214*7c568831SAndroid Build Coastguard Worker    <data type="string">
1215*7c568831SAndroid Build Coastguard Worker      <param name="pattern">[a-zA-Z0-9_\.\-:/]+</param>
1216*7c568831SAndroid Build Coastguard Worker    </data>
1217*7c568831SAndroid Build Coastguard Worker  </define>
1218*7c568831SAndroid Build Coastguard Worker  <define name="addrMAC">
1219*7c568831SAndroid Build Coastguard Worker    <data type="string">
1220*7c568831SAndroid Build Coastguard Worker      <param name="pattern">([a-fA-F0-9]{2}:){5}[a-fA-F0-9]{2}</param>
1221*7c568831SAndroid Build Coastguard Worker    </data>
1222*7c568831SAndroid Build Coastguard Worker  </define>
1223*7c568831SAndroid Build Coastguard Worker  <define name="addrIP">
1224*7c568831SAndroid Build Coastguard Worker    <data type="string">
1225*7c568831SAndroid Build Coastguard Worker      <param name="pattern">([0-2]?[0-9]?[0-9]\.){3}[0-2]?[0-9]?[0-9]</param>
1226*7c568831SAndroid Build Coastguard Worker    </data>
1227*7c568831SAndroid Build Coastguard Worker  </define>
1228*7c568831SAndroid Build Coastguard Worker  <define name="usbId">
1229*7c568831SAndroid Build Coastguard Worker    <data type="string">
1230*7c568831SAndroid Build Coastguard Worker      <param name="pattern">(0x)?[0-9a-fA-F]{1,4}</param>
1231*7c568831SAndroid Build Coastguard Worker    </data>
1232*7c568831SAndroid Build Coastguard Worker  </define>
1233*7c568831SAndroid Build Coastguard Worker  <define name="usbAddr">
1234*7c568831SAndroid Build Coastguard Worker    <data type="string">
1235*7c568831SAndroid Build Coastguard Worker      <param name="pattern">(0x)?[0-9a-fA-F]{1,3}</param>
1236*7c568831SAndroid Build Coastguard Worker    </data>
1237*7c568831SAndroid Build Coastguard Worker  </define>
1238*7c568831SAndroid Build Coastguard Worker  <define name="pciDomain">
1239*7c568831SAndroid Build Coastguard Worker    <data type="string">
1240*7c568831SAndroid Build Coastguard Worker      <param name="pattern">(0x)?[0-9a-fA-F]{1,4}</param>
1241*7c568831SAndroid Build Coastguard Worker    </data>
1242*7c568831SAndroid Build Coastguard Worker  </define>
1243*7c568831SAndroid Build Coastguard Worker  <define name="pciBus">
1244*7c568831SAndroid Build Coastguard Worker    <data type="string">
1245*7c568831SAndroid Build Coastguard Worker      <param name="pattern">(0x)?[0-9a-fA-F]{1,2}</param>
1246*7c568831SAndroid Build Coastguard Worker    </data>
1247*7c568831SAndroid Build Coastguard Worker  </define>
1248*7c568831SAndroid Build Coastguard Worker  <define name="pciSlot">
1249*7c568831SAndroid Build Coastguard Worker    <data type="string">
1250*7c568831SAndroid Build Coastguard Worker      <param name="pattern">(0x)?[0-1]?[0-9a-fA-F]</param>
1251*7c568831SAndroid Build Coastguard Worker    </data>
1252*7c568831SAndroid Build Coastguard Worker  </define>
1253*7c568831SAndroid Build Coastguard Worker  <define name="pciFunc">
1254*7c568831SAndroid Build Coastguard Worker    <data type="string">
1255*7c568831SAndroid Build Coastguard Worker      <param name="pattern">(0x)?[0-7]</param>
1256*7c568831SAndroid Build Coastguard Worker    </data>
1257*7c568831SAndroid Build Coastguard Worker  </define>
1258*7c568831SAndroid Build Coastguard Worker</grammar>
1259