From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55490) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XfooJ-0007he-Dt for qemu-devel@nongnu.org; Sun, 19 Oct 2014 07:38:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XfooE-0000mC-Bd for qemu-devel@nongnu.org; Sun, 19 Oct 2014 07:38:07 -0400 Received: from mail-la0-x230.google.com ([2a00:1450:4010:c03::230]:49883) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XfooE-0000lr-2m for qemu-devel@nongnu.org; Sun, 19 Oct 2014 07:38:02 -0400 Received: by mail-la0-f48.google.com with SMTP id gi9so2657323lab.35 for ; Sun, 19 Oct 2014 04:38:00 -0700 (PDT) Message-ID: <1413718633.11602.15.camel@localhost.localdomain> From: Marcel Apfelbaum Date: Sun, 19 Oct 2014 14:37:13 +0300 In-Reply-To: <20ae54cda2f484bbdc6f182ac6a6c83841784ef7.1413525853.git.zhugh.fnst@cn.fujitsu.com> References: <20ae54cda2f484bbdc6f182ac6a6c83841784ef7.1413525853.git.zhugh.fnst@cn.fujitsu.com> Content-Type: text/plain; charset="UTF-8" Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v4 2/3] monitor: add del completion for peripheral device Reply-To: marcel.a@redhat.com List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Zhu Guihua Cc: peter.crosthwaite@xilinx.com, mst@redhat.com, hutao@cn.fujitsu.com, qemu-devel@nongnu.org, lcapitulino@redhat.com, isimatu.yasuaki@jp.fujitsu.com, pbonzini@redhat.com, imammedo@redhat.com, tangchen@cn.fujitsu.com, afaerber@suse.de, armbru@redhat.com On Fri, 2014-10-17 at 17:35 +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 2d14f39..9c3fa01 100644 > --- a/monitor.c > +++ b/monitor.c > @@ -4359,6 +4359,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); > + 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; > + > + if (dev->id && !strncmp(str, dev->id, len)) { > + readline_add_completion(rs, dev->id); > + } > + Hi, Am I missing something or g_slist_free(list) should be somewhere here? Thanks, Marcel > +} > + > void chardev_remove_completion(ReadLineState *rs, int nb_args, const char *str) > { > size_t len; > @@ -4432,6 +4455,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); > + peripheral_device_del_completion(rs, str, len); > } > > void object_del_completion(ReadLineState *rs, int nb_args, const char *str)