From patchwork Thu Feb 11 01:49:58 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [12/21] Monitor: Convert do_memory_save() to cmd_new_ret() Date: Wed, 10 Feb 2010 15:49:58 -0000 From: Luiz Capitulino X-Patchwork-Id: 45093 Message-Id: <1265853007-27300-13-git-send-email-lcapitulino@redhat.com> To: qemu-devel@nongnu.org Cc: armbru@redhat.com Signed-off-by: Luiz Capitulino --- monitor.c | 9 +++++++-- qemu-monitor.hx | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/monitor.c b/monitor.c index 9338d13..7747449 100644 --- a/monitor.c +++ b/monitor.c @@ -1428,7 +1428,7 @@ static void do_print(Monitor *mon, const QDict *qdict) monitor_printf(mon, "\n"); } -static void do_memory_save(Monitor *mon, const QDict *qdict, QObject **ret_data) +static int do_memory_save(Monitor *mon, const QDict *qdict, QObject **ret_data) { FILE *f; uint32_t size = qdict_get_int(qdict, "size"); @@ -1437,13 +1437,14 @@ static void do_memory_save(Monitor *mon, const QDict *qdict, QObject **ret_data) uint32_t l; CPUState *env; uint8_t buf[1024]; + int ret = -1; env = mon_get_cpu(); f = fopen(filename, "wb"); if (!f) { qemu_error_new(QERR_OPEN_FILE_FAILED, filename); - return; + return -1; } while (size != 0) { l = sizeof(buf); @@ -1457,8 +1458,12 @@ static void do_memory_save(Monitor *mon, const QDict *qdict, QObject **ret_data) addr += l; size -= l; } + + ret = 0; + exit: fclose(f); + return ret; } static void do_physical_memory_save(Monitor *mon, const QDict *qdict, diff --git a/qemu-monitor.hx b/qemu-monitor.hx index 3a1f9bc..5995cef 100644 --- a/qemu-monitor.hx +++ b/qemu-monitor.hx @@ -705,7 +705,7 @@ ETEXI .params = "addr size file", .help = "save to disk virtual memory dump starting at 'addr' of size 'size'", .user_print = monitor_user_noop, - .mhandler.cmd_new = do_memory_save, + .cmd_new_ret = do_memory_save, }, STEXI