1efe25c26SRichard Henderson /* 2efe25c26SRichard Henderson * cpu_mmu_index() 3efe25c26SRichard Henderson * 4efe25c26SRichard Henderson * Copyright (c) 2003 Fabrice Bellard 5efe25c26SRichard Henderson * 6efe25c26SRichard Henderson * SPDX-License-Identifier: LGPL-2.1-or-later 7efe25c26SRichard Henderson */ 8efe25c26SRichard Henderson 9efe25c26SRichard Henderson #ifndef ACCEL_TCG_CPU_MMU_INDEX_H 10efe25c26SRichard Henderson #define ACCEL_TCG_CPU_MMU_INDEX_H 11efe25c26SRichard Henderson 12efe25c26SRichard Henderson #include "hw/core/cpu.h" 1317fa8b6fSPhilippe Mathieu-Daudé #include "accel/tcg/cpu-ops.h" 14efe25c26SRichard Henderson #include "tcg/debug-assert.h" 15efe25c26SRichard Henderson #ifdef COMPILING_PER_TARGET 16efe25c26SRichard Henderson # ifdef CONFIG_USER_ONLY 17efe25c26SRichard Henderson # include "cpu.h" 18efe25c26SRichard Henderson # endif 19efe25c26SRichard Henderson #endif 20efe25c26SRichard Henderson 21efe25c26SRichard Henderson /** 22efe25c26SRichard Henderson * cpu_mmu_index: 23efe25c26SRichard Henderson * @env: The cpu environment 24efe25c26SRichard Henderson * @ifetch: True for code access, false for data access. 25efe25c26SRichard Henderson * 26efe25c26SRichard Henderson * Return the core mmu index for the current translation regime. 27efe25c26SRichard Henderson * This function is used by generic TCG code paths. 28efe25c26SRichard Henderson */ cpu_mmu_index(CPUState * cs,bool ifetch)29efe25c26SRichard Hendersonstatic inline int cpu_mmu_index(CPUState *cs, bool ifetch) 30efe25c26SRichard Henderson { 31efe25c26SRichard Henderson #ifdef COMPILING_PER_TARGET 32efe25c26SRichard Henderson # ifdef CONFIG_USER_ONLY 33efe25c26SRichard Henderson return MMU_USER_IDX; 34efe25c26SRichard Henderson # endif 35efe25c26SRichard Henderson #endif 36efe25c26SRichard Henderson 37*42fec1bbSPhilippe Mathieu-Daudé int ret = cs->cc->tcg_ops->mmu_index(cs, ifetch); 38efe25c26SRichard Henderson tcg_debug_assert(ret >= 0 && ret < NB_MMU_MODES); 39efe25c26SRichard Henderson return ret; 40efe25c26SRichard Henderson } 41efe25c26SRichard Henderson 42efe25c26SRichard Henderson #endif /* ACCEL_TCG_CPU_MMU_INDEX_H */ 43