提交 fd062573 编写于 作者: B Blue Swirl

memory: move functions is_romd and section_addr to memory API

Reviewed-by: NRichard Henderson <rth@twiddle.net>
Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
上级 cc5bea60
......@@ -32,8 +32,6 @@ void tlb_set_dirty(CPUArchState *env, target_ulong vaddr);
extern int tlb_flush_count;
/* 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);
target_phys_addr_t memory_region_section_get_iotlb(CPUArchState *env,
MemoryRegionSection *section,
......@@ -43,9 +41,5 @@ target_phys_addr_t memory_region_section_get_iotlb(CPUArchState *env,
target_ulong *address);
bool memory_region_is_unassigned(MemoryRegion *mr);
static inline bool memory_region_is_romd(MemoryRegion *mr)
{
return mr->rom_device && mr->readable;
}
#endif
#endif
......@@ -503,14 +503,6 @@ bool memory_region_is_unassigned(MemoryRegion *mr)
&& 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_unlock() do { } while(0)
#endif
......
......@@ -338,6 +338,19 @@ uint64_t memory_region_size(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
*
......@@ -666,6 +679,22 @@ void memory_region_set_alias_offset(MemoryRegion *mr,
MemoryRegionSection memory_region_find(MemoryRegion *address_space,
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
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册