qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 12/13] target/mips: Let get_seg*_physical_address() take MMUA


From: Jiaxun Yang
Subject: Re: [PATCH 12/13] target/mips: Let get_seg*_physical_address() take MMUAccessType arg
Date: Tue, 2 Feb 2021 11:43:55 +0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.0

在 2021/1/28 下午10:41, Philippe Mathieu-Daudé 写道:
get_physical_address() calls get_seg_physical_address() and
get_segctl_physical_address() passing a MMUAccessType type.
Let the prototypes use it as argument, as it is stricter than
an integer.

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

Reviewed-by: Jiaxun Yang <jiaxun.yang@flygoat.com>

---
  target/mips/tlb_helper.c | 11 ++++++-----
  1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/target/mips/tlb_helper.c b/target/mips/tlb_helper.c
index 64e89591abc..14f5b1a0a9c 100644
--- a/target/mips/tlb_helper.c
+++ b/target/mips/tlb_helper.c
@@ -222,7 +222,7 @@ static int is_seg_am_mapped(unsigned int am, bool eu, int 
mmu_idx)
static int get_seg_physical_address(CPUMIPSState *env, hwaddr *physical,
                                      int *prot, target_ulong real_address,
-                                    int rw, int mmu_idx,
+                                    MMUAccessType access_type, int mmu_idx,
                                      unsigned int am, bool eu,
                                      target_ulong segmask,
                                      hwaddr physical_base)
@@ -234,7 +234,8 @@ static int get_seg_physical_address(CPUMIPSState *env, 
hwaddr *physical,
          return mapped;
      } else if (mapped) {
          /* The segment is TLB mapped */
-        return env->tlb->map_address(env, physical, prot, real_address, rw);
+        return env->tlb->map_address(env, physical, prot, real_address,
+                                     access_type);
      } else {
          /* The segment is unmapped */
          *physical = physical_base | (real_address & segmask);
@@ -245,15 +246,15 @@ static int get_seg_physical_address(CPUMIPSState *env, 
hwaddr *physical,
static int get_segctl_physical_address(CPUMIPSState *env, hwaddr *physical,
                                         int *prot, target_ulong real_address,
-                                       int rw, int mmu_idx,
+                                       MMUAccessType access_type, int mmu_idx,
                                         uint16_t segctl, target_ulong segmask)
  {
      unsigned int am = (segctl & CP0SC_AM_MASK) >> CP0SC_AM;
      bool eu = (segctl >> CP0SC_EU) & 1;
      hwaddr pa = ((hwaddr)segctl & CP0SC_PA_MASK) << 20;
- return get_seg_physical_address(env, physical, prot, real_address, rw,
-                                    mmu_idx, am, eu, segmask,
+    return get_seg_physical_address(env, physical, prot, real_address,
+                                    access_type, mmu_idx, am, eu, segmask,
                                      pa & ~(hwaddr)segmask);
  }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]