return bytes_sent;
}
-static RAMBlock *last_block;
+
+/* This is the last block that we have visited serching for dirty pages
+ */
+static RAMBlock *last_seen_block;
static ram_addr_t last_offset;
static unsigned long *migration_bitmap;
static uint64_t migration_dirty_pages;
static int ram_save_block(QEMUFile *f, bool last_stage)
{
- RAMBlock *block = last_block;
+ RAMBlock *block = last_seen_block;
ram_addr_t offset = last_offset;
int bytes_sent = -1;
MemoryRegion *mr;
mr = block->mr;
if (migration_bitmap_test_and_reset_dirty(mr, offset)) {
uint8_t *p;
- int cont = (block == last_block) ? RAM_SAVE_FLAG_CONTINUE : 0;
+ int cont = (block == last_seen_block) ?
+ RAM_SAVE_FLAG_CONTINUE : 0;
p = memory_region_get_ram_ptr(mr) + offset;
if (!block)
block = QTAILQ_FIRST(&ram_list.blocks);
}
- } while (block != last_block || offset != last_offset);
+ } while (block != last_seen_block || offset != last_offset);
- last_block = block;
+ last_seen_block = block;
last_offset = offset;
return bytes_sent;
static void reset_ram_globals(void)
{
- last_block = NULL;
+ last_seen_block = NULL;
last_offset = 0;
last_version = ram_list.version;
}