> index 50385e3f81..dd5876471f 100644 > --- a/include/qemu/mmap-alloc.h > +++ b/include/qemu/mmap-alloc.h > @@ -7,7 +7,8 @@ size_t qemu_fd_getpagesize(int fd); > > size_t qemu_mempath_getpagesize(const char *mem_path); > > -void *qemu_ram_mmap(int fd, size_t size, size_t align, bool shared); > +void *qemu_ram_mmap(int fd, size_t size, size_t align, bool shared, > + OnOffAuto sync); > > void qemu_ram_munmap(void *ptr, size_t size); >
And Marcel plans to add a remappable flag ... Is it time we switched to a flags field? > diff --git a/include/qemu/osdep.h b/include/qemu/osdep.h > index adb3758275..0ff10cb529 100644 > --- a/include/qemu/osdep.h > +++ b/include/qemu/osdep.h > @@ -372,6 +372,24 @@ void qemu_anon_ram_free(void *ptr, size_t size); > # define QEMU_VMALLOC_ALIGN getpagesize() > #endif > > +/* > + * MAP_SHARED_VALIDATE and MAP_SYNC were introduced in Linux kernel > + * 4.15, so they may not be defined when compiling on older kernels. > + */ > +#ifdef CONFIG_LINUX > +#ifndef MAP_SHARED_VALIDATE > +#define MAP_SHARED_VALIDATE 0x3 > +#endif > +#ifndef MAP_SYNC > +#define MAP_SYNC 0x80000 > +#endif > +#define QEMU_HAS_MAP_SYNC true > +#else /* !CONFIG_LINUX */ > +#define MAP_SHARED_VALIDATE 0x0 > +#define MAP_SYNC 0x0 > +#define QEMU_HAS_MAP_SYNC false > +#endif /* CONFIG_LINUX */ > + > #ifdef CONFIG_POSIX > struct qemu_signalfd_siginfo { > uint32_t ssi_signo; /* Signal number */ Please just import this into standard-headers from Linux.