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:
Philippe Mathieu-Daudé 2024-01-06 00:23:37 +01:00
parent 284a7ee2e2
commit 16ad9788b5
3 changed files with 9 additions and 23 deletions

View File

@ -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

View File

@ -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 \

View File

@ -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();