From: Anthony Liguori Date: Mon, 19 Dec 2011 15:12:25 +0000 (-0600) Subject: Merge remote-tracking branch 'qemu-kvm/memory/mutators' into staging X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=cde7fc31dee7a7bac96779f77a21825b187871d3;p=qemu.git Merge remote-tracking branch 'qemu-kvm/memory/mutators' into staging Conflicts: memory.h --- cde7fc31dee7a7bac96779f77a21825b187871d3 diff --cc memory.h index beae1274d5,c07bcca306..fe643ff05b --- a/memory.h +++ b/memory.h @@@ -501,17 -502,50 +502,55 @@@ void memory_region_add_subregion_overla void memory_region_del_subregion(MemoryRegion *mr, MemoryRegion *subregion); - + /* + * memory_region_set_enabled: dynamically enable or disable a region + * + * Enables or disables a memory region. A disabled memory region + * ignores all accesses to itself and its subregions. It does not + * obscure sibling subregions with lower priority - it simply behaves as + * if it was removed from the hierarchy. + * + * Regions default to being enabled. + * + * @mr: the region to be updated + * @enabled: whether to enable or disable the region + */ + void memory_region_set_enabled(MemoryRegion *mr, bool enabled); + + /* + * memory_region_set_address: dynamically update the address of a region + * + * Dynamically updates the address of a region, relative to its parent. + * May be used on regions are currently part of a memory hierarchy. + * + * @mr: the region to be updated + * @addr: new address, relative to parent region + */ + void memory_region_set_address(MemoryRegion *mr, target_phys_addr_t addr); + + /* + * memory_region_set_alias_offset: dynamically update a memory alias's offset + * + * Dynamically updates the offset into the target region that an alias points + * to, as if the fourth argument to memory_region_init_alias() has changed. + * + * @mr: the #MemoryRegion to be updated; should be an alias. + * @offset: the new offset into the target memory region + */ + void memory_region_set_alias_offset(MemoryRegion *mr, + target_phys_addr_t offset); + -/* Start a transaction; changes will be accumulated and made visible only - * when the transaction ends. +/** + * memory_region_transaction_begin: Start a transaction. + * + * During a transaction, changes will be accumulated and made visible + * only when the transaction ends (is commited). */ void memory_region_transaction_begin(void); -/* Commit a transaction and make changes visible to the guest. + +/** + * memory_region_transaction_commit: Commit a transaction and make changes + * visible to the guest. */ void memory_region_transaction_commit(void);