Browse Source

memory: move functions is_romd and section_addr to memory API

Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Blue Swirl 13 năm trước cách đây
mục cha
commit
fd06257351
3 tập tin đã thay đổi với 29 bổ sung14 xóa
  1. 0 6
      cputlb.h
  2. 0 8
      exec.c
  3. 29 0
      memory.h

+ 0 - 6
cputlb.h

@@ -32,8 +32,6 @@ void tlb_set_dirty(CPUArchState *env, target_ulong vaddr);
 extern int tlb_flush_count;
 extern int tlb_flush_count;
 
 
 /* exec.c */
 /* exec.c */
-target_phys_addr_t memory_region_section_addr(MemoryRegionSection *section,
-                                              target_phys_addr_t addr);
 void tb_flush_jmp_cache(CPUArchState *env, target_ulong addr);
 void tb_flush_jmp_cache(CPUArchState *env, target_ulong addr);
 target_phys_addr_t memory_region_section_get_iotlb(CPUArchState *env,
 target_phys_addr_t memory_region_section_get_iotlb(CPUArchState *env,
                                                    MemoryRegionSection *section,
                                                    MemoryRegionSection *section,
@@ -43,9 +41,5 @@ target_phys_addr_t memory_region_section_get_iotlb(CPUArchState *env,
                                                    target_ulong *address);
                                                    target_ulong *address);
 bool memory_region_is_unassigned(MemoryRegion *mr);
 bool memory_region_is_unassigned(MemoryRegion *mr);
 
 
-static inline bool memory_region_is_romd(MemoryRegion *mr)
-{
-    return mr->rom_device && mr->readable;
-}
 #endif
 #endif
 #endif
 #endif

+ 0 - 8
exec.c

@@ -503,14 +503,6 @@ bool memory_region_is_unassigned(MemoryRegion *mr)
         && mr != &io_mem_watch;
         && mr != &io_mem_watch;
 }
 }
 
 
-target_phys_addr_t memory_region_section_addr(MemoryRegionSection *section,
-                                              target_phys_addr_t addr)
-{
-    addr -= section->offset_within_address_space;
-    addr += section->offset_within_region;
-    return addr;
-}
-
 #define mmap_lock() do { } while(0)
 #define mmap_lock() do { } while(0)
 #define mmap_unlock() do { } while(0)
 #define mmap_unlock() do { } while(0)
 #endif
 #endif

+ 29 - 0
memory.h

@@ -338,6 +338,19 @@ uint64_t memory_region_size(MemoryRegion *mr);
  */
  */
 bool memory_region_is_ram(MemoryRegion *mr);
 bool memory_region_is_ram(MemoryRegion *mr);
 
 
+/**
+ * memory_region_is_romd: check whether a memory region is ROMD
+ *
+ * Returns %true is a memory region is ROMD and currently set to allow
+ * direct reads.
+ *
+ * @mr: the memory region being queried
+ */
+static inline bool memory_region_is_romd(MemoryRegion *mr)
+{
+    return mr->rom_device && mr->readable;
+}
+
 /**
 /**
  * memory_region_name: get a memory region's name
  * memory_region_name: get a memory region's name
  *
  *
@@ -666,6 +679,22 @@ void memory_region_set_alias_offset(MemoryRegion *mr,
 MemoryRegionSection memory_region_find(MemoryRegion *address_space,
 MemoryRegionSection memory_region_find(MemoryRegion *address_space,
                                        target_phys_addr_t addr, uint64_t size);
                                        target_phys_addr_t addr, uint64_t size);
 
 
+/**
+ * memory_region_section_addr: get offset within MemoryRegionSection
+ *
+ * Returns offset within MemoryRegionSection
+ *
+ * @section: the memory region section being queried
+ * @addr: address in address space
+ */
+static inline target_phys_addr_t
+memory_region_section_addr(MemoryRegionSection *section,
+                           target_phys_addr_t addr)
+{
+    addr -= section->offset_within_address_space;
+    addr += section->offset_within_region;
+    return addr;
+}
 
 
 /**
 /**
  * memory_global_sync_dirty_bitmap: synchronize the dirty log for all memory
  * memory_global_sync_dirty_bitmap: synchronize the dirty log for all memory