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 "qapi/qapi-types-net.h" 13 #include "qemu/timer.h" 14 15 typedef struct AnnounceTimer { 16 QEMUTimer *tm; 17 AnnounceParameters params; 18 QEMUClockType type; 19 int round; 20 } AnnounceTimer; 21 22 /* Returns: update the timer to the next time point */ 23 int64_t qemu_announce_timer_step(AnnounceTimer *timer); 24 25 /* 26 * Delete the underlying timer and other data 27 * If 'free_named' true and the timer is a named timer, then remove 28 * it from the list of named timers and free the AnnounceTimer itself. 29 */ 30 void qemu_announce_timer_del(AnnounceTimer *timer, bool free_named); 31 32 /* 33 * Under BQL/main thread 34 * Reset the timer to the given parameters/type/notifier. 35 */ 36 void qemu_announce_timer_reset(AnnounceTimer *timer, 37 AnnounceParameters *params, 38 QEMUClockType type, 39 QEMUTimerCB *cb, 40 void *opaque); 41 42 void qemu_announce_self(AnnounceTimer *timer, AnnounceParameters *params); 43 44 #endif 45