Add an incoherent cache flag, which indicates the region needs explicit cache maintenance. Signed-off-by: Andrew Jones <drjones@xxxxxxxxxx> --- include/exec/memory.h | 23 +++++++++++++++++++++++ memory.c | 15 +++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/include/exec/memory.h b/include/exec/memory.h index 06ffa1d185b93..c947b88b87241 100644 --- a/include/exec/memory.h +++ b/include/exec/memory.h @@ -158,6 +158,7 @@ struct MemoryRegion { bool rom_device; bool warning_printed; /* For reservations */ bool flush_coalesced_mmio; + bool incoherent_cache; MemoryRegion *alias; hwaddr alias_offset; int32_t priority; @@ -778,6 +779,28 @@ void memory_region_set_flush_coalesced(MemoryRegion *mr); void memory_region_clear_flush_coalesced(MemoryRegion *mr); /** + * memory_region_set_incoherent_cache: Flag this memory region as needing + * explicit cache maintenance. + * + * @mr: the memory region to be updated. + */ +void memory_region_set_incoherent_cache(MemoryRegion *mr); + +/** + * memory_region_clear_incoherent_cache: Remove the incoherent cache flag. + * + * @mr: the memory region to be updated. + */ +void memory_region_clear_incoherent_cache(MemoryRegion *mr); + +/** + * memory_region_has_incoherent_cache: Return the incoherent cache flag. + * + * @mr: the memory region to check. + */ +bool memory_region_has_incoherent_cache(MemoryRegion *mr); + +/** * memory_region_add_eventfd: Request an eventfd to be triggered when a word * is written to a location. * diff --git a/memory.c b/memory.c index 20f6d9eeac737..fa74bcb8c1e4c 100644 --- a/memory.c +++ b/memory.c @@ -1549,6 +1549,21 @@ void memory_region_clear_flush_coalesced(MemoryRegion *mr) } } +void memory_region_set_incoherent_cache(MemoryRegion *mr) +{ + mr->incoherent_cache = true; +} + +void memory_region_clear_incoherent_cache(MemoryRegion *mr) +{ + mr->incoherent_cache = false; +} + +bool memory_region_has_incoherent_cache(MemoryRegion *mr) +{ + return mr->incoherent_cache; +} + void memory_region_add_eventfd(MemoryRegion *mr, hwaddr addr, unsigned size, -- 1.8.3.1 _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/mailman/listinfo/kvmarm