summary refs log tree commit diff stats
path: root/arch_init.c
diff options
context:
space:
mode:
authorBlue Swirl <blauwirbel@gmail.com>2012-01-22 16:38:21 +0000
committerBlue Swirl <blauwirbel@gmail.com>2012-02-04 12:45:10 +0000
commitcd7a45c95ecf2404810f3c6becb7cb83c5010ad8 (patch)
tree49d6bedd8bf8267333293bfc5217687d3175b82c /arch_init.c
parentcb437e48ab7ddd9b85843beb524904ee4b565721 (diff)
downloadfocaccia-qemu-cd7a45c95ecf2404810f3c6becb7cb83c5010ad8.tar.gz
focaccia-qemu-cd7a45c95ecf2404810f3c6becb7cb83c5010ad8.zip
memory: change dirty getting API to take a size
Instead of each device knowing or guessing the guest page size,
just pass the desired size of dirtied memory area.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Diffstat (limited to 'arch_init.c')
-rw-r--r--arch_init.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/arch_init.c b/arch_init.c
index 2366511a6f..699bdd1051 100644
--- a/arch_init.c
+++ b/arch_init.c
@@ -141,7 +141,8 @@ static int ram_save_block(QEMUFile *f)
 
     do {
         mr = block->mr;
-        if (memory_region_get_dirty(mr, offset, DIRTY_MEMORY_MIGRATION)) {
+        if (memory_region_get_dirty(mr, offset, TARGET_PAGE_SIZE,
+                                    DIRTY_MEMORY_MIGRATION)) {
             uint8_t *p;
             int cont = (block == last_block) ? RAM_SAVE_FLAG_CONTINUE : 0;
 
@@ -198,7 +199,7 @@ static ram_addr_t ram_save_remaining(void)
     QLIST_FOREACH(block, &ram_list.blocks, next) {
         ram_addr_t addr;
         for (addr = 0; addr < block->length; addr += TARGET_PAGE_SIZE) {
-            if (memory_region_get_dirty(block->mr, addr,
+            if (memory_region_get_dirty(block->mr, addr, TARGET_PAGE_SIZE,
                                         DIRTY_MEMORY_MIGRATION)) {
                 count++;
             }
@@ -283,7 +284,7 @@ int ram_save_live(Monitor *mon, QEMUFile *f, int stage, void *opaque)
         /* Make sure all dirty bits are set */
         QLIST_FOREACH(block, &ram_list.blocks, next) {
             for (addr = 0; addr < block->length; addr += TARGET_PAGE_SIZE) {
-                if (!memory_region_get_dirty(block->mr, addr,
+                if (!memory_region_get_dirty(block->mr, addr, TARGET_PAGE_SIZE,
                                              DIRTY_MEMORY_MIGRATION)) {
                     memory_region_set_dirty(block->mr, addr, TARGET_PAGE_SIZE);
                 }