From e37e3e1d73b376ad1ffefac922316ccb19fd5856 Mon Sep 17 00:00:00 2001 From: Luiz Capitulino Date: Mon, 29 Mar 2010 16:14:48 -0300 Subject: [PATCH 13/23] Monitor: Convert do_physical_memory_save() to cmd_new_ret() RH-Author: Luiz Capitulino Message-id: <1269879298-30711-14-git-send-email-lcapitulino@redhat.com> Patchwork-id: 8175 O-Subject: [PATCH 13/23] Monitor: Convert do_physical_memory_save() to cmd_new_ret() Bugzilla: 563491 RH-Acked-by: Markus Armbruster RH-Acked-by: Juan Quintela RH-Acked-by: Kevin Wolf Signed-off-by: Luiz Capitulino Signed-off-by: Anthony Liguori (cherry picked from commit fe38a32acc6d1fb62ed74c351c1cc1d992aa8c50) --- monitor.c | 9 +++++++-- qemu-monitor.hx | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) Signed-off-by: Eduardo Habkost --- monitor.c | 9 +++++++-- qemu-monitor.hx | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/monitor.c b/monitor.c index dd82705..1f94bf8 100644 --- a/monitor.c +++ b/monitor.c @@ -1503,7 +1503,7 @@ exit: return ret; } -static void do_physical_memory_save(Monitor *mon, const QDict *qdict, +static int do_physical_memory_save(Monitor *mon, const QDict *qdict, QObject **ret_data) { FILE *f; @@ -1512,11 +1512,12 @@ static void do_physical_memory_save(Monitor *mon, const QDict *qdict, uint32_t size = qdict_get_int(qdict, "size"); const char *filename = qdict_get_str(qdict, "filename"); target_phys_addr_t addr = qdict_get_int(qdict, "val"); + int ret = -1; f = fopen(filename, "wb"); if (!f) { qemu_error_new(QERR_OPEN_FILE_FAILED, filename); - return; + return -1; } while (size != 0) { l = sizeof(buf); @@ -1531,8 +1532,12 @@ static void do_physical_memory_save(Monitor *mon, const QDict *qdict, addr += l; size -= l; } + + ret = 0; + exit: fclose(f); + return ret; } static void do_sum(Monitor *mon, const QDict *qdict) diff --git a/qemu-monitor.hx b/qemu-monitor.hx index 3044aa6..f21ddb9 100644 --- a/qemu-monitor.hx +++ b/qemu-monitor.hx @@ -684,7 +684,7 @@ ETEXI .params = "addr size file", .help = "save to disk physical memory dump starting at 'addr' of size 'size'", .user_print = monitor_user_noop, - .mhandler.cmd_new = do_physical_memory_save, + .cmd_new_ret = do_physical_memory_save, }, STEXI -- 1.7.0.3