mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 08:13:54 -06:00
replay: introduce icount event
This patch adds icount event to the replay subsystem. This event corresponds to execution of several instructions and used to synchronize input events in the replay phase. Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru> Message-Id: <20150917162354.8676.31351.stgit@PASHA-ISP.def.inno> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
c16861ef1b
commit
26bc60ac82
4 changed files with 85 additions and 0 deletions
|
@ -14,6 +14,20 @@
|
|||
|
||||
#include <stdio.h>
|
||||
|
||||
enum ReplayEvents {
|
||||
/* for instruction event */
|
||||
EVENT_INSTRUCTION,
|
||||
EVENT_COUNT
|
||||
};
|
||||
|
||||
typedef struct ReplayState {
|
||||
/*! Current step - number of processed instructions and timer events. */
|
||||
uint64_t current_step;
|
||||
/*! Number of instructions to be executed before other events happen. */
|
||||
int instructions_count;
|
||||
} ReplayState;
|
||||
extern ReplayState replay_state;
|
||||
|
||||
extern unsigned int replay_data_kind;
|
||||
|
||||
/* File for replay writing */
|
||||
|
@ -50,4 +64,11 @@ void replay_finish_event(void);
|
|||
replay_data_kind variable. */
|
||||
void replay_fetch_data_kind(void);
|
||||
|
||||
/*! Saves queued events (like instructions and sound). */
|
||||
void replay_save_instructions(void);
|
||||
|
||||
/*! Skips async events until some sync event will be found.
|
||||
\return true, if event was found */
|
||||
bool replay_next_event_is(int event);
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue