diff options
author | Juan Quintela <quintela@redhat.com> | 2013-10-08 12:01:01 +0200 |
---|---|---|
committer | Juan Quintela <quintela@redhat.com> | 2014-01-13 14:04:53 +0100 |
commit | 4f08cabe9e6efe8a50abc30cfa59e8470ad434d7 (patch) | |
tree | 1976f9015bd35c14b5eb2134429a8fdc3ff6fdd4 | |
parent | 7e5609a85e3f35965af5e4c7b1480254642cf2dd (diff) | |
download | qemu-4f08cabe9e6efe8a50abc30cfa59e8470ad434d7.zip qemu-4f08cabe9e6efe8a50abc30cfa59e8470ad434d7.tar.gz qemu-4f08cabe9e6efe8a50abc30cfa59e8470ad434d7.tar.bz2 |
memory: make cpu_physical_memory_is_dirty return bool
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 | 7 | ||||
-rw-r--r-- | include/exec/memory-internal.h | 8 |
2 files changed, 8 insertions, 7 deletions
@@ -1485,11 +1485,8 @@ found: static void notdirty_mem_write(void *opaque, hwaddr ram_addr, uint64_t val, unsigned size) { - int dirty_flags; - dirty_flags = cpu_physical_memory_get_dirty_flags(ram_addr); 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); } switch (size) { case 1: @@ -1504,8 +1501,8 @@ static void notdirty_mem_write(void *opaque, hwaddr ram_addr, default: abort(); } - dirty_flags |= (0xff & ~CODE_DIRTY_FLAG); - cpu_physical_memory_set_dirty_flags(ram_addr, dirty_flags); + cpu_physical_memory_set_dirty_flag(ram_addr, MIGRATION_DIRTY_FLAG); + cpu_physical_memory_set_dirty_flag(ram_addr, VGA_DIRTY_FLAG); /* we remove the notdirty callback only if the code has been flushed */ if (cpu_physical_memory_is_dirty(ram_addr)) { diff --git a/include/exec/memory-internal.h b/include/exec/memory-internal.h index 136198c..0b25c3f 100644 --- a/include/exec/memory-internal.h +++ b/include/exec/memory-internal.h @@ -56,9 +56,13 @@ static inline bool cpu_physical_memory_get_dirty_flag(ram_addr_t addr, } /* read dirty bit (return 0 or 1) */ -static inline int cpu_physical_memory_is_dirty(ram_addr_t addr) +static inline bool cpu_physical_memory_is_dirty(ram_addr_t addr) { - return cpu_physical_memory_get_dirty_flags(addr) == 0xff; + bool vga = cpu_physical_memory_get_dirty_flag(addr, VGA_DIRTY_FLAG); + bool code = cpu_physical_memory_get_dirty_flag(addr, CODE_DIRTY_FLAG); + bool migration = + cpu_physical_memory_get_dirty_flag(addr, MIGRATION_DIRTY_FLAG); + return vga && code && migration; } static inline int cpu_physical_memory_get_dirty(ram_addr_t start, |