On Thu, Apr 23, 2020 at 06:38:43PM +0100, Andre Przywara wrote: > A KVM memslot has a flags field, which allows to mark a region as > read-only. > Add another memory type bit to allow kvmtool-internal users to map a > write-protected region. Write access would trap and can be handled by > the MMIO emulation, which should register on the same guest address > region. > > Signed-off-by: Andre Przywara <andre.przywara@xxxxxxx> > --- > include/kvm/kvm.h | 12 ++++++++---- > kvm.c | 5 +++++ > 2 files changed, 13 insertions(+), 4 deletions(-) > > diff --git a/include/kvm/kvm.h b/include/kvm/kvm.h > index 9428f57a..53373b08 100644 > --- a/include/kvm/kvm.h > +++ b/include/kvm/kvm.h > @@ -40,10 +40,12 @@ enum kvm_mem_type { > KVM_MEM_TYPE_RAM = 1 << 0, > KVM_MEM_TYPE_DEVICE = 1 << 1, > KVM_MEM_TYPE_RESERVED = 1 << 2, > + KVM_MEM_TYPE_READONLY = 1 << 3, > > KVM_MEM_TYPE_ALL = KVM_MEM_TYPE_RAM > | KVM_MEM_TYPE_DEVICE > | KVM_MEM_TYPE_RESERVED > + | KVM_MEM_TYPE_READONLY > }; > > struct kvm_ext { > @@ -158,17 +160,19 @@ u64 host_to_guest_flat(struct kvm *kvm, void *ptr); > bool kvm__arch_load_kernel_image(struct kvm *kvm, int fd_kernel, int fd_initrd, > const char *kernel_cmdline); > > +#define add_read_only(type, str) \ nit: this is a bit broad to throw in a header file. How about __kvm_mem_add_read_only() instead? Will