qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 02/11] QMP: Introduce 'query-qmp-mode' command


From: Luiz Capitulino
Subject: [Qemu-devel] [PATCH 02/11] QMP: Introduce 'query-qmp-mode' command
Date: Thu, 21 Jan 2010 19:09:31 -0200

Only valid in QMP and allowed to run in both "handshake" and
"operational" modes.

Signed-off-by: Luiz Capitulino <address@hidden>
---
 monitor.c |   42 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 42 insertions(+), 0 deletions(-)

diff --git a/monitor.c b/monitor.c
index 4b7067a..c475a38 100644
--- a/monitor.c
+++ b/monitor.c
@@ -586,6 +586,39 @@ static QObject *get_cmd_dict(const char *name)
 }
 
 /**
+ * do_info_qmp_mode(): Show current QMP mode
+ *
+ * Return a QDict with the following key:
+ *
+ * - "mode": either "handshake" or "operational"
+ *
+ * Example:
+ *
+ * { "mode": "handshake" }
+ */
+static void do_info_qmp_mode(Monitor *mon, QObject **ret_data)
+{
+    const char *mode;
+
+    if (!monitor_ctrl_mode(mon)) {
+        return;
+    }
+
+    switch (mon->mc->mode) {
+        case QMODE_HANDSHAKE:
+            mode = "handshake";
+            break;
+        case QMODE_OPERATIONAL:
+            mode = "operational";
+            break;
+        default:
+            abort();
+    }
+
+    *ret_data = qobject_from_jsonf("{ 'mode': %s }", mode);
+}
+
+/**
  * do_info_commands(): List QMP available commands
  *
  * Each command is represented by a QDict, the returned QObject is a QList
@@ -2619,6 +2652,15 @@ static const mon_cmd_t info_cmds[] = {
         .mhandler.info_new = do_info_migrate,
     },
     {
+        .name       = "qmp-mode",
+        .args_type  = "",
+        .params     = "",
+        .help       = "show current mode",
+        .flags      = HANDLER_HANDSHAKE,
+        .user_print = monitor_user_noop,
+        .mhandler.info_new = do_info_qmp_mode,
+    },
+    {
         .name       = "balloon",
         .args_type  = "",
         .params     = "",
-- 
1.6.6





reply via email to

[Prev in Thread] Current Thread [Next in Thread]