xref: /qemu/include/accel/tcg/cpu-mmu-index.h (revision fc524567087c2537b5103cdfc1d41e4f442892b6)
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 Henderson static 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