xref: /qemu/include/net/announce.h (revision b25e12da)
1 /*
2  *  Self-announce facility
3  *  (c) 2017-2019 Red Hat, Inc.
4  *
5  * This work is licensed under the terms of the GNU GPL, version 2 or later.
6  * See the COPYING file in the top-level directory.
7  */
8 
9 #ifndef QEMU_NET_ANNOUNCE_H
10 #define QEMU_NET_ANNOUNCE_H
11 
12 #include "qemu-common.h"
13 #include "qapi/qapi-types-net.h"
14 #include "qemu/timer.h"
15 
16 struct AnnounceTimer {
17     QEMUTimer *tm;
18     AnnounceParameters params;
19     QEMUClockType type;
20     int round;
21 };
22 
23 /* Returns: update the timer to the next time point */
24 int64_t qemu_announce_timer_step(AnnounceTimer *timer);
25 
26 /* Delete the underlying timer */
27 void qemu_announce_timer_del(AnnounceTimer *timer);
28 
29 /*
30  * Under BQL/main thread
31  * Reset the timer to the given parameters/type/notifier.
32  */
33 void qemu_announce_timer_reset(AnnounceTimer *timer,
34                                AnnounceParameters *params,
35                                QEMUClockType type,
36                                QEMUTimerCB *cb,
37                                void *opaque);
38 
39 void qemu_announce_self(AnnounceTimer *timer, AnnounceParameters *params);
40 
41 #endif
42