diff options
author | Alexander Graf <agraf@suse.de> | 2012-09-23 08:37:59 +0200 |
---|---|---|
committer | Alexander Graf <agraf@suse.de> | 2012-10-05 02:35:11 +0200 |
commit | 711934334eb3895a89c555c1f57eb3d84ddb2906 (patch) | |
tree | 205011ec755ca752920cf26652949c42d9cdad6e /device_tree.c | |
parent | 011aba24ed73000e126dd1bb90a6bea2afd91649 (diff) | |
download | qemu-711934334eb3895a89c555c1f57eb3d84ddb2906.zip qemu-711934334eb3895a89c555c1f57eb3d84ddb2906.tar.gz qemu-711934334eb3895a89c555c1f57eb3d84ddb2906.tar.bz2 |
fdt: move dumpdtb interpretation code to device_tree.c
The dumpdtb code can be useful in more places than just for e500. Move it
to a generic place.
Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'device_tree.c')
-rw-r--r-- | device_tree.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/device_tree.c b/device_tree.c index d7a9b6b..69ca953 100644 --- a/device_tree.c +++ b/device_tree.c @@ -304,3 +304,25 @@ int qemu_devtree_add_subnode(void *fdt, const char *name) g_free(dupname); return retval; } + +void qemu_devtree_dumpdtb(void *fdt, int size) +{ + QemuOpts *machine_opts; + + machine_opts = qemu_opts_find(qemu_find_opts("machine"), 0); + if (machine_opts) { + const char *dumpdtb = qemu_opt_get(machine_opts, "dumpdtb"); + if (dumpdtb) { + /* Dump the dtb to a file and quit */ + FILE *f = fopen(dumpdtb, "wb"); + size_t len; + len = fwrite(fdt, size, 1, f); + fclose(f); + if (len != size) { + exit(1); + } + exit(0); + } + } + +} |