From patchwork Mon Apr 8 05:36:07 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: pingfank@linux.vnet.ibm.com X-Patchwork-Id: 234582 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 0DED42C00A9 for ; Mon, 8 Apr 2013 15:38:37 +1000 (EST) Received: from localhost ([::1]:48341 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UP4mm-0006Am-MV for incoming@patchwork.ozlabs.org; Mon, 08 Apr 2013 01:38:32 -0400 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 d28dlp01.in.ibm.com (9.184.220.126) by e28smtp03.in.ibm.com (192.168.1.133) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Mon, 8 Apr 2013 11:02:36 +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 Received: from oc8440477808.cn.ibm.com (oc8440477808.cn.ibm.com [9.115.122.227]) by d28av01.in.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id r385a9Sw004500; Mon, 8 Apr 2013 05:36:17 GMT From: Liu Ping Fan To: qemu-devel@nongnu.org Date: Mon, 8 Apr 2013 13:36:07 +0800 Message-Id: <1365399368-26967-5-git-send-email-pingfank@linux.vnet.ibm.com> X-Mailer: git-send-email 1.7.4.4 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> X-TM-AS-MML: No X-Content-Scanned: Fidelis XPS MAILER x-cbid: 13040805-3864-0000-0000-0000079CA04B X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic] X-Received-From: 122.248.162.3 Cc: Paolo Bonzini , Stefan Hajnoczi , Anthony Liguori , mdroth Subject: [Qemu-devel] [RFC PATCH v3 4/5] net: port vde onto glib X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org 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; }