summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAnthony Liguori <aliguori@us.ibm.com>2011-06-22 07:14:00 -0500
committerAnthony Liguori <aliguori@us.ibm.com>2011-06-22 07:14:00 -0500
commit9319a6d3a6af9ae85556261e4a759eaddb49d734 (patch)
treea0f3346c667683ea7a5297dd652a2e08a6846d6b
parentd6034a3a61235042a0d79dcc1dfed0fbf461fb18 (diff)
parent5a8a49d7aa78b31a853e8f5d31f5b12811caeb27 (diff)
downloadfocaccia-qemu-9319a6d3a6af9ae85556261e4a759eaddb49d734.tar.gz
focaccia-qemu-9319a6d3a6af9ae85556261e4a759eaddb49d734.zip
Merge remote-tracking branch 'qmp/for-anthony' into staging
-rw-r--r--error.c3
-rw-r--r--error.h3
-rw-r--r--savevm.c1
-rw-r--r--sysemu.h5
-rw-r--r--vl.c10
-rw-r--r--xen-all.c2
6 files changed, 15 insertions, 9 deletions
diff --git a/error.c b/error.c
index 867eec2c1a..74d7398b58 100644
--- a/error.c
+++ b/error.c
@@ -9,11 +9,12 @@
  * This work is licensed under the terms of the GNU LGPL, version 2.  See
  * the COPYING.LIB file in the top-level directory.
  */
+
+#include "qemu-common.h"
 #include "error.h"
 #include "error_int.h"
 #include "qemu-objects.h"
 #include "qerror.h"
-#include <assert.h>
 
 struct Error
 {
diff --git a/error.h b/error.h
index 003c855e65..0f92a6f570 100644
--- a/error.h
+++ b/error.h
@@ -25,8 +25,7 @@ typedef struct Error Error;
  * Currently, qerror.h defines these error formats.  This function is not
  * meant to be used outside of QEMU.
  */
-void error_set(Error **err, const char *fmt, ...)
-    __attribute__((format(printf, 2, 3)));
+void error_set(Error **err, const char *fmt, ...) GCC_FMT_ATTR(2, 3);
 
 /**
  * Returns true if an indirect pointer to an error is pointing to a valid
diff --git a/savevm.c b/savevm.c
index 939845c825..8139bc7e29 100644
--- a/savevm.c
+++ b/savevm.c
@@ -2073,6 +2073,7 @@ int load_vmstate(const char *name)
         return -EINVAL;
     }
 
+    qemu_system_reset(VMRESET_SILENT);
     ret = qemu_loadvm_state(f);
 
     qemu_fclose(f);
diff --git a/sysemu.h b/sysemu.h
index 7e70daa3da..d3013f5cc4 100644
--- a/sysemu.h
+++ b/sysemu.h
@@ -34,6 +34,9 @@ void qemu_del_vm_change_state_handler(VMChangeStateEntry *e);
 #define VMSTOP_LOADVM    7
 #define VMSTOP_MIGRATE   8
 
+#define VMRESET_SILENT   false
+#define VMRESET_REPORT   true
+
 void vm_start(void);
 void vm_stop(int reason);
 
@@ -50,7 +53,7 @@ int qemu_powerdown_requested(void);
 void qemu_system_killed(int signal, pid_t pid);
 void qemu_kill_report(void);
 extern qemu_irq qemu_system_powerdown;
-void qemu_system_reset(void);
+void qemu_system_reset(bool report);
 
 void qemu_add_exit_notifier(Notifier *notify);
 void qemu_remove_exit_notifier(Notifier *notify);
diff --git a/vl.c b/vl.c
index dbdec7199a..52402a2b73 100644
--- a/vl.c
+++ b/vl.c
@@ -1253,7 +1253,7 @@ void qemu_unregister_reset(QEMUResetHandler *func, void *opaque)
     }
 }
 
-void qemu_system_reset(void)
+void qemu_system_reset(bool report)
 {
     QEMUResetEntry *re, *nre;
 
@@ -1261,7 +1261,9 @@ void qemu_system_reset(void)
     QTAILQ_FOREACH_SAFE(re, &reset_handlers, entry, nre) {
         re->func(re->opaque);
     }
-    monitor_protocol_event(QEVENT_RESET, NULL);
+    if (report) {
+        monitor_protocol_event(QEVENT_RESET, NULL);
+    }
     cpu_synchronize_all_post_reset();
 }
 
@@ -1403,7 +1405,7 @@ static void main_loop(void)
         if (qemu_reset_requested()) {
             pause_all_vcpus();
             cpu_synchronize_all_states();
-            qemu_system_reset();
+            qemu_system_reset(VMRESET_REPORT);
             resume_all_vcpus();
         }
         if (qemu_powerdown_requested()) {
@@ -3293,7 +3295,7 @@ int main(int argc, char **argv, char **envp)
     qemu_register_reset(qbus_reset_all_fn, sysbus_get_default());
     qemu_run_machine_init_done_notifiers();
 
-    qemu_system_reset();
+    qemu_system_reset(VMRESET_SILENT);
     if (loadvm) {
         if (load_vmstate(loadvm) < 0) {
             autostart = 0;
diff --git a/xen-all.c b/xen-all.c
index fe75ddd833..fcb106f815 100644
--- a/xen-all.c
+++ b/xen-all.c
@@ -728,7 +728,7 @@ static void cpu_handle_ioreq(void *opaque)
                 destroy_hvm_domain();
             }
             if (qemu_reset_requested_get()) {
-                qemu_system_reset();
+                qemu_system_reset(VMRESET_REPORT);
             }
         }