X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=device_tree.c;h=56af24b397282bbecb14c3cb37cd21bbdf968e39;hb=95efb20c714800de7eaf991f19dab6e7a29d5364;hp=d7a9b6bb89c71e416bb4850549748c6a90229ac9;hpb=ef6bbdf9e5eb6da5cbdea1bf55e08709c6e181d5;p=qemu.git diff --git a/device_tree.c b/device_tree.c index d7a9b6bb8..56af24b39 100644 --- a/device_tree.c +++ b/device_tree.c @@ -20,10 +20,10 @@ #include "config.h" #include "qemu-common.h" -#include "device_tree.h" +#include "sysemu/device_tree.h" #include "hw/loader.h" -#include "qemu-option.h" -#include "qemu-config.h" +#include "qemu/option.h" +#include "qemu/config-file.h" #include @@ -304,3 +304,18 @@ 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 */ + exit(g_file_set_contents(dumpdtb, fdt, size, NULL) ? 0 : 1); + } + } + +}