Commit 76f35538 authored by Wen Congyang's avatar Wen Congyang Committed by Luiz Capitulino
Browse files

Add API to check whether a physical address is I/O address



This API will be used in the following patch.

Signed-off-by: default avatarWen Congyang <wency@cn.fujitsu.com>
Signed-off-by: default avatarLuiz Capitulino <lcapitulino@redhat.com>
parent 80167a8a
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -71,6 +71,10 @@ void cpu_physical_memory_unmap(void *buffer, target_phys_addr_t len,
void *cpu_register_map_client(void *opaque, void (*callback)(void *opaque));
void cpu_unregister_map_client(void *cookie);

#ifndef CONFIG_USER_ONLY
bool cpu_physical_memory_is_io(target_phys_addr_t phys_addr);
#endif

/* Coalesced MMIO regions are areas where write operations can be reordered.
 * This usually implies that write operations are side-effect free.  This allows
 * batching which can make a major impact on performance when using
+12 −0
Original line number Diff line number Diff line
@@ -4336,3 +4336,15 @@ bool virtio_is_big_endian(void)
}

#endif

#ifndef CONFIG_USER_ONLY
bool cpu_physical_memory_is_io(target_phys_addr_t phys_addr)
{
    MemoryRegionSection *section;

    section = phys_page_find(phys_addr >> TARGET_PAGE_BITS);

    return !(memory_region_is_ram(section->mr) ||
             memory_region_is_romd(section->mr));
}
#endif