On 12/04/2011 12:09 PM, Avi Kivity wrote:
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.
Based on previous discussions, any time these functions are used, the caller more than likely needs to call them again in a post_load hook during restore, correct?
It would be good to document this very clearly in the header docs for each function. Other than Blue's comments, the rest looks good to me. Regards, Anthony Liguori
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(-)