aboutsummaryrefslogtreecommitdiff
path: root/include/net/announce.h
diff options
context:
space:
mode:
authorDr. David Alan Gilbert <dgilbert@redhat.com>2019-06-20 19:47:04 +0100
committerJason Wang <jasowang@redhat.com>2019-07-02 10:21:06 +0800
commit944458b659fb348834cebbc15b9ad772be28f284 (patch)
tree30ac8aaa464221ba9d0ef11407388c0c643b7b09 /include/net/announce.h
parent08528271152ee76cf860168b41109e2a661e6260 (diff)
downloadqemu-944458b659fb348834cebbc15b9ad772be28f284.zip
qemu-944458b659fb348834cebbc15b9ad772be28f284.tar.gz
qemu-944458b659fb348834cebbc15b9ad772be28f284.tar.bz2
net/announce: Add optional ID
Previously there was a single instance of the timer used by monitor triggered announces, that's OK, but when combined with the previous change that lets you have announces for subsets of interfaces it's a bit restrictive if you want to do different things to different interfaces. Add an 'id' field to the announce, and maintain a list of the timers based on id. This allows you to for example: a) Start an announce going on interface eth0 for a long time b) Start an announce going on interface eth1 for a long time c) Kill the announce on eth0 while leaving eth1 going. Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Signed-off-by: Jason Wang <jasowang@redhat.com>
Diffstat (limited to 'include/net/announce.h')
-rw-r--r--include/net/announce.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/include/net/announce.h b/include/net/announce.h
index 7734704..3d90c83 100644
--- a/include/net/announce.h
+++ b/include/net/announce.h
@@ -22,8 +22,12 @@ struct AnnounceTimer {
/* Returns: update the timer to the next time point */
int64_t qemu_announce_timer_step(AnnounceTimer *timer);
-/* Delete the underlying timer and other data */
-void qemu_announce_timer_del(AnnounceTimer *timer);
+/*
+ * Delete the underlying timer and other data
+ * If 'free_named' true and the timer is a named timer, then remove
+ * it from the list of named timers and free the AnnounceTimer itself.
+ */
+void qemu_announce_timer_del(AnnounceTimer *timer, bool free_named);
/*
* Under BQL/main thread