Message ID | 4F333BA3.70006@cn.fujitsu.com |
---|---|
State | New |
Headers | show |
On 2012-02-09 04:21, Wen Congyang wrote: > This API will be used in the following patch. > > Signed-off-by: Wen Congyang <wency@cn.fujitsu.com> > --- > cpu-common.h | 2 ++ > exec.c | 16 ++++++++++++++++ > 2 files changed, 18 insertions(+), 0 deletions(-) > > diff --git a/cpu-common.h b/cpu-common.h > index a40c57d..d047137 100644 > --- a/cpu-common.h > +++ b/cpu-common.h > @@ -71,6 +71,8 @@ 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); > > +bool is_io_addr(target_phys_addr_t phys_addr); Something like cpu_physical_memory_is_io would be more consistent with other APIs around. > + > /* 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 > diff --git a/exec.c b/exec.c > index b81677a..edc5684 100644 > --- a/exec.c > +++ b/exec.c > @@ -4435,3 +4435,19 @@ bool virtio_is_big_endian(void) > #undef env > > #endif > + > +bool is_io_addr(target_phys_addr_t phys_addr) > +{ > + ram_addr_t pd; > + PhysPageDesc p; > + > + p = phys_page_find(phys_addr >> TARGET_PAGE_BITS); > + pd = p.phys_offset; > + > + if (!is_ram_rom_romd(pd)) { return !is_ram_rom_romd(pd); ? > + /* I/O region */ > + return true; > + } > + > + return false; > +} Jan
At 02/15/2012 12:52 AM, Jan Kiszka Wrote: > On 2012-02-09 04:21, Wen Congyang wrote: >> This API will be used in the following patch. >> >> Signed-off-by: Wen Congyang <wency@cn.fujitsu.com> >> --- >> cpu-common.h | 2 ++ >> exec.c | 16 ++++++++++++++++ >> 2 files changed, 18 insertions(+), 0 deletions(-) >> >> diff --git a/cpu-common.h b/cpu-common.h >> index a40c57d..d047137 100644 >> --- a/cpu-common.h >> +++ b/cpu-common.h >> @@ -71,6 +71,8 @@ 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); >> >> +bool is_io_addr(target_phys_addr_t phys_addr); > > Something like cpu_physical_memory_is_io would be more consistent with > other APIs around. Do you mean change the API's name? If so, I will change it. > >> + >> /* 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 >> diff --git a/exec.c b/exec.c >> index b81677a..edc5684 100644 >> --- a/exec.c >> +++ b/exec.c >> @@ -4435,3 +4435,19 @@ bool virtio_is_big_endian(void) >> #undef env >> >> #endif >> + >> +bool is_io_addr(target_phys_addr_t phys_addr) >> +{ >> + ram_addr_t pd; >> + PhysPageDesc p; >> + >> + p = phys_page_find(phys_addr >> TARGET_PAGE_BITS); >> + pd = p.phys_offset; >> + >> + if (!is_ram_rom_romd(pd)) { > > return !is_ram_rom_romd(pd); ? Yes, I will change the code. Thanks Wen Congyang > >> + /* I/O region */ >> + return true; >> + } >> + >> + return false; >> +} > > Jan >
diff --git a/cpu-common.h b/cpu-common.h index a40c57d..d047137 100644 --- a/cpu-common.h +++ b/cpu-common.h @@ -71,6 +71,8 @@ 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); +bool is_io_addr(target_phys_addr_t phys_addr); + /* 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 diff --git a/exec.c b/exec.c index b81677a..edc5684 100644 --- a/exec.c +++ b/exec.c @@ -4435,3 +4435,19 @@ bool virtio_is_big_endian(void) #undef env #endif + +bool is_io_addr(target_phys_addr_t phys_addr) +{ + ram_addr_t pd; + PhysPageDesc p; + + p = phys_page_find(phys_addr >> TARGET_PAGE_BITS); + pd = p.phys_offset; + + if (!is_ram_rom_romd(pd)) { + /* I/O region */ + return true; + } + + return false; +}
This API will be used in the following patch. Signed-off-by: Wen Congyang <wency@cn.fujitsu.com> --- cpu-common.h | 2 ++ exec.c | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 0 deletions(-)