提交 9545acd9 编写于 作者: O Olivia Yin 提交者: Eric Blake

conf: support <dtb> tag in XML domain file

上级 52ad612c
...@@ -232,6 +232,7 @@ ...@@ -232,6 +232,7 @@
&lt;kernel&gt;/root/f8-i386-vmlinuz&lt;/kernel&gt; &lt;kernel&gt;/root/f8-i386-vmlinuz&lt;/kernel&gt;
&lt;initrd&gt;/root/f8-i386-initrd&lt;/initrd&gt; &lt;initrd&gt;/root/f8-i386-initrd&lt;/initrd&gt;
&lt;cmdline&gt;console=ttyS0 ks=http://example.com/f8-i386/os/&lt;/cmdline&gt; &lt;cmdline&gt;console=ttyS0 ks=http://example.com/f8-i386/os/&lt;/cmdline&gt;
&lt;dtb&gt;/root/ppc.dtb&lt;/dtb&gt;
&lt;/os&gt; &lt;/os&gt;
...</pre> ...</pre>
...@@ -253,6 +254,10 @@ ...@@ -253,6 +254,10 @@
the kernel (or installer) at boottime. This is often used to the kernel (or installer) at boottime. This is often used to
specify an alternate primary console (eg serial port), or the specify an alternate primary console (eg serial port), or the
installation media source / kickstart file</dd> installation media source / kickstart file</dd>
<dt><code>dtb</code></dt>
<dd>The contents of this element specify the fully-qualified path
to the (optional) device tree binary (dtb) image in the host OS.
<span class="since">Since 1.0.4</span></dd>
</dl> </dl>
<h4><a name="eleemntsOSContainer">Container boot</a></h4> <h4><a name="eleemntsOSContainer">Container boot</a></h4>
......
...@@ -367,6 +367,7 @@ ...@@ -367,6 +367,7 @@
<value>g3beige</value> <value>g3beige</value>
<value>mac99</value> <value>mac99</value>
<value>prep</value> <value>prep</value>
<value>ppce500v2</value>
</choice> </choice>
</attribute> </attribute>
</optional> </optional>
...@@ -835,6 +836,11 @@ ...@@ -835,6 +836,11 @@
<text/> <text/>
</element> </element>
</optional> </optional>
<optional>
<element name="dtb">
<ref name="absFilePath"/>
</element>
</optional>
</interleave> </interleave>
</define> </define>
<define name="osbootdev"> <define name="osbootdev">
......
...@@ -1849,6 +1849,7 @@ void virDomainDefFree(virDomainDefPtr def) ...@@ -1849,6 +1849,7 @@ void virDomainDefFree(virDomainDefPtr def)
VIR_FREE(def->os.kernel); VIR_FREE(def->os.kernel);
VIR_FREE(def->os.initrd); VIR_FREE(def->os.initrd);
VIR_FREE(def->os.cmdline); VIR_FREE(def->os.cmdline);
VIR_FREE(def->os.dtb);
VIR_FREE(def->os.root); VIR_FREE(def->os.root);
VIR_FREE(def->os.loader); VIR_FREE(def->os.loader);
VIR_FREE(def->os.bootloader); VIR_FREE(def->os.bootloader);
...@@ -10247,6 +10248,7 @@ virDomainDefParseXML(virCapsPtr caps, ...@@ -10247,6 +10248,7 @@ virDomainDefParseXML(virCapsPtr caps,
def->os.kernel = virXPathString("string(./os/kernel[1])", ctxt); def->os.kernel = virXPathString("string(./os/kernel[1])", ctxt);
def->os.initrd = virXPathString("string(./os/initrd[1])", ctxt); def->os.initrd = virXPathString("string(./os/initrd[1])", ctxt);
def->os.cmdline = virXPathString("string(./os/cmdline[1])", ctxt); def->os.cmdline = virXPathString("string(./os/cmdline[1])", ctxt);
def->os.dtb = virXPathString("string(./os/dtb[1])", ctxt);
def->os.root = virXPathString("string(./os/root[1])", ctxt); def->os.root = virXPathString("string(./os/root[1])", ctxt);
def->os.loader = virXPathString("string(./os/loader[1])", ctxt); def->os.loader = virXPathString("string(./os/loader[1])", ctxt);
} }
...@@ -14875,6 +14877,8 @@ virDomainDefFormatInternal(virDomainDefPtr def, ...@@ -14875,6 +14877,8 @@ virDomainDefFormatInternal(virDomainDefPtr def,
def->os.initrd); def->os.initrd);
virBufferEscapeString(buf, " <cmdline>%s</cmdline>\n", virBufferEscapeString(buf, " <cmdline>%s</cmdline>\n",
def->os.cmdline); def->os.cmdline);
virBufferEscapeString(buf, " <dtb>%s</dtb>\n",
def->os.dtb);
virBufferEscapeString(buf, " <root>%s</root>\n", virBufferEscapeString(buf, " <root>%s</root>\n",
def->os.root); def->os.root);
......
...@@ -1550,6 +1550,7 @@ struct _virDomainOSDef { ...@@ -1550,6 +1550,7 @@ struct _virDomainOSDef {
char *kernel; char *kernel;
char *initrd; char *initrd;
char *cmdline; char *cmdline;
char *dtb;
char *root; char *root;
char *loader; char *loader;
char *bootloader; char *bootloader;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册