diff options
author | Juan Quintela <quintela@redhat.com> | 2013-10-08 11:57:21 +0200 |
---|---|---|
committer | Juan Quintela <quintela@redhat.com> | 2014-01-13 14:04:53 +0100 |
commit | 7e5609a85e3f35965af5e4c7b1480254642cf2dd (patch) | |
tree | 8efec8979b52563716c54fa433666091789017e5 | |
parent | a1390db4df32ad95bf7854944180d2343f7f6368 (diff) | |
download | hqemu-7e5609a85e3f35965af5e4c7b1480254642cf2dd.zip hqemu-7e5609a85e3f35965af5e4c7b1480254642cf2dd.tar.gz |
exec: create function to get a single dirty bit
Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-rw-r--r-- | exec.c | 2 | ||||
-rw-r--r-- | include/exec/memory-internal.h | 6 |
2 files changed, 7 insertions, 1 deletions
@@ -1487,7 +1487,7 @@ static void notdirty_mem_write(void *opaque, hwaddr ram_addr, { int dirty_flags; dirty_flags = cpu_physical_memory_get_dirty_flags(ram_addr); - if (!(dirty_flags & CODE_DIRTY_FLAG)) { + if (!cpu_physical_memory_get_dirty_flag(ram_addr, CODE_DIRTY_FLAG)) { tb_invalidate_phys_page_fast(ram_addr, size); dirty_flags = cpu_physical_memory_get_dirty_flags(ram_addr); } diff --git a/include/exec/memory-internal.h b/include/exec/memory-internal.h index 4ebab80..136198c 100644 --- a/include/exec/memory-internal.h +++ b/include/exec/memory-internal.h @@ -49,6 +49,12 @@ static inline int cpu_physical_memory_get_dirty_flags(ram_addr_t addr) return ram_list.phys_dirty[addr >> TARGET_PAGE_BITS]; } +static inline bool cpu_physical_memory_get_dirty_flag(ram_addr_t addr, + int dirty_flag) +{ + return ram_list.phys_dirty[addr >> TARGET_PAGE_BITS] & dirty_flag; +} + /* read dirty bit (return 0 or 1) */ static inline int cpu_physical_memory_is_dirty(ram_addr_t addr) { |