From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=46174 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1P1fj7-0004EA-63 for qemu-devel@nongnu.org; Fri, 01 Oct 2010 09:34:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1P1fhq-0004xC-6S for qemu-devel@nongnu.org; Fri, 01 Oct 2010 09:32:39 -0400 Received: from e5.ny.us.ibm.com ([32.97.182.145]:38382) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1P1fhq-0004wk-3S for qemu-devel@nongnu.org; Fri, 01 Oct 2010 09:31:22 -0400 Received: from d01relay02.pok.ibm.com (d01relay02.pok.ibm.com [9.56.227.234]) by e5.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id o91DB9At003966 for ; Fri, 1 Oct 2010 09:11:09 -0400 Received: from d03av01.boulder.ibm.com (d03av01.boulder.ibm.com [9.17.195.167]) by d01relay02.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id o91DVJuv459818 for ; Fri, 1 Oct 2010 09:31:19 -0400 Received: from d03av01.boulder.ibm.com (loopback [127.0.0.1]) by d03av01.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id o91DVIqh022956 for ; Fri, 1 Oct 2010 07:31:18 -0600 Message-ID: <4CA5E29F.4030606@linux.vnet.ibm.com> Date: Fri, 01 Oct 2010 08:31:11 -0500 From: Anthony Liguori MIME-Version: 1.0 References: <1285880180-29724-1-git-send-email-lcapitulino@redhat.com> <1285880180-29724-11-git-send-email-lcapitulino@redhat.com> In-Reply-To: <1285880180-29724-11-git-send-email-lcapitulino@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] Re: [PATCH 10/19] QMP: Introduce query commands dispatch table List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Luiz Capitulino Cc: Anthony Liguori , qemu-devel@nongnu.org, armbru@redhat.com On 09/30/2010 03:56 PM, Luiz Capitulino wrote: > The new table is a copy of HMP's table, containing only QObject > handlers. > > In the near future HMP will be making QMP calls and then we will > be able to drop QObject handlers from HMP's table. > > > From now on, QMP and HMP have different query command dispatch > tables. > I like this series a lot and I think it's ready to merge. But I wonder, why have a separate qmp_query_cmds table? Why not just fold the query commands into qmp_cmds? Regards, Anthony Liguori > Signed-off-by: Luiz Capitulino > --- > monitor.c | 130 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- > 1 files changed, 128 insertions(+), 2 deletions(-) > > diff --git a/monitor.c b/monitor.c > index 8f58e18..7cb66df 100644 > --- a/monitor.c > +++ b/monitor.c > @@ -190,6 +190,7 @@ static const mon_cmd_t mon_cmds[]; > static const mon_cmd_t info_cmds[]; > > static const mon_cmd_t qmp_cmds[]; > +static const mon_cmd_t qmp_query_cmds[]; > > Monitor *cur_mon; > Monitor *default_mon; > @@ -751,7 +752,7 @@ static void do_info_commands(Monitor *mon, QObject **ret_data) > } > } > > - for (cmd = info_cmds; cmd->name != NULL; cmd++) { > + for (cmd = qmp_query_cmds; cmd->name != NULL; cmd++) { > if (monitor_handler_ported(cmd)&& !monitor_cmd_user_only(cmd)) { > char buf[128]; > snprintf(buf, sizeof(buf), "query-%s", cmd->name); > @@ -2639,6 +2640,131 @@ static const mon_cmd_t qmp_cmds[] = { > { /* NULL */ }, > }; > > +static const mon_cmd_t qmp_query_cmds[] = { > + { > + .name = "version", > + .args_type = "", > + .params = "", > + .help = "show the version of QEMU", > + .user_print = do_info_version_print, > + .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 = "chardev", > + .args_type = "", > + .params = "", > + .help = "show the character devices", > + .user_print = qemu_chr_info_print, > + .mhandler.info_new = qemu_chr_info, > + }, > + { > + .name = "block", > + .args_type = "", > + .params = "", > + .help = "show the block devices", > + .user_print = bdrv_info_print, > + .mhandler.info_new = bdrv_info, > + }, > + { > + .name = "blockstats", > + .args_type = "", > + .params = "", > + .help = "show block device statistics", > + .user_print = bdrv_stats_print, > + .mhandler.info_new = bdrv_info_stats, > + }, > + { > + .name = "cpus", > + .args_type = "", > + .params = "", > + .help = "show infos for each CPU", > + .user_print = monitor_print_cpus, > + .mhandler.info_new = do_info_cpus, > + }, > + { > + .name = "pci", > + .args_type = "", > + .params = "", > + .help = "show PCI info", > + .user_print = do_pci_info_print, > + .mhandler.info_new = do_pci_info, > + }, > + { > + .name = "kvm", > + .args_type = "", > + .params = "", > + .help = "show KVM information", > + .user_print = do_info_kvm_print, > + .mhandler.info_new = do_info_kvm, > + }, > + { > + .name = "status", > + .args_type = "", > + .params = "", > + .help = "show the current VM status (running|paused)", > + .user_print = do_info_status_print, > + .mhandler.info_new = do_info_status, > + }, > + { > + .name = "mice", > + .args_type = "", > + .params = "", > + .help = "show which guest mouse is receiving events", > + .user_print = do_info_mice_print, > + .mhandler.info_new = do_info_mice, > + }, > + { > + .name = "vnc", > + .args_type = "", > + .params = "", > + .help = "show the vnc server status", > + .user_print = do_info_vnc_print, > + .mhandler.info_new = do_info_vnc, > + }, > + { > + .name = "name", > + .args_type = "", > + .params = "", > + .help = "show the current VM name", > + .user_print = do_info_name_print, > + .mhandler.info_new = do_info_name, > + }, > + { > + .name = "uuid", > + .args_type = "", > + .params = "", > + .help = "show the current VM UUID", > + .user_print = do_info_uuid_print, > + .mhandler.info_new = do_info_uuid, > + }, > + { > + .name = "migrate", > + .args_type = "", > + .params = "", > + .help = "show migration status", > + .user_print = do_info_migrate_print, > + .mhandler.info_new = do_info_migrate, > + }, > + { > + .name = "balloon", > + .args_type = "", > + .params = "", > + .help = "show balloon information", > + .user_print = monitor_print_balloon, > + .mhandler.info_async = do_info_balloon, > + .flags = MONITOR_CMD_ASYNC, > + }, > + { /* NULL */ }, > +}; > + > /*******************************************************************/ > > static const char *pch; > @@ -3366,7 +3492,7 @@ static const mon_cmd_t *monitor_find_command(const char *cmdname) > > static const mon_cmd_t *qmp_find_query_cmd(const char *info_item) > { > - return search_dispatch_table(info_cmds, info_item); > + return search_dispatch_table(qmp_query_cmds, info_item); > } > > static const mon_cmd_t *qmp_find_cmd(const char *cmdname) >