qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [PATCH 06/20] monitor: Introduce 'info commands'


From: Luiz Capitulino
Subject: [Qemu-devel] [PATCH 06/20] monitor: Introduce 'info commands'
Date: Thu, 26 Nov 2009 22:58:56 -0200

List QMP available commands. Only valid in control mode, where
has to be used as 'query-commands.

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

diff --git a/monitor.c b/monitor.c
index 4c402e4..02dea2e 100644
--- a/monitor.c
+++ b/monitor.c
@@ -363,6 +363,35 @@ static void do_info_version(Monitor *mon, QObject 
**ret_data)
 }
 
 /**
+ * do_info_commands(): List QMP available commands
+ *
+ * Return a QList of QStrings.
+ */
+static void do_info_commands(Monitor *mon, QObject **ret_data)
+{
+    QList *cmd_list;
+    const mon_cmd_t *cmd;
+
+    cmd_list = qlist_new();
+
+    for (cmd = mon_cmds; cmd->name != NULL; cmd++) {
+        if (monitor_handler_ported(cmd) && !compare_cmd(cmd->name, "info")) {
+            qlist_append(cmd_list, qstring_from_str(cmd->name));
+        }
+    }
+
+    for (cmd = info_cmds; cmd->name != NULL; cmd++) {
+        if (monitor_handler_ported(cmd)) {
+            char buf[128];
+            snprintf(buf, sizeof(buf), "query-%s", cmd->name);
+            qlist_append(cmd_list, qstring_from_str(buf));
+        }
+    }
+
+    *ret_data = QOBJECT(cmd_list);
+}
+
+/**
  * do_info_name(): Show VM name
  *
  * Return a QString with the current VM name.
@@ -2047,6 +2076,14 @@ static const mon_cmd_t info_cmds[] = {
         .mhandler.info_new = do_info_version,
     },
     {
+        .name       = "commands",
+        .args_type  = "",
+        .params     = "",
+        .help       = "list QMP available commands",
+        .user_print = monitor_user_noop,
+        .mhandler.info_new = do_info_commands,
+    },
+    {
         .name       = "network",
         .args_type  = "",
         .params     = "",
-- 
1.6.6.rc0.50.gaf06e





reply via email to

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