From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LUi50-0002q9-AY for qemu-devel@nongnu.org; Wed, 04 Feb 2009 08:46:14 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LUi4z-0002pL-Lz for qemu-devel@nongnu.org; Wed, 04 Feb 2009 08:46:13 -0500 Received: from [199.232.76.173] (port=37317 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LUi4z-0002pF-BW for qemu-devel@nongnu.org; Wed, 04 Feb 2009 08:46:13 -0500 Received: from mx2.redhat.com ([66.187.237.31]:34137) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1LUi4y-0000fL-Ps for qemu-devel@nongnu.org; Wed, 04 Feb 2009 08:46:13 -0500 Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26]) by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id n14DkCdK010665 for ; Wed, 4 Feb 2009 08:46:12 -0500 Message-Id: <20090204133924.007901012@localhost.localdomain> References: <20090204133303.113145633@localhost.localdomain> Date: Wed, 04 Feb 2009 11:33:12 -0200 From: Marcelo Tosatti Content-Disposition: inline; filename=net-client-uninit Subject: [Qemu-devel] [patch 09/18] qemu: add net_client_uninit / qemu_find_vlan_client Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Marcelo Tosatti Signed-off-by: Marcelo Tosatti Index: trunk/net.c =================================================================== --- trunk.orig/net.c +++ trunk/net.c @@ -368,6 +368,19 @@ void qemu_del_vlan_client(VLANClientStat pvc = &(*pvc)->next; } +VLANClientState *qemu_find_vlan_client(VLANState *vlan, void *opaque) +{ + VLANClientState **pvc = &vlan->first_client; + + while (*pvc != NULL) + if ((*pvc)->opaque == opaque) + return *pvc; + else + pvc = &(*pvc)->next; + + return NULL; +} + int qemu_can_send_packet(VLANClientState *vc1) { VLANState *vlan = vc1->vlan; @@ -1727,6 +1740,14 @@ int net_client_init(const char *device, return ret; } +void net_client_uninit(NICInfo *nd) +{ + nd->vlan->nb_guest_devs--; + nb_nics--; + nd->used = 0; + free((void *)nd->model); +} + int net_client_parse(const char *str) { const char *p; Index: trunk/net.h =================================================================== --- trunk.orig/net.h +++ trunk/net.h @@ -42,6 +42,7 @@ VLANClientState *qemu_new_vlan_client(VL IOCanRWHandler *fd_can_read, void *opaque); void qemu_del_vlan_client(VLANClientState *vc); +VLANClientState *qemu_find_vlan_client(VLANState *vlan, void *opaque); int qemu_can_send_packet(VLANClientState *vc); ssize_t qemu_sendv_packet(VLANClientState *vc, const struct iovec *iov, int iovcnt); @@ -94,6 +95,7 @@ void net_checksum_calculate(uint8_t *dat /* from net.c */ int net_client_init(const char *device, const char *p); +void net_client_uninit(NICInfo *nd); int net_client_parse(const char *str); void net_slirp_smb(const char *exported_dir); void net_slirp_redir(const char *redir_str); --