From: Jonathan Cameron <jonathan.came...@huawei.com> Inorder to implement memory interleaving we need a means to proxy the calls. Adding mem_ops allows such proxying.
Note should have no impact on use cases not using _dispatch_read/write. For now, only file backed hostmem is considered to seek feedback on the approach before considering other hostmem backends. Signed-off-by: Jonathan Cameron <jonathan.came...@huawei.com> --- softmmu/memory.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/softmmu/memory.c b/softmmu/memory.c index 678dc62f06..d537091c63 100644 --- a/softmmu/memory.c +++ b/softmmu/memory.c @@ -1606,6 +1606,15 @@ void memory_region_init_ram_from_file(MemoryRegion *mr, Error *err = NULL; memory_region_init(mr, owner, name, size); mr->ram = true; + + /* + * ops used only when directly accessing via + * - memory_region_dispatch_read() + * - memory_region_dispatch_write() + */ + mr->ops = &ram_device_mem_ops; + mr->opaque = mr; + mr->readonly = readonly; mr->terminates = true; mr->destructor = memory_region_destructor_ram; -- 2.32.0