Monitor: Convert do_memory_save() to cmd_new_ret()
authorLuiz Capitulino <lcapitulino@redhat.com>
Thu, 11 Feb 2010 01:49:58 +0000 (23:49 -0200)
committerAnthony Liguori <aliguori@us.ibm.com>
Fri, 19 Feb 2010 21:18:17 +0000 (15:18 -0600)
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
monitor.c
qemu-monitor.hx

index 9338d13e8300a753c02658d3a2b44bade11d9fce..7747449bd71908f32516691f42d1343e996ab57a 100644 (file)
--- 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,
index 3a1f9bc5184c146fe63f1a063cb40107d373ab6d..5995cefac0159c447ac02f93a969f7714e79871b 100644 (file)
@@ -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