From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59020) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XLlXk-00035P-88 for qemu-devel@nongnu.org; Mon, 25 Aug 2014 00:06:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XLlXe-0006vN-Nh for qemu-devel@nongnu.org; Mon, 25 Aug 2014 00:06:08 -0400 Received: from szxga02-in.huawei.com ([119.145.14.65]:51830) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XLlXe-0006tt-2F for qemu-devel@nongnu.org; Mon, 25 Aug 2014 00:06:02 -0400 From: "john.liuli" Date: Mon, 25 Aug 2014 12:00:35 +0800 Message-ID: <1408939237-8444-5-git-send-email-john.liuli@huawei.com> In-Reply-To: <1408939237-8444-1-git-send-email-john.liuli@huawei.com> References: <1408939237-8444-1-git-send-email-john.liuli@huawei.com> MIME-Version: 1.0 Content-Type: text/plain Subject: [Qemu-devel] [PATCH 4/6] device_tree.c: add the main function to analyse the parameter 'dumpdts' List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: peter.crosthwaite@xilinx.com, agraf@suse.de Cc: Li Liu , qemu-devel@nongnu.org From: Li Liu add the main function to analyse the parameter 'dumpdts' as a filename the dts will be dumped to. Signed-off-by: Li Liu --- device_tree.c | 21 +++++++++++++++++++++ include/sysemu/device_tree.h | 1 + 2 files changed, 22 insertions(+) diff --git a/device_tree.c b/device_tree.c index 1e407d2..b9a924f 100644 --- a/device_tree.c +++ b/device_tree.c @@ -496,3 +496,24 @@ static void qemu_write_dts(FILE *fp, void *fdt) fprintf(fp, ";\n"); } } + +void qemu_fdt_dumpdts(void *fdt) +{ + FILE *fp; + const char *filename = qemu_opt_get(qemu_get_machine_opts(), "dumpdts"); + + if (!filename || !fdt) { + return; + } + + fp = fopen(filename, "w"); + if (!fp) { + fprintf(stderr, "Failed to open file '%s'\n", filename); + goto ret; + } + + qemu_write_dts(fp, fdt); + +ret: + fclose(fp); +} diff --git a/include/sysemu/device_tree.h b/include/sysemu/device_tree.h index 899f05c..27145fb 100644 --- a/include/sysemu/device_tree.h +++ b/include/sysemu/device_tree.h @@ -50,6 +50,7 @@ int qemu_fdt_add_subnode(void *fdt, const char *name); } while (0) void qemu_fdt_dumpdtb(void *fdt, int size); +void qemu_fdt_dumpdts(void *fdt); /** * qemu_fdt_setprop_sized_cells_from_array: -- 1.7.9.5