memory: replace cpu_physical_sync_dirty_bitmap() with a memory API
The function is still used as the implementation. Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:
parent
c1cd0b2c51
commit
86e775c654
@ -41,6 +41,7 @@
|
||||
#include "net.h"
|
||||
#include "gdbstub.h"
|
||||
#include "hw/smbios.h"
|
||||
#include "exec-memory.h"
|
||||
|
||||
#ifdef TARGET_SPARC
|
||||
int graphic_width = 1024;
|
||||
@ -263,10 +264,7 @@ int ram_save_live(Monitor *mon, QEMUFile *f, int stage, void *opaque)
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (cpu_physical_sync_dirty_bitmap(0, TARGET_PHYS_ADDR_MAX) != 0) {
|
||||
qemu_file_set_error(f, -EINVAL);
|
||||
return -EINVAL;
|
||||
}
|
||||
memory_global_sync_dirty_bitmap(get_system_memory());
|
||||
|
||||
if (stage == 1) {
|
||||
RAMBlock *block;
|
||||
|
@ -569,9 +569,6 @@ int cpu_physical_memory_set_dirty_tracking(int enable);
|
||||
|
||||
int cpu_physical_memory_get_dirty_tracking(void);
|
||||
|
||||
int cpu_physical_sync_dirty_bitmap(target_phys_addr_t start_addr,
|
||||
target_phys_addr_t end_addr);
|
||||
|
||||
int cpu_physical_log_start(target_phys_addr_t start_addr,
|
||||
ram_addr_t size);
|
||||
|
||||
|
@ -63,6 +63,9 @@ static inline void cpu_register_physical_memory(target_phys_addr_t start_addr,
|
||||
void qemu_register_coalesced_mmio(target_phys_addr_t addr, ram_addr_t size);
|
||||
void qemu_unregister_coalesced_mmio(target_phys_addr_t addr, ram_addr_t size);
|
||||
|
||||
int cpu_physical_sync_dirty_bitmap(target_phys_addr_t start_addr,
|
||||
target_phys_addr_t end_addr);
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
4
memory.c
4
memory.c
@ -1447,6 +1447,10 @@ MemoryRegionSection memory_region_find(MemoryRegion *address_space,
|
||||
return ret;
|
||||
}
|
||||
|
||||
void memory_global_sync_dirty_bitmap(MemoryRegion *address_space)
|
||||
{
|
||||
cpu_physical_sync_dirty_bitmap(0, TARGET_PHYS_ADDR_MAX);
|
||||
}
|
||||
|
||||
void set_system_memory_map(MemoryRegion *mr)
|
||||
{
|
||||
|
10
memory.h
10
memory.h
@ -607,6 +607,16 @@ void memory_region_set_alias_offset(MemoryRegion *mr,
|
||||
MemoryRegionSection memory_region_find(MemoryRegion *address_space,
|
||||
target_phys_addr_t addr, uint64_t size);
|
||||
|
||||
|
||||
/**
|
||||
* memory_global_sync_dirty_bitmap: synchronize the dirty log for all memory
|
||||
*
|
||||
* Synchronizes the dirty page log for an entire address space.
|
||||
* @address_space: a top-level (i.e. parentless) region that contains the
|
||||
* memory being synchronized
|
||||
*/
|
||||
void memory_global_sync_dirty_bitmap(MemoryRegion *address_space);
|
||||
|
||||
/**
|
||||
* memory_region_transaction_begin: Start a transaction.
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user