---
docs/formatdomain.html.in | 5 +++++
docs/schemas/domaincommon.rng | 6 ++++++
src/conf/domain_conf.c | 4 ++++
src/conf/domain_conf.h | 1 +
4 files changed, 16 insertions(+), 0 deletions(-)
diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index 35b47f2..b38a668 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -232,6 +232,7 @@
<kernel>/root/f8-i386-vmlinuz</kernel>
<initrd>/root/f8-i386-initrd</initrd>
<cmdline>console=ttyS0
ks=http://example.com/f8-i386/os/</cmdline>
+ <dtb>/root/ppc.dtb</dtb>
</os>
...</pre>
@@ -253,6 +254,10 @@
the kernel (or installer) at boottime. This is often used to
specify an alternate primary console (eg serial port), or the
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>
<h4><a name="eleemntsOSContainer">Container
boot</a></h4>
diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
index c40263c..687f026 100644
--- a/docs/schemas/domaincommon.rng
+++ b/docs/schemas/domaincommon.rng
@@ -367,6 +367,7 @@
<value>g3beige</value>
<value>mac99</value>
<value>prep</value>
+ <value>ppce500v2</value>
</choice>
</attribute>
</optional>
@@ -835,6 +836,11 @@
<text/>
</element>
</optional>
+ <optional>
+ <element name="dtb">
+ <ref name="absFilePath"/>
+ </element>
+ </optional>
</interleave>
</define>
<define name="osbootdev">
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 95d2ff2..0981a5e 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -1849,6 +1849,7 @@ void virDomainDefFree(virDomainDefPtr def)
VIR_FREE(def->os.kernel);
VIR_FREE(def->os.initrd);
VIR_FREE(def->os.cmdline);
+ VIR_FREE(def->os.dtb);
VIR_FREE(def->os.root);
VIR_FREE(def->os.loader);
VIR_FREE(def->os.bootloader);
@@ -10234,6 +10235,7 @@ virDomainDefParseXML(virCapsPtr caps,
def->os.kernel = virXPathString("string(./os/kernel[1])", ctxt);
def->os.initrd = virXPathString("string(./os/initrd[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.loader = virXPathString("string(./os/loader[1])", ctxt);
}
@@ -14856,6 +14858,8 @@ virDomainDefFormatInternal(virDomainDefPtr def,
def->os.initrd);
virBufferEscapeString(buf, " <cmdline>%s</cmdline>\n",
def->os.cmdline);
+ virBufferEscapeString(buf, " <dtb>%s</dtb>\n",
+ def->os.dtb);
virBufferEscapeString(buf, " <root>%s</root>\n",
def->os.root);
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 0fe43c5..1c0b238 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -1550,6 +1550,7 @@ struct _virDomainOSDef {
char *kernel;
char *initrd;
char *cmdline;
+ char *dtb;
char *root;
char *loader;
char *bootloader;
--
1.6.4