replay: make locking visible outside replay code

The replay_mutex_lock/unlock/locked functions are now going to be used
for ensuring lock-step behaviour between the two threads. Make them
public API functions and also provide stubs for non-QEMU builds on
common paths.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>
Message-Id: <20180227095242.1060.16601.stgit@pasha-VirtualBox>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Alex Bennée 2018-02-27 12:52:42 +03:00 committed by Paolo Bonzini
parent 180d30bebe
commit a36544d34c
4 changed files with 25 additions and 4 deletions

View file

@ -181,7 +181,7 @@ void replay_mutex_destroy(void)
qemu_mutex_destroy(&lock);
}
static bool replay_mutex_locked(void)
bool replay_mutex_locked(void)
{
return replay_locked;
}

View file

@ -100,12 +100,12 @@ int64_t replay_get_qword(void);
void replay_get_array(uint8_t *buf, size_t *size);
void replay_get_array_alloc(uint8_t **buf, size_t *size);
/* Mutex functions for protecting replay log file */
/* Mutex functions for protecting replay log file and ensuring
* synchronisation between vCPU and main-loop threads. */
void replay_mutex_init(void);
void replay_mutex_destroy(void);
void replay_mutex_lock(void);
void replay_mutex_unlock(void);
bool replay_mutex_locked(void);
/*! Checks error status of the file. */
void replay_check_error(void);