From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47012) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Us33q-0003H2-CA for qemu-devel@nongnu.org; Wed, 26 Jun 2013 23:39:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Us33p-0003xI-Eq for qemu-devel@nongnu.org; Wed, 26 Jun 2013 23:39:54 -0400 Received: from mail-ie0-x233.google.com ([2607:f8b0:4001:c03::233]:38593) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Us33p-0003vs-9L for qemu-devel@nongnu.org; Wed, 26 Jun 2013 23:39:53 -0400 Received: by mail-ie0-f179.google.com with SMTP id c10so549534ieb.24 for ; Wed, 26 Jun 2013 20:39:52 -0700 (PDT) From: Liu Ping Fan Date: Thu, 27 Jun 2013 11:38:43 +0800 Message-Id: <1372304329-6931-2-git-send-email-pingfank@linux.vnet.ibm.com> In-Reply-To: <1372304329-6931-1-git-send-email-pingfank@linux.vnet.ibm.com> References: <1372304329-6931-1-git-send-email-pingfank@linux.vnet.ibm.com> Subject: [Qemu-devel] [PATCH v3 1/7] net: force NetQue opaque to be NetClientState List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: mdroth , Stefan Hajnoczi qemu_net_client_setup() is the only user of qemu_new_net_queue(), which will pass in NetClientState. By forcing it be a NetClientState, we can ref/unref NetQueue's owner Signed-off-by: Liu Ping Fan --- include/net/queue.h | 2 +- net/queue.c | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/include/net/queue.h b/include/net/queue.h index fc02b33..1d9e4c3 100644 --- a/include/net/queue.h +++ b/include/net/queue.h @@ -34,7 +34,7 @@ typedef void (NetPacketSent) (NetClientState *sender, ssize_t ret); #define QEMU_NET_PACKET_FLAG_NONE 0 #define QEMU_NET_PACKET_FLAG_RAW (1<<0) -NetQueue *qemu_new_net_queue(void *opaque); +NetQueue *qemu_new_net_queue(NetClientState *nc); void qemu_del_net_queue(NetQueue *queue); diff --git a/net/queue.c b/net/queue.c index 859d02a..1937345 100644 --- a/net/queue.c +++ b/net/queue.c @@ -49,7 +49,7 @@ struct NetPacket { }; struct NetQueue { - void *opaque; + NetClientState *nc; uint32_t nq_maxlen; uint32_t nq_count; @@ -58,13 +58,13 @@ struct NetQueue { unsigned delivering : 1; }; -NetQueue *qemu_new_net_queue(void *opaque) +NetQueue *qemu_new_net_queue(NetClientState *nc) { NetQueue *queue; queue = g_malloc0(sizeof(NetQueue)); - queue->opaque = opaque; + queue->nc = nc; queue->nq_maxlen = 10000; queue->nq_count = 0; @@ -154,7 +154,7 @@ static ssize_t qemu_net_queue_deliver(NetQueue *queue, ssize_t ret = -1; queue->delivering = 1; - ret = qemu_deliver_packet(sender, flags, data, size, queue->opaque); + ret = qemu_deliver_packet(sender, flags, data, size, queue->nc); queue->delivering = 0; return ret; @@ -169,7 +169,7 @@ static ssize_t qemu_net_queue_deliver_iov(NetQueue *queue, ssize_t ret = -1; queue->delivering = 1; - ret = qemu_deliver_packet_iov(sender, flags, iov, iovcnt, queue->opaque); + ret = qemu_deliver_packet_iov(sender, flags, iov, iovcnt, queue->nc); queue->delivering = 0; return ret; -- 1.8.1.4