From: Luiz Capitulino <lcapitulino@redhat.com>
To: Hani Benhabiles <kroosec@gmail.com>
Cc: kwolf@redhat.com, aliguori@amazon.com, qemu-devel@nongnu.org,
stefanha@redhat.com, imammedo@redhat.com
Subject: Re: [Qemu-devel] [PATCH v2 03/17] monitor: Add device_add and device_del completion.
Date: Fri, 11 Apr 2014 13:30:21 -0400 [thread overview]
Message-ID: <20140411133021.234e49f2@redhat.com> (raw)
In-Reply-To: <1396177119-24955-4-git-send-email-kroosec@gmail.com>
On Sun, 30 Mar 2014 11:58:25 +0100
Hani Benhabiles <kroosec@gmail.com> wrote:
> Signed-off-by: Hani Benhabiles <hani@linux.com>
This is not related to this change, but device_add seems to return
non-hotpluggable devices in the completion list (eg. Opteron_G5-x86_64-cpu).
Might be worth fixing in this series.
One more comment below.
> ---
> hmp-commands.hx | 2 ++
> hmp.h | 2 ++
> monitor.c | 34 +++++++++++++++++++++-------------
> 3 files changed, 25 insertions(+), 13 deletions(-)
>
> diff --git a/hmp-commands.hx b/hmp-commands.hx
> index 1b382b6..4c4d261 100644
> --- a/hmp-commands.hx
> +++ b/hmp-commands.hx
> @@ -658,6 +658,7 @@ ETEXI
> .help = "add device, like -device on the command line",
> .user_print = monitor_user_noop,
> .mhandler.cmd_new = do_device_add,
> + .command_completion = device_add_completion,
> },
>
> STEXI
> @@ -673,6 +674,7 @@ ETEXI
> .params = "device",
> .help = "remove device",
> .mhandler.cmd = hmp_device_del,
> + .command_completion = device_del_completion,
> },
>
> STEXI
> diff --git a/hmp.h b/hmp.h
> index 2f2c059..20ef454 100644
> --- a/hmp.h
> +++ b/hmp.h
> @@ -95,5 +95,7 @@ void hmp_object_add(Monitor *mon, const QDict *qdict);
> void hmp_object_del(Monitor *mon, const QDict *qdict);
> void object_add_completion(ReadLineState *rs, int nb_args, const char *str);
> void object_del_completion(ReadLineState *rs, int nb_args, const char *str);
> +void device_add_completion(ReadLineState *rs, int nb_args, const char *str);
> +void device_del_completion(ReadLineState *rs, int nb_args, const char *str);
>
> #endif
> diff --git a/monitor.c b/monitor.c
> index 566a83f..710ba25 100644
> --- a/monitor.c
> +++ b/monitor.c
> @@ -4278,11 +4278,15 @@ static const char *next_arg_type(const char *typestr)
> return (p != NULL ? ++p : typestr);
> }
>
> -static void device_add_completion(ReadLineState *rs, const char *str)
> +void device_add_completion(ReadLineState *rs, int nb_args, const char *str)
> {
> GSList *list, *elt;
> size_t len;
>
> + if (nb_args != 2) {
> + return;
> + }
> +
> len = strlen(str);
> readline_set_completion_index(rs, len);
> list = elt = object_class_get_list(TYPE_DEVICE, false);
> @@ -4323,8 +4327,8 @@ void object_add_completion(ReadLineState *rs, int nb_args, const char *str)
> g_slist_free(list);
> }
>
> -static void device_del_completion(ReadLineState *rs, BusState *bus,
> - const char *str, size_t len)
> +static void device_del_bus_completion(ReadLineState *rs, BusState *bus,
> + const char *str, size_t len)
> {
You don't have to respin just because of this, but it's not clear to me why
you're renaming that function.
> BusChild *kid;
>
> @@ -4337,11 +4341,24 @@ static void device_del_completion(ReadLineState *rs, BusState *bus,
> }
>
> QLIST_FOREACH(dev_child, &dev->child_bus, sibling) {
> - device_del_completion(rs, dev_child, str, len);
> + device_del_bus_completion(rs, dev_child, str, len);
> }
> }
> }
>
> +void device_del_completion(ReadLineState *rs, int nb_args, const char *str)
> +{
> + size_t len;
> +
> + if (nb_args != 2) {
> + return;
> + }
> +
> + len = strlen(str);
> + readline_set_completion_index(rs, len);
> + device_del_bus_completion(rs, sysbus_get_default(), str, len);
> +}
> +
> void object_del_completion(ReadLineState *rs, int nb_args, const char *str)
> {
> ObjectPropertyInfoList *list, *start;
> @@ -4432,11 +4449,6 @@ static void monitor_find_completion_by_table(Monitor *mon,
> readline_set_completion_index(mon->rs, strlen(str));
> bdrv_iterate(block_completion_it, &mbs);
> break;
> - case 'O':
> - if (!strcmp(cmd->name, "device_add") && nb_args == 2) {
> - device_add_completion(mon->rs, str);
> - }
> - break;
> case 's':
> case 'S':
> if (!strcmp(cmd->name, "sendkey")) {
> @@ -4450,10 +4462,6 @@ static void monitor_find_completion_by_table(Monitor *mon,
> } else if (!strcmp(cmd->name, "help|?")) {
> monitor_find_completion_by_table(mon, cmd_table,
> &args[1], nb_args - 1);
> - } else if (!strcmp(cmd->name, "device_del") && nb_args == 2) {
> - size_t len = strlen(str);
> - readline_set_completion_index(mon->rs, len);
> - device_del_completion(mon->rs, sysbus_get_default(), str, len);
> }
> break;
> default:
next prev parent reply other threads:[~2014-04-11 17:31 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-30 10:58 [Qemu-devel] [PATCH v2 00/17] monitor: Completion support for various commands Hani Benhabiles
2014-03-30 10:58 ` [Qemu-devel] [PATCH v2 01/17] monitor: Fix drive_del id argument type completion Hani Benhabiles
2014-03-30 10:58 ` [Qemu-devel] [PATCH v2 02/17] monitor: Add command_completion callback to mon_cmd_t Hani Benhabiles
2014-04-11 17:14 ` Luiz Capitulino
2014-03-30 10:58 ` [Qemu-devel] [PATCH v2 03/17] monitor: Add device_add and device_del completion Hani Benhabiles
2014-04-11 17:30 ` Luiz Capitulino [this message]
2014-03-30 10:58 ` [Qemu-devel] [PATCH v2 04/17] monitor: Add chardev-remove id argument completion Hani Benhabiles
2014-04-11 17:36 ` Luiz Capitulino
2014-03-30 10:58 ` [Qemu-devel] [PATCH v2 05/17] monitor: Add chardev-add backend " Hani Benhabiles
2014-03-30 10:58 ` [Qemu-devel] [PATCH v2 06/17] monitor: Add cpu index " Hani Benhabiles
2014-03-30 10:58 ` [Qemu-devel] [PATCH v2 07/17] monitor: Add set_link arguments completion Hani Benhabiles
2014-04-11 17:40 ` Luiz Capitulino
2014-03-30 10:58 ` [Qemu-devel] [PATCH v2 08/17] monitor: Add netdev_add type argument completion Hani Benhabiles
2014-04-11 17:44 ` Luiz Capitulino
2014-03-30 10:58 ` [Qemu-devel] [PATCH v2 09/17] monitor: Add netdev_del id " Hani Benhabiles
2014-03-30 10:58 ` [Qemu-devel] [PATCH v2 10/17] monitor: Add ringbuf_write and ringbuf_read " Hani Benhabiles
2014-03-30 10:58 ` [Qemu-devel] [PATCH v2 11/17] monitor: Add watchdog_action " Hani Benhabiles
2014-03-30 10:58 ` [Qemu-devel] [PATCH v2 12/17] monitor: Add migrate_set_capability completion Hani Benhabiles
2014-03-30 10:58 ` [Qemu-devel] [PATCH v2 13/17] monitor: Add host_net_add device argument completion Hani Benhabiles
2014-03-30 10:58 ` [Qemu-devel] [PATCH v2 14/17] readline: Make completion strings always unique Hani Benhabiles
2014-03-30 10:58 ` [Qemu-devel] [PATCH v2 15/17] monitor: Add host_net_remove arguments completion Hani Benhabiles
2014-03-30 10:58 ` [Qemu-devel] [PATCH v2 16/17] monitor: Add mouse_set index argument completion Hani Benhabiles
2014-03-30 10:58 ` [Qemu-devel] [PATCH v2 17/17] monitor: Add delvm and loadvm " Hani Benhabiles
2014-04-11 17:50 ` [Qemu-devel] [PATCH v2 00/17] monitor: Completion support for various commands Luiz Capitulino
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140411133021.234e49f2@redhat.com \
--to=lcapitulino@redhat.com \
--cc=aliguori@amazon.com \
--cc=imammedo@redhat.com \
--cc=kroosec@gmail.com \
--cc=kwolf@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.