Commit 8b13c4a794e26e4fd61a71858a24d309998825e0
1 parent
4d73cd3b
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
Showing
2 changed files
with
23 additions
and
0 deletions
net.c
| ... | ... | @@ -366,6 +366,19 @@ void qemu_del_vlan_client(VLANClientState *vc) |
| 366 | 366 | pvc = &(*pvc)->next; |
| 367 | 367 | } |
| 368 | 368 | |
| 369 | +VLANClientState *qemu_find_vlan_client(VLANState *vlan, void *opaque) | |
| 370 | +{ | |
| 371 | + VLANClientState **pvc = &vlan->first_client; | |
| 372 | + | |
| 373 | + while (*pvc != NULL) | |
| 374 | + if ((*pvc)->opaque == opaque) | |
| 375 | + return *pvc; | |
| 376 | + else | |
| 377 | + pvc = &(*pvc)->next; | |
| 378 | + | |
| 379 | + return NULL; | |
| 380 | +} | |
| 381 | + | |
| 369 | 382 | int qemu_can_send_packet(VLANClientState *vc1) |
| 370 | 383 | { |
| 371 | 384 | VLANState *vlan = vc1->vlan; |
| ... | ... | @@ -1713,6 +1726,14 @@ int net_client_init(const char *device, const char *p) |
| 1713 | 1726 | return ret; |
| 1714 | 1727 | } |
| 1715 | 1728 | |
| 1729 | +void net_client_uninit(NICInfo *nd) | |
| 1730 | +{ | |
| 1731 | + nd->vlan->nb_guest_devs--; | |
| 1732 | + nb_nics--; | |
| 1733 | + nd->used = 0; | |
| 1734 | + free((void *)nd->model); | |
| 1735 | +} | |
| 1736 | + | |
| 1716 | 1737 | int net_client_parse(const char *str) |
| 1717 | 1738 | { |
| 1718 | 1739 | const char *p; | ... | ... |
net.h
| ... | ... | @@ -42,6 +42,7 @@ VLANClientState *qemu_new_vlan_client(VLANState *vlan, |
| 42 | 42 | IOCanRWHandler *fd_can_read, |
| 43 | 43 | void *opaque); |
| 44 | 44 | void qemu_del_vlan_client(VLANClientState *vc); |
| 45 | +VLANClientState *qemu_find_vlan_client(VLANState *vlan, void *opaque); | |
| 45 | 46 | int qemu_can_send_packet(VLANClientState *vc); |
| 46 | 47 | ssize_t qemu_sendv_packet(VLANClientState *vc, const struct iovec *iov, |
| 47 | 48 | int iovcnt); |
| ... | ... | @@ -94,6 +95,7 @@ void net_checksum_calculate(uint8_t *data, int length); |
| 94 | 95 | |
| 95 | 96 | /* from net.c */ |
| 96 | 97 | int net_client_init(const char *device, const char *p); |
| 98 | +void net_client_uninit(NICInfo *nd); | |
| 97 | 99 | int net_client_parse(const char *str); |
| 98 | 100 | void net_slirp_smb(const char *exported_dir); |
| 99 | 101 | void net_slirp_redir(const char *redir_str); | ... | ... |