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