accel/tcg: Introduce TCGCPUOps::mmu_index() callback
We'll move CPUClass::mmu_index() to TCGCPUOps::mmu_index(). Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-ID: <20250401080938.32278-3-philmd@linaro.org>
This commit is contained in:
parent
6ca6310699
commit
17fa8b6f03
2 changed files with 7 additions and 1 deletions
|
|
@ -10,6 +10,7 @@
|
|||
#define ACCEL_TCG_CPU_MMU_INDEX_H
|
||||
|
||||
#include "hw/core/cpu.h"
|
||||
#include "accel/tcg/cpu-ops.h"
|
||||
#include "tcg/debug-assert.h"
|
||||
#ifdef COMPILING_PER_TARGET
|
||||
# ifdef CONFIG_USER_ONLY
|
||||
|
|
@ -33,7 +34,9 @@ static inline int cpu_mmu_index(CPUState *cs, bool ifetch)
|
|||
# endif
|
||||
#endif
|
||||
|
||||
int ret = cs->cc->mmu_index(cs, ifetch);
|
||||
const TCGCPUOps *tcg_ops = cs->cc->tcg_ops;
|
||||
int ret = tcg_ops->mmu_index ? tcg_ops->mmu_index(cs, ifetch)
|
||||
: cs->cc->mmu_index(cs, ifetch);
|
||||
tcg_debug_assert(ret >= 0 && ret < NB_MMU_MODES);
|
||||
return ret;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -67,6 +67,9 @@ struct TCGCPUOps {
|
|||
/** @debug_excp_handler: Callback for handling debug exceptions */
|
||||
void (*debug_excp_handler)(CPUState *cpu);
|
||||
|
||||
/** @mmu_index: Callback for choosing softmmu mmu index */
|
||||
int (*mmu_index)(CPUState *cpu, bool ifetch);
|
||||
|
||||
#ifdef CONFIG_USER_ONLY
|
||||
/**
|
||||
* @fake_user_interrupt: Callback for 'fake exception' handling.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue