summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraliguori <aliguori@c046a42c-6fe2-441c-8c8c-71466251a162>2009-02-11 15:20:51 +0000
committeraliguori <aliguori@c046a42c-6fe2-441c-8c8c-71466251a162>2009-02-11 15:20:51 +0000
commit8b13c4a794e26e4fd61a71858a24d309998825e0 (patch)
tree3e5059130ee1aaf48f9fdb0ba47225a74faf2fff
parentqemu: net/drive add/remove tweaks (Marcelo Tosatti) (diff)
downloadqemu-kvm-8b13c4a794e26e4fd61a71858a24d309998825e0.tar.gz
qemu-kvm-8b13c4a794e26e4fd61a71858a24d309998825e0.tar.bz2
qemu-kvm-8b13c4a794e26e4fd61a71858a24d309998825e0.zip
qemu: add net_client_uninit / qemu_find_vlan_client (Marcelo Tosatti)
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6600 c046a42c-6fe2-441c-8c8c-71466251a162
-rw-r--r--net.c21
-rw-r--r--net.h2
2 files changed, 23 insertions, 0 deletions
diff --git a/net.c b/net.c
index c581dcc08..c61f66b76 100644
--- a/net.c
+++ b/net.c
@@ -366,6 +366,19 @@ void qemu_del_vlan_client(VLANClientState *vc)
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;
@@ -1713,6 +1726,14 @@ int net_client_init(const char *device, const char *p)
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;
diff --git a/net.h b/net.h
index 6ddd06fa1..a982394ee 100644
--- a/net.h
+++ b/net.h
@@ -42,6 +42,7 @@ VLANClientState *qemu_new_vlan_client(VLANState *vlan,
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 *data, int length);
/* 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);