[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [RFC PATCH 1/4] net: slirp: introduce a wrapper struct for QemuTimer
From: |
Samuel Thibault |
Subject: |
Re: [RFC PATCH 1/4] net: slirp: introduce a wrapper struct for QemuTimer |
Date: |
Wed, 27 Apr 2022 01:11:40 +0200 |
User-agent: |
NeoMutt/20170609 (1.8.3) |
Paolo Bonzini, le mar. 12 avril 2022 14:13:34 +0200, a ecrit:
> This struct will be extended in the next few patches to support the
> new slirp_handle_timer() call. For that we need to store an additional
> "int" for each SLIRP timer, in addition to the cb_opaque.
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
> ---
> net/slirp.c | 19 ++++++++++++++-----
> 1 file changed, 14 insertions(+), 5 deletions(-)
>
> diff --git a/net/slirp.c b/net/slirp.c
> index bc5e9e4f77..f1e25d741f 100644
> --- a/net/slirp.c
> +++ b/net/slirp.c
> @@ -184,23 +184,32 @@ static int64_t net_slirp_clock_get_ns(void *opaque)
> return qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL);
> }
>
> +struct SlirpTimer {
> + QEMUTimer timer;
> +}
> +
> static void *net_slirp_timer_new(SlirpTimerCb cb,
> void *cb_opaque, void *opaque)
> {
> - return timer_new_full(NULL, QEMU_CLOCK_VIRTUAL,
> - SCALE_MS, QEMU_TIMER_ATTR_EXTERNAL,
> - cb, cb_opaque);
> + SlirpTimer *t = g_new(SlirpTimer, 1);
> + timer_init_full(&t->timer, NULL, QEMU_CLOCK_VIRTUAL,
> + SCALE_MS, QEMU_TIMER_ATTR_EXTERNAL,
> + cb, cb_opaque);
> + return t;
> }
>
> static void net_slirp_timer_free(void *timer, void *opaque)
> {
> - timer_free(timer);
> + SlirpTimer *t = timer;
> + timer_del(&t->timer);
> + g_free(t);
> }
>
> static void net_slirp_timer_mod(void *timer, int64_t expire_timer,
> void *opaque)
> {
> - timer_mod(timer, expire_timer);
> + SlirpTimer *t = timer;
> + timer_mod(&t->timer, expire_timer);
> }
>
> static void net_slirp_register_poll_fd(int fd, void *opaque)
> --
> 2.35.1
>
>
--
Samuel
---
Pour une évaluation indépendante, transparente et rigoureuse !
Je soutiens la Commission d'Évaluation de l'Inria.