mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-12-17 21:26:13 -07:00
memory: introduce memory_region_set_enabled()
This allows users to disable a memory region without removing it from the hierarchy, simplifying the implementation of memory routers. Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:
parent
f44336c594
commit
6bba19ba4e
2 changed files with 46 additions and 11 deletions
17
memory.h
17
memory.h
|
|
@ -123,6 +123,7 @@ struct MemoryRegion {
|
|||
bool terminates;
|
||||
bool readable;
|
||||
bool readonly; /* For RAM regions */
|
||||
bool enabled;
|
||||
MemoryRegion *alias;
|
||||
target_phys_addr_t alias_offset;
|
||||
unsigned priority;
|
||||
|
|
@ -501,6 +502,22 @@ void memory_region_add_subregion_overlap(MemoryRegion *mr,
|
|||
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);
|
||||
|
||||
/* Start a transaction; changes will be accumulated and made visible only
|
||||
* when the transaction ends.
|
||||
*/
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue