diff options
author | Pierrick Bouvier <pierrick.bouvier@linaro.org> | 2025-04-14 08:30:24 -0700 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2025-05-06 15:01:22 +0100 |
commit | e47a9e886f2df1c8aae47dae03f07d417bb73dd5 (patch) | |
tree | 123af8ab7e8e69720e8b46b283b0797a25ecb515 | |
parent | d5bd8d8267eba7379d94e0c2e46e54dd475d9886 (diff) | |
download | qemu-e47a9e886f2df1c8aae47dae03f07d417bb73dd5.zip qemu-e47a9e886f2df1c8aae47dae03f07d417bb73dd5.tar.gz qemu-e47a9e886f2df1c8aae47dae03f07d417bb73dd5.tar.bz2 |
target/arm/ptw: extract arm_mmu_idx_to_security_space
We'll reuse this function later.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Message-id: 20250414153027.1486719-2-pierrick.bouvier@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
-rw-r--r-- | target/arm/ptw.c | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/target/arm/ptw.c b/target/arm/ptw.c index e0e82ae..bdb4de7 100644 --- a/target/arm/ptw.c +++ b/target/arm/ptw.c @@ -3551,13 +3551,9 @@ bool get_phys_addr_with_space_nogpc(CPUARMState *env, vaddr address, memop, result, fi); } -bool get_phys_addr(CPUARMState *env, vaddr address, - MMUAccessType access_type, MemOp memop, ARMMMUIdx mmu_idx, - GetPhysAddrResult *result, ARMMMUFaultInfo *fi) +static ARMSecuritySpace +arm_mmu_idx_to_security_space(CPUARMState *env, ARMMMUIdx mmu_idx) { - S1Translate ptw = { - .in_mmu_idx = mmu_idx, - }; ARMSecuritySpace ss; switch (mmu_idx) { @@ -3618,7 +3614,18 @@ bool get_phys_addr(CPUARMState *env, vaddr address, g_assert_not_reached(); } - ptw.in_space = ss; + return ss; +} + +bool get_phys_addr(CPUARMState *env, vaddr address, + MMUAccessType access_type, MemOp memop, ARMMMUIdx mmu_idx, + GetPhysAddrResult *result, ARMMMUFaultInfo *fi) +{ + S1Translate ptw = { + .in_mmu_idx = mmu_idx, + .in_space = arm_mmu_idx_to_security_space(env, mmu_idx), + }; + return get_phys_addr_gpc(env, &ptw, address, access_type, memop, result, fi); } |