diff options
author | aliguori <aliguori@c046a42c-6fe2-441c-8c8c-71466251a162> | 2009-02-11 15:20:51 +0000 |
---|---|---|
committer | aliguori <aliguori@c046a42c-6fe2-441c-8c8c-71466251a162> | 2009-02-11 15:20:51 +0000 |
commit | 8b13c4a794e26e4fd61a71858a24d309998825e0 (patch) | |
tree | 3e5059130ee1aaf48f9fdb0ba47225a74faf2fff | |
parent | 4d73cd3b3f55fcff433ce64b125b7adb8aaece29 (diff) |
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.c | 21 | ||||
-rw-r--r-- | net.h | 2 |
2 files changed, 23 insertions, 0 deletions
@@ -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; @@ -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); |