qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH 01/13] target/mips: Remove access_type argument from map_addr


From: Jiaxun Yang
Subject: Re: [PATCH 01/13] target/mips: Remove access_type argument from map_address() handler
Date: Tue, 2 Feb 2021 11:22:04 +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é 写道:
TLB map_address() handlers don't use the 'access_type' argument,
remove it to simplify.

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

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

---
  target/mips/internal.h   |  8 ++++----
  target/mips/tlb_helper.c | 15 +++++++--------
  2 files changed, 11 insertions(+), 12 deletions(-)

diff --git a/target/mips/internal.h b/target/mips/internal.h
index 5dd17ff7333..d09afded5ea 100644
--- a/target/mips/internal.h
+++ b/target/mips/internal.h
@@ -111,7 +111,7 @@ struct CPUMIPSTLBContext {
      uint32_t nb_tlb;
      uint32_t tlb_in_use;
      int (*map_address)(struct CPUMIPSState *env, hwaddr *physical, int *prot,
-                       target_ulong address, int rw, int access_type);
+                       target_ulong address, int rw);
      void (*helper_tlbwi)(struct CPUMIPSState *env);
      void (*helper_tlbwr)(struct CPUMIPSState *env);
      void (*helper_tlbp)(struct CPUMIPSState *env);
@@ -126,11 +126,11 @@ struct CPUMIPSTLBContext {
  };
int no_mmu_map_address(CPUMIPSState *env, hwaddr *physical, int *prot,
-                       target_ulong address, int rw, int access_type);
+                       target_ulong address, int rw);
  int fixed_mmu_map_address(CPUMIPSState *env, hwaddr *physical, int *prot,
-                          target_ulong address, int rw, int access_type);
+                          target_ulong address, int rw);
  int r4k_map_address(CPUMIPSState *env, hwaddr *physical, int *prot,
-                    target_ulong address, int rw, int access_type);
+                    target_ulong address, int rw);
  void r4k_helper_tlbwi(CPUMIPSState *env);
  void r4k_helper_tlbwr(CPUMIPSState *env);
  void r4k_helper_tlbp(CPUMIPSState *env);
diff --git a/target/mips/tlb_helper.c b/target/mips/tlb_helper.c
index 082c17928d3..1af2dc969d6 100644
--- a/target/mips/tlb_helper.c
+++ b/target/mips/tlb_helper.c
@@ -39,7 +39,7 @@ enum {
/* no MMU emulation */
  int no_mmu_map_address(CPUMIPSState *env, hwaddr *physical, int *prot,
-                       target_ulong address, int rw, int access_type)
+                       target_ulong address, int rw)
  {
      *physical = address;
      *prot = PAGE_READ | PAGE_WRITE | PAGE_EXEC;
@@ -48,7 +48,7 @@ int no_mmu_map_address(CPUMIPSState *env, hwaddr *physical, 
int *prot,
/* fixed mapping MMU emulation */
  int fixed_mmu_map_address(CPUMIPSState *env, hwaddr *physical, int *prot,
-                          target_ulong address, int rw, int access_type)
+                          target_ulong address, int rw)
  {
      if (address <= (int32_t)0x7FFFFFFFUL) {
          if (!(env->CP0_Status & (1 << CP0St_ERL))) {
@@ -68,7 +68,7 @@ int fixed_mmu_map_address(CPUMIPSState *env, hwaddr 
*physical, int *prot,
/* MIPS32/MIPS64 R4000-style MMU emulation */
  int r4k_map_address(CPUMIPSState *env, hwaddr *physical, int *prot,
-                    target_ulong address, int rw, int access_type)
+                    target_ulong address, int rw)
  {
      uint16_t ASID = env->CP0_EntryHi & env->CP0_EntryHi_ASID_mask;
      uint32_t MMID = env->CP0_MemoryMapID;
@@ -234,8 +234,7 @@ 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,
-                                     access_type);
+        return env->tlb->map_address(env, physical, prot, real_address, rw);
      } else {
          /* The segment is unmapped */
          *physical = physical_base | (real_address & segmask);
@@ -314,7 +313,7 @@ static int get_physical_address(CPUMIPSState *env, hwaddr 
*physical,
          /* xuseg */
          if (UX && address <= (0x3FFFFFFFFFFFFFFFULL & env->SEGMask)) {
              ret = env->tlb->map_address(env, physical, prot,
-                                        real_address, rw, access_type);
+                                        real_address, rw);
          } else {
              ret = TLBRET_BADADDR;
          }
@@ -323,7 +322,7 @@ static int get_physical_address(CPUMIPSState *env, hwaddr 
*physical,
          if ((supervisor_mode || kernel_mode) &&
              SX && address <= (0x7FFFFFFFFFFFFFFFULL & env->SEGMask)) {
              ret = env->tlb->map_address(env, physical, prot,
-                                        real_address, rw, access_type);
+                                        real_address, rw);
          } else {
              ret = TLBRET_BADADDR;
          }
@@ -364,7 +363,7 @@ static int get_physical_address(CPUMIPSState *env, hwaddr 
*physical,
          if (kernel_mode && KX &&
              address <= (0xFFFFFFFF7FFFFFFFULL & env->SEGMask)) {
              ret = env->tlb->map_address(env, physical, prot,
-                                        real_address, rw, access_type);
+                                        real_address, rw);
          } else {
              ret = TLBRET_BADADDR;
          }




reply via email to

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