]> git.proxmox.com Git - mirror_qemu.git/commit
memory: add readonly support to memory_region_init_ram_from_file()
authorStefan Hajnoczi <stefanha@redhat.com>
Mon, 4 Jan 2021 17:13:18 +0000 (17:13 +0000)
committerEduardo Habkost <ehabkost@redhat.com>
Mon, 1 Feb 2021 22:07:34 +0000 (17:07 -0500)
commit369d6dc4de45b8e5e35a851f5719e7fd59a0462f
tree9b7bf91786c4866c63bab05090e83964a7bbbf33
parent74208cd252c5da9d867270a178799abd802b9338
memory: add readonly support to memory_region_init_ram_from_file()

There is currently no way to open(O_RDONLY) and mmap(PROT_READ) when
creating a memory region from a file. This functionality is needed since
the underlying host file may not allow writing.

Add a bool readonly argument to memory_region_init_ram_from_file() and
the APIs it calls.

Extend memory_region_init_ram_from_file() rather than introducing a
memory_region_init_rom_from_file() API so that callers can easily make a
choice between read/write and read-only at runtime without calling
different APIs.

No new RAMBlock flag is introduced for read-only because it's unclear
whether RAMBlocks need to know that they are read-only. Pass a bool
readonly argument instead.

Both of these design decisions can be changed in the future. It just
seemed like the simplest approach to me.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Liam Merwick <liam.merwick@oracle.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Message-Id: <20210104171320.575838-2-stefanha@redhat.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
backends/hostmem-file.c
include/exec/memory.h
include/exec/ram_addr.h
include/qemu/mmap-alloc.h
softmmu/memory.c
softmmu/physmem.c
util/mmap-alloc.c
util/oslib-posix.c