From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:44954) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UP4kt-0003F9-Od for qemu-devel@nongnu.org; Mon, 08 Apr 2013 01:36:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UP4kl-000386-Eh for qemu-devel@nongnu.org; Mon, 08 Apr 2013 01:36:35 -0400 Received: from e28smtp03.in.ibm.com ([122.248.162.3]:51789) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UP4kk-00037W-Ng for qemu-devel@nongnu.org; Mon, 08 Apr 2013 01:36:27 -0400 Received: from /spool/local by e28smtp03.in.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Mon, 8 Apr 2013 11:02:38 +0530 Received: from d28relay02.in.ibm.com (d28relay02.in.ibm.com [9.184.220.59]) by d28dlp01.in.ibm.com (Postfix) with ESMTP id 80EA6E002D for ; Mon, 8 Apr 2013 11:08:09 +0530 (IST) Received: from d28av01.in.ibm.com (d28av01.in.ibm.com [9.184.220.63]) by d28relay02.in.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id r385aIF93342608 for ; Mon, 8 Apr 2013 11:06:18 +0530 Received: from d28av01.in.ibm.com (loopback [127.0.0.1]) by d28av01.in.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id r385aIbu005386 for ; Mon, 8 Apr 2013 05:36:21 GMT From: Liu Ping Fan Date: Mon, 8 Apr 2013 13:36:07 +0800 Message-Id: <1365399368-26967-5-git-send-email-pingfank@linux.vnet.ibm.com> In-Reply-To: <1365399368-26967-1-git-send-email-pingfank@linux.vnet.ibm.com> References: <1365399368-26967-1-git-send-email-pingfank@linux.vnet.ibm.com> Subject: [Qemu-devel] [RFC PATCH v3 4/5] net: port vde onto glib List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Stefan Hajnoczi , Anthony Liguori , mdroth Signed-off-by: Liu Ping Fan --- net/vde.c | 15 ++++++++++++++- 1 files changed, 14 insertions(+), 1 deletions(-) diff --git a/net/vde.c b/net/vde.c index 4dea32d..be5a032 100644 --- a/net/vde.c +++ b/net/vde.c @@ -60,6 +60,16 @@ static ssize_t vde_receive(NetClientState *nc, const uint8_t *buf, size_t size) return ret; } +static gboolean vde_handler(gpointer data) +{ + NetClientSource *nsrc = (NetClientSource *)data; + + if (nsrc->gfd.revents & G_IO_IN) { + vde_to_qemu(nsrc->opaque); + } + return true; +} + static void vde_cleanup(NetClientState *nc) { VDEState *s = DO_UPCAST(VDEState, nc, nc); @@ -83,6 +93,7 @@ static int net_vde_init(NetClientState *peer, const char *model, VDECONN *vde; char *init_group = (char *)group; char *init_sock = (char *)sock; + NetClientSource *nsrc; struct vde_open_args args = { .port = port, @@ -104,7 +115,9 @@ static int net_vde_init(NetClientState *peer, const char *model, s->vde = vde; - qemu_set_fd_handler(vde_datafd(s->vde), vde_to_qemu, NULL, s); + nsrc = net_source_new(vde_datafd(vde), vde_handler, s); + nc.nsrc = nsrc; + nsrc->gfd.events = G_IO_IN; return 0; } -- 1.7.4.4