Make the code a bit more type safe and follow the same scheme as replay_input_event and replay_input_sync_event.
Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> --- hw/core/ptimer.c | 6 +----- replay/replay-events.c | 15 ++++++++++----- replay/replay-internal.h | 2 +- replay/replay.h | 4 ++-- 4 files changed, 14 insertions(+), 13 deletions(-) diff --git a/hw/core/ptimer.c b/hw/core/ptimer.c index c56078d..86d544f 100644 --- a/hw/core/ptimer.c +++ b/hw/core/ptimer.c @@ -28,11 +28,7 @@ struct ptimer_state static void ptimer_trigger(ptimer_state *s) { if (s->bh) { - if (replay_mode != REPLAY_MODE_NONE) { - replay_add_ptimer_event(s->bh, replay_get_current_step()); - } else { - qemu_bh_schedule(s->bh); - } + replay_bh_schedule_event(s->bh); } } diff --git a/replay/replay-events.c b/replay/replay-events.c index 23f3b12..06dd4ca 100755 --- a/replay/replay-events.c +++ b/replay/replay-events.c @@ -37,7 +37,7 @@ static bool events_enabled; static void replay_run_event(Event *event) { switch (event->event_kind) { - case REPLAY_ASYNC_EVENT_PTIMER: + case REPLAY_ASYNC_EVENT_BH: aio_bh_call(event->opaque); break; case REPLAY_ASYNC_EVENT_INPUT: @@ -129,9 +129,14 @@ static void replay_add_event(ReplayAsyncEventKind event_kind, replay_mutex_unlock(); } -void replay_add_ptimer_event(void *bh, uint64_t id) +void replay_bh_schedule_event(QEMUBH *bh) { - replay_add_event(REPLAY_ASYNC_EVENT_PTIMER, bh, NULL, id); + if (replay_mode != REPLAY_MODE_NONE) { + uint64_t id = replay_get_current_step(); + replay_add_event(REPLAY_ASYNC_EVENT_BH, bh, NULL, id); + } else { + qemu_bh_schedule(bh); + } } void replay_add_input_event(struct InputEvent *event) @@ -154,7 +159,7 @@ static void replay_save_event(Event *event, int checkpoint) /* save event-specific data */ switch (event->event_kind) { - case REPLAY_ASYNC_EVENT_PTIMER: + case REPLAY_ASYNC_EVENT_BH: replay_put_qword(event->id); break; case REPLAY_ASYNC_EVENT_INPUT: @@ -200,7 +205,7 @@ static Event *replay_read_event(int checkpoint) /* Events that has not to be in the queue */ switch (read_event_kind) { - case REPLAY_ASYNC_EVENT_PTIMER: + case REPLAY_ASYNC_EVENT_BH: if (read_id == -1) { read_id = replay_get_qword(); } diff --git a/replay/replay-internal.h b/replay/replay-internal.h index 04d2e1b..77e0d29 100755 --- a/replay/replay-internal.h +++ b/replay/replay-internal.h @@ -41,7 +41,7 @@ enum ReplayEvents { /* Asynchronous events IDs */ enum ReplayAsyncEventKind { - REPLAY_ASYNC_EVENT_PTIMER, + REPLAY_ASYNC_EVENT_BH, REPLAY_ASYNC_EVENT_INPUT, REPLAY_ASYNC_EVENT_INPUT_SYNC, REPLAY_ASYNC_COUNT diff --git a/replay/replay.h b/replay/replay.h index cbb4e11..abb4688 100755 --- a/replay/replay.h +++ b/replay/replay.h @@ -110,8 +110,8 @@ bool replay_checkpoint(ReplayCheckpoint checkpoint); void replay_disable_events(void); /*! Returns true when saving events is enabled */ bool replay_events_enabled(void); -/*! Adds ptimer event to the queue */ -void replay_add_ptimer_event(void *bh, uint64_t id); +/*! Adds bottom half event to the queue */ +void replay_bh_schedule_event(QEMUBH *bh); /*! Adds input event to the queue */ void replay_input_event(QemuConsole *src, InputEvent *evt); /*! Adds input sync event to the queue */ -- 2.5.0