This patchset introduces memory_region_set_enabled() and memory_region_set_address() to avoid the requirement on memory routers to track the internal state of the memory API (so they know whether they need to add or remove a region). Instead, they can simply copy the state of the region from the guest-exposed register to the memory core, via the new mutator functions.
v2: - fix minor bug in set_address() - add set_alias_offset() - two example users Avi Kivity (6): memory: introduce memory_region_set_enabled() memory: introduce memory_region_set_address() memory: introduce memory_region_set_alias_offset() memory: optimize empty transactions due to mutators cirrus_vga: adapt to memory mutators API piix_pci: adapt smram mapping to use memory mutators hw/cirrus_vga.c | 50 +++++++++++---------------------- hw/piix_pci.c | 20 ++++--------- memory.c | 81 +++++++++++++++++++++++++++++++++++++++++++++++------- memory.h | 39 ++++++++++++++++++++++++++ 4 files changed, 132 insertions(+), 58 deletions(-) -- 1.7.7.1