Commit 34b25ca74eab49cedf994193dc7727e3f2613219
1 parent
436e5e53
Allow devices be notified of link status change (Mark McLoughlin)
Signed-off-by: Mark McLoughlin <markmc@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6248 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
2 changed files
with
6 additions
and
0 deletions
net.c
| @@ -1718,6 +1718,9 @@ int do_set_link(const char *name, const char *up_or_down) | @@ -1718,6 +1718,9 @@ int do_set_link(const char *name, const char *up_or_down) | ||
| 1718 | term_printf("invalid link status '%s'; only 'up' or 'down' valid\n", | 1718 | term_printf("invalid link status '%s'; only 'up' or 'down' valid\n", |
| 1719 | up_or_down); | 1719 | up_or_down); |
| 1720 | 1720 | ||
| 1721 | + if (vc->link_status_changed) | ||
| 1722 | + vc->link_status_changed(vc); | ||
| 1723 | + | ||
| 1721 | return 1; | 1724 | return 1; |
| 1722 | } | 1725 | } |
| 1723 | 1726 |
net.h
| @@ -9,12 +9,15 @@ typedef ssize_t (IOReadvHandler)(void *, const struct iovec *, int); | @@ -9,12 +9,15 @@ typedef ssize_t (IOReadvHandler)(void *, const struct iovec *, int); | ||
| 9 | 9 | ||
| 10 | typedef struct VLANClientState VLANClientState; | 10 | typedef struct VLANClientState VLANClientState; |
| 11 | 11 | ||
| 12 | +typedef void (LinkStatusChanged)(VLANClientState *); | ||
| 13 | + | ||
| 12 | struct VLANClientState { | 14 | struct VLANClientState { |
| 13 | IOReadHandler *fd_read; | 15 | IOReadHandler *fd_read; |
| 14 | IOReadvHandler *fd_readv; | 16 | IOReadvHandler *fd_readv; |
| 15 | /* Packets may still be sent if this returns zero. It's used to | 17 | /* Packets may still be sent if this returns zero. It's used to |
| 16 | rate-limit the slirp code. */ | 18 | rate-limit the slirp code. */ |
| 17 | IOCanRWHandler *fd_can_read; | 19 | IOCanRWHandler *fd_can_read; |
| 20 | + LinkStatusChanged *link_status_changed; | ||
| 18 | int link_down; | 21 | int link_down; |
| 19 | void *opaque; | 22 | void *opaque; |
| 20 | struct VLANClientState *next; | 23 | struct VLANClientState *next; |