On 1/30/24 17:46, Philippe Mathieu-Daudé wrote:
Hi Richard,

On 30/1/24 00:30, Richard Henderson wrote:
To be used after all targets have populated the hook.

Signed-off-by: Richard Henderson <richard.hender...@linaro.org>
---
  include/hw/core/cpu.h | 3 +++
  1 file changed, 3 insertions(+)

diff --git a/include/hw/core/cpu.h b/include/hw/core/cpu.h
index 2c284d6397..4385ce54c9 100644
--- a/include/hw/core/cpu.h
+++ b/include/hw/core/cpu.h
@@ -103,6 +103,8 @@ struct SysemuCPUOps;
   * @parse_features: Callback to parse command line arguments.
   * @reset_dump_flags: #CPUDumpFlags to use for reset logging.
   * @has_work: Callback for checking if there is work to do.
+ * @mmu_index: Callback for choosing softmmu mmu index;
+ *       may be used internally by memory_rw_debug without TCG.
   * @memory_rw_debug: Callback for GDB memory access.
   * @dump_state: Callback for dumping state.
   * @query_cpu_fast:
@@ -150,6 +152,7 @@ struct CPUClass {
      void (*parse_features)(const char *typename, char *str, Error **errp);
      bool (*has_work)(CPUState *cpu);
+    int (*mmu_index)(CPUState *cpu, bool ifetch);

Can the index ever be negative?

No.

Would it be useful to also have a mmu_index_max() so we could
check mmu_index() is in range in the final cpu_mmu_index()?

We have NB_MMU_MODES, a target-independent constant.


r~


Reply via email to