From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45910) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XeyOx-0005JG-TU for qemu-devel@nongnu.org; Thu, 16 Oct 2014 23:40:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XeyOt-0008Ji-7O for qemu-devel@nongnu.org; Thu, 16 Oct 2014 23:40:27 -0400 Received: from [59.151.112.132] (port=6312 helo=heian.cn.fujitsu.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XeyOs-0008Ij-Ro for qemu-devel@nongnu.org; Thu, 16 Oct 2014 23:40:23 -0400 Message-ID: <1413517179.4190.1.camel@G08FNSTD140041> From: Zhu Guihua Date: Fri, 17 Oct 2014 11:39:39 +0800 In-Reply-To: <20141016135012.77d78b85@igors-macbook-pro.local> References: <5121b7eb590291a65e698afd1e55f2a1f5a0b8ab.1412594742.git.zhugh.fnst@cn.fujitsu.com> <20141016135012.77d78b85@igors-macbook-pro.local> Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v3 2/2] monitor: add del completion for peripheral device List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Igor Mammedov Cc: peter.crosthwaite@xilinx.com, mst@redhat.com, hutao@cn.fujitsu.com, armbru@redhat.com, qemu-devel@nongnu.org, isimatu.yasuaki@jp.fujitsu.com, kroosec@gmail.com, tangchen@cn.fujitsu.com, pbonzini@redhat.com, lcapitulino@redhat.com, afaerber@suse.de On Thu, 2014-10-16 at 13:50 +0200, Igor Mammedov wrote: > On Mon, 6 Oct 2014 19:38:44 +0800 > Zhu Guihua wrote: > > > Add peripheral_device_del_completion() to let peripheral device del > > completion be possible. > > > > Signed-off-by: Zhu Guihua > > --- > > monitor.c | 24 ++++++++++++++++++++++++ > > 1 file changed, 24 insertions(+) > > > > diff --git a/monitor.c b/monitor.c > > index 667efb7..ffe5405 100644 > > --- a/monitor.c > > +++ b/monitor.c > > @@ -4351,6 +4351,29 @@ static void > > device_del_bus_completion(ReadLineState *rs, BusState *bus, } > > } > > > > +static void peripheral_device_del_completion(ReadLineState *rs, > > + const char *str, size_t > > len) +{ > > + Object *peripheral; > > + GSList *list = NULL, *item; > > + > > + peripheral = object_resolve_path("/machine/peripheral/", NULL); > > + > pls remove unnecessary blank line > > > + if (peripheral == NULL) { > > + return; > > + } > > + > > + object_child_foreach(peripheral, > > qdev_build_hotpluggable_device_list, > > + &list); > > + > > + for (item = list; item; item = g_slist_next(item)) { > > + DeviceState *dev = item->data; > add blank line here, pls. > > > + if (!strncmp(str, dev->id, len)) { > > + readline_add_completion(rs, dev->id); > > + } > > + } > > +} > > + > > void chardev_remove_completion(ReadLineState *rs, int nb_args, const > > char *str) { > > size_t len; > > @@ -4424,6 +4447,7 @@ void device_del_completion(ReadLineState *rs, > > int nb_args, const char *str) len = strlen(str); > > readline_set_completion_index(rs, len); > > device_del_bus_completion(rs, sysbus_get_default(), str, len); > All ID-ed devices that might be available for removal are returned by > following line, so do we still need above recusive bus walker that > gathers duplicate devices from buses? > yeah, we do not need recursive bus walker any more. I will change it, thanks. Regards, Zhu > > + peripheral_device_del_completion(rs, str, len); > > } > > > > void object_del_completion(ReadLineState *rs, int nb_args, const > > char *str) >