system/replay: Restrict icount to system emulation
Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-ID: <20231208113529.74067-7-philmd@linaro.org>
This commit is contained in:
parent
284a7ee2e2
commit
16ad9788b5
@ -30,7 +30,7 @@ typedef enum {
|
|||||||
ICOUNT_ADAPTATIVE,
|
ICOUNT_ADAPTATIVE,
|
||||||
} ICountMode;
|
} ICountMode;
|
||||||
|
|
||||||
#ifdef CONFIG_TCG
|
#if defined(CONFIG_TCG) && !defined(CONFIG_USER_ONLY)
|
||||||
extern ICountMode use_icount;
|
extern ICountMode use_icount;
|
||||||
#define icount_enabled() (use_icount)
|
#define icount_enabled() (use_icount)
|
||||||
#else
|
#else
|
||||||
|
@ -1,6 +1,3 @@
|
|||||||
#ifndef SYSEMU_REPLAY_H
|
|
||||||
#define SYSEMU_REPLAY_H
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* QEMU replay (system interface)
|
* QEMU replay (system interface)
|
||||||
*
|
*
|
||||||
@ -11,6 +8,12 @@
|
|||||||
* See the COPYING file in the top-level directory.
|
* See the COPYING file in the top-level directory.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
#ifndef SYSEMU_REPLAY_H
|
||||||
|
#define SYSEMU_REPLAY_H
|
||||||
|
|
||||||
|
#ifdef CONFIG_USER_ONLY
|
||||||
|
#error Cannot include this header from user emulation
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "exec/replay-core.h"
|
#include "exec/replay-core.h"
|
||||||
#include "qapi/qapi-types-misc.h"
|
#include "qapi/qapi-types-misc.h"
|
||||||
@ -84,12 +87,14 @@ int64_t replay_save_clock(ReplayClockKind kind, int64_t clock,
|
|||||||
int64_t replay_read_clock(ReplayClockKind kind, int64_t raw_icount);
|
int64_t replay_read_clock(ReplayClockKind kind, int64_t raw_icount);
|
||||||
/*! Saves or reads the clock depending on the current replay mode. */
|
/*! Saves or reads the clock depending on the current replay mode. */
|
||||||
#define REPLAY_CLOCK(clock, value) \
|
#define REPLAY_CLOCK(clock, value) \
|
||||||
|
!icount_enabled() ? (value) : \
|
||||||
(replay_mode == REPLAY_MODE_PLAY \
|
(replay_mode == REPLAY_MODE_PLAY \
|
||||||
? replay_read_clock((clock), icount_get_raw()) \
|
? replay_read_clock((clock), icount_get_raw()) \
|
||||||
: replay_mode == REPLAY_MODE_RECORD \
|
: replay_mode == REPLAY_MODE_RECORD \
|
||||||
? replay_save_clock((clock), (value), icount_get_raw()) \
|
? replay_save_clock((clock), (value), icount_get_raw()) \
|
||||||
: (value))
|
: (value))
|
||||||
#define REPLAY_CLOCK_LOCKED(clock, value) \
|
#define REPLAY_CLOCK_LOCKED(clock, value) \
|
||||||
|
!icount_enabled() ? (value) : \
|
||||||
(replay_mode == REPLAY_MODE_PLAY \
|
(replay_mode == REPLAY_MODE_PLAY \
|
||||||
? replay_read_clock((clock), icount_get_raw_locked()) \
|
? replay_read_clock((clock), icount_get_raw_locked()) \
|
||||||
: replay_mode == REPLAY_MODE_RECORD \
|
: replay_mode == REPLAY_MODE_RECORD \
|
||||||
|
@ -6,10 +6,6 @@
|
|||||||
|
|
||||||
ICountMode use_icount = ICOUNT_DISABLED;
|
ICountMode use_icount = ICOUNT_DISABLED;
|
||||||
|
|
||||||
void icount_update(CPUState *cpu)
|
|
||||||
{
|
|
||||||
abort();
|
|
||||||
}
|
|
||||||
bool icount_configure(QemuOpts *opts, Error **errp)
|
bool icount_configure(QemuOpts *opts, Error **errp)
|
||||||
{
|
{
|
||||||
/* signal error */
|
/* signal error */
|
||||||
@ -22,21 +18,6 @@ int64_t icount_get_raw(void)
|
|||||||
abort();
|
abort();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
int64_t icount_get(void)
|
|
||||||
{
|
|
||||||
abort();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
int64_t icount_to_ns(int64_t icount)
|
|
||||||
{
|
|
||||||
abort();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
int64_t icount_round(int64_t count)
|
|
||||||
{
|
|
||||||
abort();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
void icount_start_warp_timer(void)
|
void icount_start_warp_timer(void)
|
||||||
{
|
{
|
||||||
abort();
|
abort();
|
||||||
|
Loading…
Reference in New Issue
Block a user